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

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

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

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

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

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

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

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

[olej@dell platform-tools]$ ./adb devices
List of devices attached
emulator-5556	device
emulator-5554	device
0123456789ABCDEF	device
Здесь первые 2 - это эмуляторы, а 3-я строка - это подключенный реальный планшет
Основные возможности, которые мне нужны от adb - Android Debug Bridge:
- выбор конкретного устройства для команд
Send commands to a specific device

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

$ adb -s emulator-5555 install helloWorld.apk
- установка на Android приложения из .apk файла:
Install an app
You can use adb to install an APK on an emulator or connected device with the install command:

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

adb install <path_to_apk>
- копирование из Android:
To copy a file or directory and its sub-directories from the device, do the following:

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

adb pull <remote> <local>
- копирование на Android:
To copy a file or directory and its sub-directories to the device, do the following:

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

adb push <local> <remote>
Где:
Replace local and remote with the paths to the target files/directory on your development machine (local) and on the device (remote). For example:

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

adb push foo.txt /sdcard/foo.txt
- подключиться к устройству по TCP/IP (через WiFi, например):

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

adb connect host[:port]
Connect to a device over TCP/IP. If you do not specify a port, then the default port, 5555, is used.

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

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

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

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

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

[olej@dell platform-tools]$ pwd
/home/olej/Android/Sdk/platform-tools

[olej@dell platform-tools]$ ls -l | grep ^-
-rwxrwxr-x 1 olej olej 2248772 фев 22 15:04 adb
-rwxrwxr-x 1 olej olej   57690 фев 22 15:04 dmtracedump
-rwxrwxr-x 1 olej olej  227833 фев 22 15:04 etc1tool
-rwxrwxr-x 1 olej olej 1490972 фев 22 15:04 fastboot
-rwxrwxr-x 1 olej olej   16850 фев 22 15:04 hprof-conv
-rw-rw-r-- 1 olej olej  695380 фев 22 15:04 NOTICE.txt
-rw-rw-r-- 1 olej olej   17443 фев 22 15:04 package.xml
-rw-rw-r-- 1 olej olej      39 фев 22 15:04 source.properties
-rwxrwxr-x 1 olej olej 1124741 фев 22 15:04 sqlite3

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

[olej@dell platform-tools]$ ./fastboot --version
fastboot version 0e9850346394-android

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

[olej@dell platform-tools]$ ./fastboot --help
usage: fastboot [ <option> ] <command>

commands:
  update <filename>                        Reflash device from update.zip.
                                           Sets the flashed slot as active.
  flashall                                 Flash boot, system, vendor, and --
                                           if found -- recovery. If the device
                                           supports slots, the slot that has
                                           been flashed to is set as active.
                                           Secondary images may be flashed to
                                           an inactive slot.
  flash <partition> [ <filename> ]         Write a file to a flash partition.
  flashing lock                            Locks the device. Prevents flashing.
  flashing unlock                          Unlocks the device. Allows flashing
                                           any partition except
                                           bootloader-related partitions.
  flashing lock_critical                   Prevents flashing bootloader-related
                                           partitions.
  flashing unlock_critical                 Enables flashing bootloader-related
                                           partitions.
  flashing get_unlock_ability              Queries bootloader to see if the
                                           device is unlocked.
  flashing get_unlock_bootloader_nonce     Queries the bootloader to get the
                                           unlock nonce.
  flashing unlock_bootloader <request>     Issue unlock bootloader using request.
  flashing lock_bootloader                 Locks the bootloader to prevent
                                           bootloader version rollback.
  erase <partition>                        Erase a flash partition.
  format[:[<fs type>][:[<size>]] <partition>
                                           Format a flash partition. Can
                                           override the fs type and/or size
                                           the bootloader reports.
  getvar <variable>                        Display a bootloader variable.
  set_active <slot>                        Sets the active slot. If slots are
                                           not supported, this does nothing.
  boot <kernel> [ <ramdisk> [ <second> ] ] Download and boot kernel.
  flash:raw boot <kernel> [ <ramdisk> [ <second> ] ]
                                           Create bootimage and flash it.
  devices [-l]                             List all connected devices [with
                                           device paths].
  continue                                 Continue with autoboot.
  reboot [bootloader]                      Reboot device [into bootloader].
  reboot-bootloader                        Reboot device into bootloader.
  help                                     Show this help message.

options:
  -w                                       Erase userdata and cache (and format
                                           if supported by partition type).
  -u                                       Do not erase partition before
                                           formatting.
  -s <specific device>                     Specify a device. For USB, provide either
                                           a serial number or path to device port.
                                           For ethernet, provide an address in the
                                           form <protocol>:<hostname>[:port] where
                                           <protocol> is either tcp or udp.
  -p <product>                             Specify product name.
  -c <cmdline>                             Override kernel commandline.
  -i <vendor id>                           Specify a custom USB vendor id.
  -b, --base <base_addr>                   Specify a custom kernel base
                                           address (default: 0x10000000).
  --kernel-offset                          Specify a custom kernel offset.
                                           (default: 0x00008000)
  --ramdisk-offset                         Specify a custom ramdisk offset.
                                           (default: 0x01000000)
  --tags-offset                            Specify a custom tags offset.
                                           (default: 0x00000100)
  -n, --page-size <page size>              Specify the nand page size
                                           (default: 2048).
  -S <size>[K|M|G]                         Automatically sparse files greater
                                           than 'size'. 0 to disable.
  --slot <slot>                            Specify slot name to be used if the
                                           device supports slots. All operations
                                           on partitions that support slots will
                                           be done on the slot specified.
                                           'all' can be given to refer to all slots.
                                           'other' can be given to refer to a
                                           non-current slot. If this flag is not
                                           used, slotted partitions will default
                                           to the current active slot.
  -a, --set-active[=<slot>]                Sets the active slot. If no slot is
                                           provided, this will default to the value
                                           given by --slot. If slots are not
                                           supported, this sets the current slot
                                           to be active. This will run after all
                                           non-reboot commands.
  --skip-secondary                         Will not flash secondary slots when
                                           performing a flashall or update. This
                                           will preserve data on other slots.
  --wipe-and-use-fbe                       On devices which support it,
                                           erase userdata and cache, and
                                           enable file-based encryption
  --unbuffered                             Do not buffer input or output.
  --version                                Display version.
  -h, --help                               show this message.
Но нужно ещё разобраться с не совсем понятными терминами из его --help.

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

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

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

Olej писал(а): В принципе, для этого используется из SDK/tools программа fastboot из того же каталога, что и adb:
Посмотрел что там есть в репозитории (Fedora 23) отноительно Android:

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

[olej@dell system-images]$ dnf list '*android*'
Последняя проверка окончания срока действия метаданных: 6 days, 5:16:54 назад, Sat Feb 18 13:08:05 2017.
Доступные пакеты
android-file-transfer.x86_64                                3.0-1.fc23.R                                          russianfedora-free-updates
android-json-org-java.noarch                                5.0.2-0.2.r1.fc23                                     fedora                    
android-json-org-java-javadoc.noarch                        5.0.2-0.2.r1.fc23                                     fedora                    
android-opengl-api.noarch                                   1.1-10.fc23                                           fedora                    
android-opengl-api-javadoc.noarch                           1.1-10.fc23                                           fedora                    
android-tools.x86_64                                        20160327git3761365735de-1.fc23                        updates                   
google-android-emoji-fonts.noarch                           1.01-0.4.20120228git.fc23                             fedora                    
nodejs-emojione-android.noarch                              2.2.6-3.fc23                                          updates                   
pyzy-db-android.noarch                                      0.1.0-11.fc23                                         fedora                    

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

[olej@dell system-images]$ dnf info android-tools
Последняя проверка окончания срока действия метаданных: 6 days, 5:17:35 назад, Sat Feb 18 13:08:05 2017.
Доступные пакеты
Имя         : android-tools
Архитектура : x86_64
Эпоха       : 0
Версия      : 20160327git3761365735de
Релиз       : 1.fc23
Размер      : 345 k
Репозиторий : updates
Краткое опи : Android platform tools(adb, fastboot)
URL         : http://developer.android.com/guide/developing/tools/
Лицензия    : ASL 2.0 and (ASL 2.0 and BSD)
Описание    : 
            : The Android Debug Bridge (ADB) is used to:
            : 
            : - keep track of all Android devices and emulators instances
            :   connected to or running on a given host developer machine
            : 
            : - implement various control commands (e.g. "adb shell", "adb pull", etc.)
            :   for the benefit of clients (command-line users, or helper programs like
            :   DDMS). These commands are what is called a 'service' in ADB.
            : 
            : Fastboot is used to manipulate the flash partitions of the Android phone.
            : It can also boot the phone using a kernel image or root filesystem image
            : which reside on the host machine rather than in the phone flash.
            : In order to use it, it is important to understand the flash partition
            : layout for the phone.
            : The fastboot program works in conjunction with firmware on the phone
            : to read and write the flash partitions. It needs the same USB device
            : setup between the host and the target phone as adb.

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

[olej@dell system-images]$ dnf info android-file-transfer
Последняя проверка окончания срока действия метаданных: 6 days, 5:18:39 назад, Sat Feb 18 13:08:05 2017.
Доступные пакеты
Имя         : android-file-transfer
Архитектура : x86_64
Эпоха       : 0
Версия      : 3.0
Релиз       : 1.fc23.R
Размер      : 315 k
Репозиторий : russianfedora-free-updates
Краткое опи : Reliable MTP client with minimalistic UI
URL         : https://github.com/whoozle/android-file-transfer-linux
Лицензия    : GPLv3+
Описание    : Android File Transfer for Linux — reliable MTP client with minimalistic UI
            : similar to Android File Transfer for Mac.
Эти 2 стандартные пакета определённо есть смысл установить!

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

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

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

Olej писал(а):Эти 2 стандартные пакета определённо есть смысл установить!

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

[olej@dell system-images]$ sudo dnf install android-tools
...

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

[olej@dell system-images]$ which fastboot
/usr/bin/fastboot

[olej@dell system-images]$ fastboot --version
fastboot version 3761365735de
Это состав пакета:

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

[olej@dell system-images]$ ls -l /usr/bin/fastboot
-rwxr-xr-x 1 root root 652760 мар 27  2016 /usr/bin/fastboot
[olej@dell system-images]$ ls -l /usr/bin | grep 'мар 27'
-rwxr-xr-x    1 root root      539312 мар 27  2016 adb
-rwxr-xr-x    1 root root      652760 мар 27  2016 fastboot

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

[olej@dell system-images]$ adb 2>&1 | head -n2
Android Debug Bridge version 1.0.35
Revision 3761365735de

[olej@dell system-images]$ 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

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

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

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

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

[olej@dell platform-tools]$ sudo dnf install android-file-transfer
[sudo] пароль для olej: 
Последняя проверка окончания срока действия метаданных: 1:24:13 назад, Fri Feb 24 17:24:40 2017.
Зависимости разрешены.
============================================================================================================================================
 Package                               Архитектура            Версия                       Репозиторий                                Размер
============================================================================================================================================
Установка:
 android-file-transfer                 x86_64                 3.0-1.fc23.R                 russianfedora-free-updates                 315 k

Результат операции
============================================================================================================================================
Установка  1 Пакет

Объем загрузки: 315 k
Объем изменений: 1.3 M
Продолжить? [д/Н]: y
Загрузка пакетов:
android-file-transfer-3.0-1.fc23.R.x86_64.rpm                                                               845 kB/s | 315 kB     00:00    
--------------------------------------------------------------------------------------------------------------------------------------------
Общий размер                                                                                                547 kB/s | 315 kB     00:00     
Проверка транзакции
Проверка транзакции успешно завершена.
Идет проверка транзакции
Тест транзакции проведен успешно
Выполнение транзакции
  Установка    : android-file-transfer-3.0-1.fc23.R.x86_64                                                                              1/1 
  Проверка     : android-file-transfer-3.0-1.fc23.R.x86_64                                                                              1/1 

Установлено:
  android-file-transfer.x86_64 3.0-1.fc23.R                                                                                                 

Выполнено!

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

[olej@dell platform-tools]$ which android-file-transfer
/usr/bin/android-file-transfer
m1.png
m1.png (12.25 КБ) 4891 просмотр
:-o :-(

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

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

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

Что такое MTP Device?
Вообще технология MTP (Media Transfer Protocol) впервые увидела свет еще в 2008 году на мобильных гаджетах с Honeycomb в OS Android Ice Cream Sandwich. В то время она считалась составной частью пакета Windows Media, но затем была стандартизирована как один из основных типов USB-устройств.
...
В системах Linux в силу их специфичности установка драйверов MTP Device выглядит несколько сложнее.
Криков по использованию mtpfs в Linux много...
Что бы устройсво определилось надо отключить отладку по USB.

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

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

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

Olej писал(а): Криков по использованию mtpfs в Linux много...
Что бы устройсво определилось надо отключить отладку по USB.
Мудрить сильно не надо! :-o
1). это всё старые обсуждения + 2). всё больше Ubuntu, которые особо познаниями не блещут...

В новых версиях Android:
- в уведомлениях (верхне-левая панель), знак USB - развернуть, там появятся режимы подключения USB:
USB-накопитель
Медиа-устройство (MTP)
Камера (PTP)
Только зарядка
Подключить как CD-ROM

- выбираем 2-ю позицию, MTP
- включать-выключать отладку по USB в настройках - нет нужды! :

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

[olej@dell system-images]$ adb devices -l
List of devices attached
0123456789ABCDEF       device usb:2-1.3 product:full_elink8321_emmc model:NB75 device:elink8321_emmc
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
Одновременно с доступом к файловой системе по MTP, работают команды adb:

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

[olej@dell system-images]$ adb -s 0123456789ABCDEF shell pwd
/
Но в mount этого устройства нет ... хотя есть доступ ко всем его файлам:

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

[olej@dell system-images]$ mount | grep mtp
[olej@dell system-images]$
Вложения
m2.png
m3.png
m4.png

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

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

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

Shell-скриптинг в среде Android
В самой своей основе, там, где нет Java и Dalvik, Android представляет собой минималистичный Linux-дистрибутив со всеми свойственными ему атрибутами: ядром, системой инициализации, набором библиотек, демонов, консольных команд и, конечно же, шеллом. Последний — это не что иное, как mksh из MirBSD, переименованный в sh; простой командный интерпретатор с поддержкой языковых конструкций классического Bourne shell из UNIX и автодополнением по нажатию Tab.

В качестве комплекта базовых UNIX-команд здесь используется toolbox, своего рода урезанная альтернатива BusyBox, которая позволяет вызывать несколько разных команд из одного бинарника (с помощью симлинков). Toolbox включает в себя очень ограниченный набор команд, в котором нет не только grep или sort, но даже cp. Поэтому для полноценной работы со скриптами настоятельно рекомендуется установка BusyBox, благо в маркете полно бесплатных инсталляторов.
Про Toolbox и BusyBox см. железо под Android

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

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

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

Внешняя SD-карта, её подготовка, разбивка, форматирование...
Чаще всего утверждается, что SD-карта должна форматироваться в FAT32.
Но и здесь, можно форматировать SD-карту целиком, как дискету, как /dev/sdb, а можно создать раздел, например, во весь размер SD-карты.
Вот что я вижу (через ADB) в своей 4Gb SD-карте, которая форматирована (ранее) как FAT32 на целое устройство:

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

shell@elink8321_emmc:/ $ mount | grep media                                    
tmpfs /mnt/media_rw tmpfs rw,seclabel,relatime,mode=755,uid=1000,gid=1000 0 0
/dev/block/vold/179:129 /mnt/media_rw/sdcard1 vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1023,gid=1023,fmask=0007,dmask=0007,allow_utime=0020,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0

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

shell@elink8321_emmc:/ $ df | grep storage
/storage/usbotg        481.0M     0.0K   481.0M   4096
/storage/emulated      481.0M     0.0K   481.0M   4096
/storage/sdcard1         3.8G     1.0G     2.7G   32768
Вот то /storage/sdcard1 - это и есть смонтированный SD-диск:

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

shell@elink8321_emmc:/ $ du -hs /storage/sdcard1/*                             
640K	/storage/sdcard1/Android
32K	/storage/sdcard1/LOST.DIR
1.0G	/storage/sdcard1/Pictures
32K	/storage/sdcard1/backup
32K	/storage/sdcard1/system_update
А как будет выглядеть, если SD-диск поделить на 4 partition?

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

shell@elink8321_emmc:/ $ ls -l /storage/sdcard1                                
drwxrwx--x root     sdcard_r          2017-02-26 21:07 Android
drwxrwx--- root     sdcard_r          2017-02-26 21:07 LOST.DIR
drwxrwx--- root     sdcard_r          2015-06-06 20:57 Pictures
drwxrwx--- root     sdcard_r          2017-02-26 21:08 backup
drwxrwx--- root     sdcard_r          2017-02-26 21:09 system_update
Каталог /storage/sdcard1/Pictures (видно по дате) - это мои накопленные ранее, 2015г. изображения:

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

shell@elink8321_emmc:/ $ ls -l /storage/sdcard1/Pictures/                      
drwxrwx--- root     sdcard_r          2015-06-06 20:59 Aero
drwxrwx--- root     sdcard_r          2015-06-06 20:56 Canon.Photo
drwxrwx--- root     sdcard_r          2015-06-06 20:55 Partizan.IP

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

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

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

Olej писал(а):Внешняя SD-карта, её подготовка, разбивка, форматирование...
Чаще всего утверждается, что SD-карта должна форматироваться в FAT32.
Но и здесь, можно форматировать SD-карту целиком, как дискету, как /dev/sdb, а можно создать раздел, например, во весь размер SD-карты.
По SD-картам возникает достаточно много вопросов:
1. как допустимо разбивать SD-карту на partition? (или не разбивать вовсе?)
2. как (FAT32, ext2/3/4, ...), в каких форматах можно форматировать SD-карту или её разделы?
3. на какой раздел можно помещать файл прошивки для её перезаливки?
4. важен ли порядок разделов для п.3?
5. как, какими действиями выполняется заливка прошивки, записанной на SD-карту?
Вот сколько вопросов (и то это, возможно, не все) только по использованию SD-карт!

Ответить

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

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

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