инструменты Android

всё относительно мобильных гаджетов и приложений

Модераторы: Olej, adminn, vikos

Правила форума
Все сообщения не по теме форума будут, без каких либо уведомлений, удаляться, а их авторы - убираться из регистрации.
Язык сообщений - исключительно русский.
Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Android (2)

Непрочитанное сообщение Olej » 22 фев 2017, 22:11

Olej писал(а): Можно начинать удалённо работать с adb.
Вот так получаем интерактивные, диалоговые сессии shell на удалённых Android устройствах:

Код: Выделить всё

[olej@dell platform-tools]$ ./adb -s 0123456789ABCDEF shell
shell@elink8321_emmc:/ $ ps | grep adb
shell     7334  1     4668   284   ffffffff 00000000 S /sbin/adbd
shell@elink8321_emmc:/ $ exit

Код: Выделить всё

[olej@dell platform-tools]$ ./adb -s 990005274233569 shell
shell@SG306SH:/ $ ps | grep adb
shell     30113 1     4588   200   ffffffff 00000000 S /sbin/adbd
shell@SG306SH:/ $ exit
Как видно по имени пользователя shell, и в том и в другом случае изначально мы не имеем прав root.
В предыдущих экспериментах, когда аппарат был root-ирован, пользователь прописывался как root, UID=0.

Нужно ли нам будет для экспериментов и разработки обязательно получать права root я пока не знаю...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Android (2)

Непрочитанное сообщение Olej » 23 фев 2017, 01:25

Olej писал(а):Вот так получаем интерактивные, диалоговые сессии shell на удалённых Android устройствах:

Код: Выделить всё

shell@elink8321_emmc:/ $ ls /system/bin/                                       
6620_launcher
6620_wmt_concurrency
6620_wmt_lpbk
AcdApiDaemon
GoogleOtaBinder
MtkCodecService
adb
aee
aee_archive
aee_core_forwarder
aee_dumpstate
akmd09911
akmd8963
akmd8975
am
ami304d
app_process
app_process32
applypatch
applysig
appops
appwidget
atci_service
atcid
atrace
audiocmdservice_atci
autokd
badblocks
batterywarning
bcc
blkid
bmgr
bmm050d
boot_logo_updater
bootanimation
btconfig
btlogmask
bu
bugreport
busybox
cat
ccci_fsd
ccci_mdinit
chcon
chmod
chown
clatd
clear
cmp
content
cp
dalvikvm
dalvikvm32
date
dd
debuggerd
dex2oat
df
dhcp6c
dhcp6ctl
dhcp6s
dhcpcd
dm_agent_binder
dmesg
dmlog
dnsmasq
downloader
dpm
drmserver
du
dumpstate
dumpsys
e2fsck
em_svr
emdlogger1
epdg_wod
factory
fotabinder
fsck_msdos
fsck_msdos_mtk
geomagneticd
getenforce
getevent
getprop
getsebool
grep
gsm0710muxd
gsm0710muxdmd2
guiext-server
gzip
gzip_static
halutil
hd
hostapd
hostapd_cli
id
idmap
ifconfig
iftop
ime
input
insmod
installd
ioctl
ionice
ip
ip6tables
ipod
iptables
keystore
kill
kpoc_charger
lcdc_screen_cap
linker
lmkd
ln
load_policy
log
logcat
logd
logwrapper
ls
lsm303md
lsmod
lsof
magd
make_ext4fs
matv
mc6420d
md5
md_ctrl
mdlogger
mdnsd
media
mediaserver
memorydumper
memsicd
memsicd3416x
meta_tst
mfv_ut
mkdir
mke2fs
mknod
mkswap
mmp
mobile_log_d
monkey
mount
msensord
mtk_agpsd
mtk_setprop
mtkbt
mtkrild
mtkrildmd2
mtpd
muxreport
mv
nandread
ndc
netcfg
netd
netdiag
netstat
newfs_msdos
nohup
notify
nvram_agent_binder
nvram_daemon
oatdump
orientationd
patchoat
perf_native_test
permission_check
ping
ping6
pm
ppl_agent
pppd
pppd_btdun
pppd_dt
pq
preinstall.sh
printenv
prlimit
program_binary_service
ps
racoon
radvd
readlink
reboot
recovery
renice
requestsync
resize2fs
resize_ext4
restorecon
rm
rmdir
rmmod
route
rtt
run-as
runcon
s62xd
sbchk
schedtest
schedtop
screencap
screenrecord
sdcard
sendevent
sensorservice
service
servicemanager
setenforce
setprop
setsebool
settings
sh
sleep
smd
sn
spm_loader
start
stop
superumount
surfaceflinger
svc
swapoff
swapon
sync
tc
terservice
tertestclient
thermal
thermal_manager
thermald
tiny_mkswap
tiny_swapoff
tiny_swapon
toolbox
top
touch
tune2fs
uiautomator
umount
uncrypt
uptime
vdc
vmstat
vold
watchprops
wifi2agps
wipe
wm
wmt_loader
wpa_cli
wpa_supplicant
xlog

Код: Выделить всё

shell@elink8321_emmc:/ $ busybox --help                                        
BusyBox v1.21.1 (2013-07-08 10:26:30 CDT) multi-call binary.
BusyBox is copyrighted by many authors between 1998-2012.
Licensed under GPLv2. See source distribution for detailed
copyright notices.

Usage: busybox [function [arguments]...]
   or: busybox --list[-full]
   or: busybox --install [-s] [DIR]
   or: function [arguments]...

    BusyBox is a multi-call binary that combines many common Unix
    utilities into a single executable.  Most people will create a
    link to busybox for each function they wish to use and BusyBox
    will act like whatever it was invoked as.

Currently defined functions:
    [, [[, acpid, add-shell, addgroup, adduser, adjtimex, arp, arping, ash,
    awk, base64, basename, beep, blkid, blockdev, bootchartd, brctl,
    bunzip2, bzcat, bzip2, cal, cat, catv, chat, chattr, chgrp, chmod,
    chown, chpasswd, chpst, chroot, chrt, chvt, cksum, clear, cmp, comm,
    conspy, cp, cpio, crond, crontab, cryptpw, cttyhack, cut, date, dc, dd,
    deallocvt, delgroup, deluser, depmod, devmem, df, dhcprelay, diff,
    dirname, dmesg, dnsd, dnsdomainname, dos2unix, du, dumpkmap,
    dumpleases, echo, ed, egrep, eject, env, envdir, envuidgid, ether-wake,
    expand, expr, fakeidentd, false, fbset, fbsplash, fdflush, fdformat,
    fdisk, fgconsole, fgrep, find, findfs, flock, fold, free, freeramdisk,
    fsck, fsck.minix, fsync, ftpd, ftpget, ftpput, fuser, getopt, getty,
    grep, groups, gunzip, gzip, halt, hd, hdparm, head, hexdump, hostid,
    hostname, httpd, hush, hwclock, id, ifconfig, ifdown, ifenslave,
    ifplugd, ifup, inetd, init, insmod, install, ionice, iostat, ip,
    ipaddr, ipcalc, ipcrm, ipcs, iplink, iproute, iprule, iptunnel,
    kbd_mode, kill, killall, killall5, klogd, last, less, linux32, linux64,
    linuxrc, ln, loadfont, loadkmap, logger, login, logname, logread,
    losetup, lpd, lpq, lpr, ls, lsattr, lsmod, lsof, lspci, lsusb, lzcat,
    lzma, lzop, lzopcat, makedevs, makemime, man, md5sum, mdev, mesg,
    microcom, mkdir, mkdosfs, mke2fs, mkfifo, mkfs.ext2, mkfs.minix,
    mkfs.vfat, mknod, mkpasswd, mkswap, mktemp, modinfo, modprobe, more,
    mount, mountpoint, mpstat, mt, mv, nameif, nanddump, nandwrite,
    nbd-client, nc, netstat, nice, nmeter, nohup, nslookup, ntpd, od,
    openvt, passwd, patch, pgrep, pidof, ping, ping6, pipe_progress,
    pivot_root, pkill, pmap, popmaildir, poweroff, powertop, printenv,
    printf, ps, pscan, pstree, pwd, pwdx, raidautorun, rdate, rdev,
    readahead, readlink, readprofile, realpath, reboot, reformime,
    remove-shell, renice, reset, resize, rev, rm, rmdir, rmmod, route, rpm,
    rpm2cpio, rtcwake, run-parts, runlevel, runsv, runsvdir, rx, script,
    scriptreplay, sed, sendmail, seq, setarch, setconsole, setfont,
    setkeycodes, setlogcons, setserial, setsid, setuidgid, sh, sha1sum,
    sha256sum, sha3sum, sha512sum, showkey, slattach, sleep, smemcap,
    softlimit, sort, split, start-stop-daemon, stat, strings, stty, su,
    sulogin, sum, sv, svlogd, swapoff, swapon, switch_root, sync, sysctl,
    syslogd, tac, tail, tar, tcpsvd, tee, telnet, telnetd, test, tftp,
    tftpd, time, timeout, top, touch, tr, traceroute, traceroute6, true,
    tty, ttysize, tunctl, udhcpc, udhcpd, udpsvd, umount, uname, unexpand,
    uniq, unix2dos, unlzma, unlzop, unxz, unzip, uptime, users, usleep,
    uudecode, uuencode, vconfig, vi, vlock, volname, wall, watch, watchdog,
    wc, wget, which, who, whoami, whois, xargs, xz, xzcat, yes, zcat, zcip

shell@elink8321_emmc:/ $ which vi
/system/bin/sh: which: not found

127|shell@elink8321_emmc:/ $ busybox which vi
1|shell@elink8321_emmc:/ $ 
1|shell@elink8321_emmc:/ $ busybox which whoami                                
1|shell@elink8321_emmc:/ $ busybox which xlog                                  
/system/bin/xlog

shell@elink8321_emmc:/ $ dmesg | busybox tail -n5
<4>[15587.976771]<0> (0)[1055:tx_thread][wlan] statsInfoEnvDisplay: (INIT INFO) <stats> StayIntR_HR2HRD us (88 147 235)
<4>[15587.976800]<0> (0)[1055:tx_thread][wlan] statsInfoEnvDisplay: (INIT INFO) <stats> OTHER (0) (220) (2865) (1)
<4>[15587.976842]<0>-(0)[1055:tx_thread][wlan] nicTxReleaseResource: (TX STATE) Release: TC4 count 1, Free=4; TC5 count 0, Free=8
<7>[15588.119091]<0> (0)[15336:sh][15336:sh] fork [15871:sh]
<7>[15588.119768]<0> (0)[15336:sh][15336:sh] fork [15872:sh]

Код: Выделить всё

shell@elink8321_emmc:/ $ busybox ifconfig                                      
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:93 errors:0 dropped:0 overruns:0 frame:0
          TX packets:93 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:5950 (5.8 KiB)  TX bytes:5950 (5.8 KiB)

p2p0      Link encap:Ethernet  HWaddr 56:EF:92:42:95:B4  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:168 (168.0 B)

wlan0     Link encap:Ethernet  HWaddr 54:EF:92:42:95:B4  
          inet addr:192.168.1.102  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::56ef:92ff:fe42:95b4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:134085 errors:0 dropped:0 overruns:0 frame:0
          TX packets:58219 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:173846993 (165.7 MiB)  TX bytes:5400961 (5.1 MiB)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: инструменты Android

Непрочитанное сообщение Olej » 23 фев 2017, 13:16

Эмулятор

Создаю себе 2 эмулятора реальных Android железок, которые у меня есть под рукой (для сравнения): железо под Android.
Но прежде, чтобы иметь возможность эмуляции, нужно доустановить ABI тех версий Android, которые будут использоваться в этих эмуляторах ... в конкретном случае: 4.2 & 5.1

Это достаточно длительный процесс (download достаточно большие объёмы).
И для этого нужно иметь достаточно большой запас места на HDD.
sdk01.png
sdk02.png

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: инструменты Android

Непрочитанное сообщение Olej » 23 фев 2017, 13:24

Olej писал(а):Эмулятор
Создаю себе 2 эмулятора реальных Android железок, которые у меня есть под рукой (для сравнения): железо под Android.
sdk1.png
sdk2.png
Эмуляторы создаю, заполняя позиции наиболее близкими значениями к реальным аппаратным прототипам (позже это всё можно отредактировать):
sdk3.png
sdk4.png
sdk6.png
sdk7.png
Olej писал(а): Это достаточно длительный процесс (download достаточно большие объёмы).
И для этого нужно иметь достаточно большой запас места на HDD.

Код: Выделить всё

[olej@dell ~]$ du -hs Android 
5,4G	Android
Вот они (эмуляторы):

Код: Выделить всё

[olej@dell system-images]$ pwd
/home/olej/Android/Sdk/system-images
[olej@dell system-images]$ ls
android-17  android-22
[olej@dell system-images]$ du -hs *
2,6G	android-17
1,3G	android-22
sdk10.png

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: инструменты Android

Непрочитанное сообщение Olej » 23 фев 2017, 15:10

Olej писал(а):Эмулятор
Старт эмулятора в таком виде чудовищно долгий!
И это на 4-х ядерном (8 с гипертриэдингом) процессоре:

Код: Выделить всё

[olej@dell 23]$ lscpu
Архитектура:x86_64
CPU op-mode(s):        32-bit, 64-bit
Порядок байт:Little Endian
CPU(s):                8
On-line CPU(s) list:   0-7
Thread(s) per core:    2
Ядер на сокет:4
Сокетов:        1
NUMA node(s):          1
ID прроизводителя:GenuineIntel
Семейство ЦПУ:6
Модель:          30
Имя модели:   Intel(R) Core(TM) i7 CPU       Q 720  @ 1.60GHz
Степпинг:      5
CPU MHz:               933.000
CPU max MHz:           1600,0000
CPU min MHz:           933,0000
BogoMIPS:              3192.26
Виртуализация:VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              6144K
NUMA node0 CPU(s):     0-7
Флаги:            fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm tpr_shadow vnmi flexpriority ept vpid dtherm ida
Об этом предупреждает и сообщение при запуске ARM-эмулятора:
w.png
w.png (17.57 КБ) 5125 просмотров
Они обещают замедление в 10 крат!
В таком случае есть вариант/выход: доустановить и переопределить процессор вместо ARM (на реальном устройстве) на Atom x86_64 (совпадающий с хостовым процессором по разрядности).
Сменить тип процессора можно простым редактированием соответствующего эмулятора.
Вложения
sdk23.png

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: инструменты Android

Непрочитанное сообщение Olej » 23 фев 2017, 15:38

Olej писал(а): В таком случае есть вариант/выход: доустановить и переопределить процессор вместо ARM (на реальном устройстве) на Atom x86_64 (совпадающий с хостовым процессором по разрядности).
sdk30.png
Но и при этом старт эмулятора происходить о-о-очень долго - несколько (единиц) минут!
Но потом реакция эмулятора на действия нормально быстрая.

Вид эмулятора радикально отличается от того, что было пару-тройку лет назад.
Это совершенно переделанный эмулятор!

Это AVD Bravis_NB75_3G.avd
Screenshot_1487848212.png
Screenshot_1487848351.png
А это AVD Sharp_AQUOS_306SH.avd
Screenshot_1487855277.png

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: инструменты Android

Непрочитанное сообщение Olej » 23 фев 2017, 16:17

Olej писал(а): В таком случае есть вариант/выход: доустановить и переопределить процессор вместо ARM (на реальном устройстве) на Atom x86_64 (совпадающий с хостовым процессором по разрядности).
Сменить тип процессора можно простым редактированием соответствующего эмулятора.
При этом все переустановки с созданными AVD (Android Virtual Devices) потребует существенно много места:
- это созданные AVD

Код: Выделить всё

[olej@dell ~]$ du -hs ~/.android 
4,7G	/home/olej/.android
[olej@dell avd]$ pwd
/home/olej/.android/avd
[olej@dell avd]$ ls -l
итого 8
drwxrwxr-x 1 olej olej 208 фев 23 13:02 Bravis_NB75_3G.avd
-rw-rw-r-- 1 olej olej 121 фев 23 13:01 Bravis_NB75_3G.ini
drwxrwxr-x 1 olej olej 208 фев 23 15:06 Sharp_AQUOS_306SH.avd
-rw-rw-r-- 1 olej olej 127 фев 23 14:59 Sharp_AQUOS_306SH.ini
[olej@dell avd]$ du -hs *.avd
1,3G	Bravis_NB75_3G.avd
4,1G	Sharp_AQUOS_306SH.avd
- А это SDK + Tools для 2-х версий Android, 4.2 и 5.1

Код: Выделить всё

[olej@dell system-images]$ pwd
/home/olej/Android/Sdk/system-images
[olej@dell system-images]$ du -hs
12G     .
[olej@dell system-images]$ du -hs *
5,1G	android-17
6,2G	android-22
Т.е. всё это удовольствие - порядка 17Gb!

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: инструменты Android

Непрочитанное сообщение Olej » 23 фев 2017, 16:27

B USB подключение adb даёт:

Код: Выделить всё

[olej@dell platform-tools]$ ./adb devices
List of devices attached
emulator-5556	device
emulator-5554	device
0123456789ABCDEF	device
Здесь первые 2 - это эмуляторы, а 3-я строка - это подключенный реальный планшет

Код: Выделить всё

[olej@dell platform-tools]$ ./adb devices -l
List of devices attached
emulator-5556          device product:sdk_x86 model:Android_SDK_built_for_x86 device:generic_x86
emulator-5554          device product:sdk_google_phone_x86_64 model:Android_SDK_built_for_x86_64 device:generic_x86_64
0123456789ABCDEF       device usb:2-1.3 product:full_elink8321_emmc model:NB75 device:elink8321_emmc

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: инструменты Android

Непрочитанное сообщение Olej » 23 фев 2017, 16:59

Olej писал(а):B USB подключение adb даёт:
Здесь первые 2 - это эмуляторы, а 3-я строка - это подключенный реальный планшет

Код: Выделить всё

[olej@dell platform-tools]$ ./adb devices -l
List of devices attached
emulator-5556          device product:sdk_x86 model:Android_SDK_built_for_x86 device:generic_x86
emulator-5554          device product:sdk_google_phone_x86_64 model:Android_SDK_built_for_x86_64 device:generic_x86_64
0123456789ABCDEF       device usb:2-1.3 product:full_elink8321_emmc model:NB75 device:elink8321_emmc
И, в отличие от реального железа, adb подключается к эмуляторам как root:

Код: Выделить всё

[olej@dell platform-tools]$ ./adb -s emulator-5556 shell
root@android:/ # ls -l
drwxr-xr-x root     root              2017-02-23 13:06 acct
drwxrwx--- system   cache             1970-01-01 00:00 cache
dr-x------ root     root              2017-02-23 13:06 config
lrwxrwxrwx root     root              2017-02-23 13:06 d -> /sys/kernel/debug
drwxrwx--x system   system            2017-02-23 13:07 data
-rw-r--r-- root     root          116 1970-01-01 00:00 default.prop
drwxr-xr-x root     root              2017-02-23 13:06 dev
lrwxrwxrwx root     root              2017-02-23 13:06 etc -> /system/etc
-rw-r----- root     root          935 1970-01-01 00:00 fstab.goldfish
-rw-r----- root     root          831 1970-01-01 00:00 fstab.ranchu
-rwxr-x--- root     root       244516 1970-01-01 00:00 init
-rwxr-x--- root     root         2524 1970-01-01 00:00 init.goldfish.rc
-rwxr-x--- root     root         2618 1970-01-01 00:00 init.ranchu.rc
-rwxr-x--- root     root        18414 1970-01-01 00:00 init.rc
-rwxr-x--- root     root         1795 1970-01-01 00:00 init.trace.rc
-rwxr-x--- root     root         3947 1970-01-01 00:00 init.usb.rc
drwxrwxr-x root     system            2017-02-23 13:06 mnt
dr-xr-xr-x root     root              2017-02-23 13:06 proc
drwx------ root     root              2016-02-26 22:39 root
drwxr-x--- root     root              1970-01-01 00:00 sbin
lrwxrwxrwx root     root              2017-02-23 13:06 sdcard -> /mnt/sdcard
d---r-x--- root     sdcard_r          2017-02-23 13:06 storage
dr-xr-xr-x root     root              2017-02-23 13:06 sys
drwxr-xr-x root     root              1970-01-01 00:00 system
-rw-r--r-- root     root          272 1970-01-01 00:00 ueventd.goldfish.rc
-rw-r--r-- root     root          272 1970-01-01 00:00 ueventd.ranchu.rc
-rw-r--r-- root     root         4024 1970-01-01 00:00 ueventd.rc
lrwxrwxrwx root     root              2017-02-23 13:06 vendor -> /system/vendor
-rw-r--r-- root     root         1093 1970-01-01 00:00 vold.fstab.goldfish
-rw-r--r-- root     root         1068 1970-01-01 00:00 vold.fstab.ranchu

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: инструменты Android

Непрочитанное сообщение Olej » 24 фев 2017, 17:33

Наибольшая проблема относительно инструментов для работы с Android - это то, что из тысяч-тысяч пользователей, программ и описаний, 99.99% их всех рассчитаны на различные варианты Windows!
А под Linux а). разыскивать, б). проверять и в). разбираться с использованием (руководство пользователя) - всё приходится самостоятельно.

Простейший и важнейший пример - прошивка образов Android в аппараты:
- прошивки (производителем, любителями) готовятся как файлы-образы Android/Linux ...
- но вот заливаются они, с ПК по USB - из Windows, .exe программами типа SP Flash Tool ...
- а под Linux этому нужен эквивалент...
- и умелое его использование (руководство пользователя)...
- потому что ошибаться здесь нельзя :-(

Ответить

Вернуться в «Android»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя