DroidFlasher
Всем привет!
Написал небольшое и вероятно полезное для кого то приложение под Android смартфоны, на java, кросс-платформенное, утилита по работе с телефоном через adb, fastboot, recovery.
Нужны отзывы и рекомендации.
На данный момент это proof-of-concept, дальше - больше,нужны отзывы и хотелки.
DroidFlasher умеет:
- DroidFlasher Scripting (DFS) - текстовый формат для пакетной обработки заданий и автоматизации работы приложения, прошивка, загрузка через интернет, интерактивное взаимодействие с пользователем..
- Отправлять файлы на устройство через adb
- Забирать файлы с устройства через adb
- устанавливать один или сразу несколько APK файлов с ПК на телефон
- удалять пакеты по имени (можно оставлять кеш и настройки)
- бекапы / восстановление (приложений / настроек / с кешем / пользовательские данные)
- бекапить / восстанавливать разделы памяти через recovery
- прошивать recovery, kernel, прочее
- встроенные бинарники adb и fastboot для всех платформ Mac, PC, *nix.
- выполнять пакетные задания оформленные в виде файлов *.dfs, описание чуть ниже
- .....
Скачать DroidFlasher r109:
---
Mac: DroidFlasher_r109_Mac.7z (43.6MB) - md5sum: 7e627dc7e9f65bab3685c3b2242f0654
Win: DroidFlasher_r109_Win.7z (39.9MB) - md5sum: d34e335fcf72403d29ae3d18c22885d6
*nix: DroidFlasher_r109_Nix.7z (51.3MB) - md5sum: 8fce1c52f73b9d7810cd3cd46b504d42
---
Source code: available at github under MIT License - https://github.com/ZorgeR/DroidFlasher
Подробнее о DFS:
Немного о *.DFS скриптинге:
DFS (DroidFlasherScript) это простой способ для выполнения рутинной и пакетной работы с fastboot, adb или mfastboot.
*.dfs это простой текстовый файл, с примитивной структурой, как это работает?
- нажмите "run *.dfs" и выберете dfs файл
- выберите рабочий каталог (в котором приложение будет искать файлы), в следующем окне.
- ждите окончания работ
Следующий пример *.dfs файла откатывает moto x к стоковому состоянию (текстовый файл - xt1052revert.dfs. расширение может быть любым, например *.txt):
Следующий пример показывает загрузку и прошивку рекавери для мото х:
На последнем этапе можно ввести имя или полный путь до файла.
Можно добавить команды adb, в следующем примере телефон будет перезагружен через adb в fastboot, перед началом работ:
Где %dialogtype% = info, error,warning, none, confirmation
Если использовать ключ confirmation и нажать CANCEL, то следующая команда из dfs будет проигнорирована. Пример:
Или следующий пример с интерактивным выбором, загрузкой из инета и прошивкой рекавери, после подтверждения пользователем:
Поддерживаются все команды (fastboot/mfastboot/adb), можно писать большие пакетные файлы для выполнения любых операций:
Также, для:
- "fastboot flash /local/file"
- "fastboot boot /local/file"
- "adb sideload /local/file"
- "adb push /local /remote"
- "adb pull /remote /local"
Можно в dfs файле для локального файла указать как абсолютный путь, так и просто имя (DroidFlasher проверит наличие файла сначала по абсолютному адресу, если не найдет, будет использовать файл с этим именем из рабочей директории.
Для примера, следующий код показывает полностью корректный *.dfs файл, и будет работать без ошибок:
fastboot flash boot boot.img
fastboot flash system /home/zorg/files/system.img
adb push my.apk /sdcard
adb push /home/zorg/downloads/mynext.apk /sdcard
При этом boot.img и my.apk будут взяты из рабочей директории, а system.img и mynext.apk по абсолютным путям.
В дальнейшем планируется расширить функционал, например вот так можно будет загрузить файл и сразу его прошить:
DFS (DroidFlasherScript) это простой способ для выполнения рутинной и пакетной работы с fastboot, adb или mfastboot.
*.dfs это простой текстовый файл, с примитивной структурой, как это работает?
- нажмите "run *.dfs" и выберете dfs файл
- выберите рабочий каталог (в котором приложение будет искать файлы), в следующем окне.
- ждите окончания работ
Следующий пример *.dfs файла откатывает moto x к стоковому состоянию (текстовый файл - xt1052revert.dfs. расширение может быть любым, например *.txt):
Код
dfs set workdir
fastboot oem fb_mode_set
fastboot flash partition gpt.bin
fastboot flash motoboot motoboot.img
fastboot flash logo logo.bin
fastboot flash boot boot.img
fastboot flash recovery recovery.img
mfastboot flash system system.img
fastboot flash modem NON-HLOS.bin
fastboot erase modemst1
fastboot erase modemst2
fastboot flash fsg fsg.mbn
fastboot erase cache
fastboot erase userdata
fastboot erase customize
fastboot erase clogo
fastboot oem fb_mode_clear
fastboot oem fb_mode_set
fastboot flash partition gpt.bin
fastboot flash motoboot motoboot.img
fastboot flash logo logo.bin
fastboot flash boot boot.img
fastboot flash recovery recovery.img
mfastboot flash system system.img
fastboot flash modem NON-HLOS.bin
fastboot erase modemst1
fastboot erase modemst2
fastboot flash fsg fsg.mbn
fastboot erase cache
fastboot erase userdata
fastboot erase customize
fastboot erase clogo
fastboot oem fb_mode_clear
Следующий пример показывает загрузку и прошивку рекавери для мото х:
Код
# 1. Download recovery
# 2. Reboot to fastboot
# 3. Flash downloaded recovery
dfs download "http://files.z-lab.me/mobile/Moto X/recovery/openrecovery-twrp-2.8.5.0-ghost.img"
adb reboot bootloader
fastboot flash recovery openrecovery-twrp-2.8.5.0-ghost.img
# 2. Reboot to fastboot
# 3. Flash downloaded recovery
dfs download "http://files.z-lab.me/mobile/Moto X/recovery/openrecovery-twrp-2.8.5.0-ghost.img"
adb reboot bootloader
fastboot flash recovery openrecovery-twrp-2.8.5.0-ghost.img
На последнем этапе можно ввести имя или полный путь до файла.
Можно добавить команды adb, в следующем примере телефон будет перезагружен через adb в fastboot, перед началом работ:
Код
adb reboot bootloader
fastboot flash boot boot.img
fastboot flash recovery recovery.img
mfastboot flash system system.img
fastboot flash boot boot.img
fastboot flash recovery recovery.img
mfastboot flash system system.img
Код
dfs radiobox "txt1|txt2|txt3|txt4" "val1|val2|val3|val4" title header content
dfs show %dialogtype% title header content
dfs show %dialogtype% title header content
Где %dialogtype% = info, error,warning, none, confirmation
Если использовать ключ confirmation и нажать CANCEL, то следующая команда из dfs будет проигнорирована. Пример:
Код
dfs radiobox "TWRP|CWM|Phiz" "http://z-lab.me/twrp.img|http://z-lab.me/cwm.img|http://z-lab.me/phiz.img" "Recovery flashing" "Make a choice" "Select preferred recovery:"
dfs show info "Radio box answer example" "INFORMATION" "You have selected %RADIOBOXRESULT%"
dfs show confirmation "Confirm example" "CONFIRMATION" "If you press OK, you will see additional information dialog, if press CANCEL, next command or dialog will be ignored"
dfs show info "Bingo" "Thanks!" "You choice is %SHOWRESULT%"
dfs show info "Radio box answer example" "INFORMATION" "You have selected %RADIOBOXRESULT%"
dfs show confirmation "Confirm example" "CONFIRMATION" "If you press OK, you will see additional information dialog, if press CANCEL, next command or dialog will be ignored"
dfs show info "Bingo" "Thanks!" "You choice is %SHOWRESULT%"
Или следующий пример с интерактивным выбором, загрузкой из инета и прошивкой рекавери, после подтверждения пользователем:
Код
# Recovery flashing from fastboot with choice and confirm dialog
dfs radiobox "TWRP|CWM Recovery|Phiz Touch Recovery" "http://z-lab.me/twrp/recovery.img|http://z-lab.me/cwm/recovery.img|http://z-lab.me/phiz/recovery.img" "Recovery flashing" "Make a choice" "Select preferred recovery:"
dfs download %RADIOBOXRESULT%
dfs show confirmation "FLASHING" "WARNING" "If you press OK, DroidFlasher will flash new recovery from %RADIOBOXRESULT%"
fastboot flash recovery recovery.img
dfs radiobox "TWRP|CWM Recovery|Phiz Touch Recovery" "http://z-lab.me/twrp/recovery.img|http://z-lab.me/cwm/recovery.img|http://z-lab.me/phiz/recovery.img" "Recovery flashing" "Make a choice" "Select preferred recovery:"
dfs download %RADIOBOXRESULT%
dfs show confirmation "FLASHING" "WARNING" "If you press OK, DroidFlasher will flash new recovery from %RADIOBOXRESULT%"
fastboot flash recovery recovery.img
Поддерживаются все команды (fastboot/mfastboot/adb), можно писать большие пакетные файлы для выполнения любых операций:
Код
adb devices -l
adb reboot bootloader
fastboot devices
adb push /local /remote
fastboot oem unlock
adb reboot bootloader
fastboot devices
adb push /local /remote
fastboot oem unlock
Также, для:
- "fastboot flash /local/file"
- "fastboot boot /local/file"
- "adb sideload /local/file"
- "adb push /local /remote"
- "adb pull /remote /local"
Можно в dfs файле для локального файла указать как абсолютный путь, так и просто имя (DroidFlasher проверит наличие файла сначала по абсолютному адресу, если не найдет, будет использовать файл с этим именем из рабочей директории.
Для примера, следующий код показывает полностью корректный *.dfs файл, и будет работать без ошибок:
Код
fastboot flash boot boot.img
fastboot flash system /home/zorg/files/system.img
adb push my.apk /sdcard
adb push /home/zorg/downloads/mynext.apk /sdcard
При этом boot.img и my.apk будут взяты из рабочей директории, а system.img и mynext.apk по абсолютным путям.
В дальнейшем планируется расширить функционал, например вот так можно будет загрузить файл и сразу его прошить:
Код
dfs download http://images.org/moto/boot.img
fastboot flash boot boot.img
fastboot flash boot boot.img
[close]
Скриншоты:
[close]
Видео:
overview (старый билд) :http://cloud.z-lab.me/public.php?service=f...07&download
отправляем и принимаем файлы (старый билд) : file transfer.mov
прошивка recovery (старый билд) : http://files.z-lab.me/video/sample/DroidFl...coveryFlash.mov
работа в консоли (старый билд) : http://files.z-lab.me/video/sample/DroidFlasher_Console.mov
[close]
Список изменений:
r100:
- первая публичная сборка
r101:
- добавлен mfastboot
r102:
- добавлен *.DFS скриптинг и sideload
r103:
- добавлена работа с Recovery (openrecovery, twrp)
- flash zip
- backup
- restore
- wipe (cache/data/dalvik)
- дальше, больше...
r104:
- можно прошивать через recovery несколько *.zip за раз (пока без возможности сортировки)
- можно прошить zip из памяти телефона (нужно указать точный путь до файла)
- исправления и изменения UI
r105:
- Обновления интерфейса
- drag and drop для передачи файлов и запуска dfs
- много рефакторинга
- используются иконки: fatcow, fugue, small-n-flat
- используются шрифты: PT Sans, PT Sans Narrow
- изменения под капотом dfs
- добавлена команда download для dfs, пример:
Код
dfs download http://files.z-lab.me/mobile/Moto%20X/recovery/openrecovery-twrp-2.8.5.0-ghost.img
adb reboot bootloader
fastboot flash recovery openrecovery-twrp-2.8.5.0-ghost.img
adb reboot bootloader
fastboot flash recovery openrecovery-twrp-2.8.5.0-ghost.img
r106:
- Обновления интерфейса
r107:
- добавлена новая команда -> dfs set workdir, работает только в simplemode и переопределяет автоматически (в фоновом режиме) создаваемую им рабочую директорию. Если simplemode выключен, то команда игнорируется.
- много рефакторинга
- значительная чистка проекта
- изменения в UI
r108:
- проверяет и уведомляет о наличии новой версии
- рефакторинг
- simple mode включен по-умолчанию, меньше диалогов, рабочие каталоги создаются автоматом (используйте: dfs set workdir, если нужно гарантировать ручной выбор рабочего каталога)
r109:
- добавлена новая комманда: dfs radiobox
- добавлена новая комманда: dfs show
[close]