Замена системных файлов Android с помощью adb

в 9:58, , рубрики: android, Android sdk, linux, Чулан

Способ может быть полезен в том случае, если «уже ничего не помогает», доступа к Root Explorer нет или телефон вообще не может загрузиться. В моем случае, пришлось в «боевом» режиме восстанавливать удалённый по глупости SystemUI.apk. При этом на телефоне что-то делать можно было только в доли секунды между нажатием кнопки «ОК» на предыдущем окне с ошибкой и появлением следующего такого же окна. Перепрошиваться не хотелось, потому пришлось срочно осваивать adb.

Итак, для того, чтобы подключить свой гуглофон к adb, вам нужно:

1) Android SDK для Вашей системы (здесь — на примере GNU/Linux Ubuntu)
2) Android SDK Platform-tools (устанавливаются выбором соответствующей галочки в Android SDK)
3) В «Параметры — Программы — Отладка» должна стоять галочка на «Отладка по USB»
4) Подключить телефон к USB
5) В моём случае пришлось сделать еще две вещи:
указать ID производителя телефона idVendor(его можно найти здесь)
#echo SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666" > /etc/udev/rules.d/51-android.rules
#chmod a+r /etc/udev/rules.d/51-android.rules

где 0bb4 заменяем на код своего производителя, после чего перезапустить adb
#adb kill-server
#adb start-server

Итак, все установлено и подключено, вы добавили путь к platform-tools в переменную $PATH своей операционной системы или перешли в эту папку с помощью команды cd. По команде «adb devices» должен выдавать некий номер и справа от него «device». Это значит, что adb видит телефон и может с ним работать. Если вместо «device» что-то другое или вообще «List of devices attached» — проблема где-то на 4-5 шаге.

Далее вам нужно поместить системный файл, который вы хотите установить, в папку platform-tools. То есть запасная копия системного файла должна быть приготовлена заранее или скопирована с аналогичного телефона.

После этого можно закинуть системный файл в /system/app такой последовательностью команд:

$adb push YourFile.apk /data/Yourfile.apk
$adb remount
$adb shell
$su
#cp -f /data/YourFile.apk /system/app/Yourfile.apk
#chmod 644 /system/app/YourFile.apk
#exit
$exit
$adb reboot

где YourFile.apk — имя вашего системного файла, причем регистр букв имеет значение.
После последней команды Ваш телефон должен перезагрузиться уже с новыми файлами.
Если на команду «adb remount» Вы получаете ответ «remount failed: Operation not permitted», то попробуйте вместо нее после «su» ввести "#mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system".

P.S.: В линуксе, если platform-tools не добавлена в $PATH, вместо «adb» нужно писать "./adb".

В этой статье команды, которые я запускал от имени обычного пользователя обозначены символом $ в начале строки, от имени root — символом #.

Автор: zesaver

Источник

Поделиться новостью

* - обязательные к заполнению поля