У меня HTC Hero с root-правами, и я хочу, чтобы adbd прослушивал порт во время загрузки.
Я попробовал код, найденный здесь :
setprop service.adb.tcp.port 5555
stop adbd
start adbd
в оболочке Android и прекрасно работает.
Я попытался изменить файл init.rc. Я добавил приведенный выше код в init.rc и заменил его исходным файлом с помощью следующих команд:
adb push init.rc sdcard
adb shell
adb su
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /
adb cp sdcard/init.rc /
Файл успешно заменен, но когда я перезагружаю телефон и пытаюсь подключиться через:
adb connect <IP>:5555
соединение не устанавливается.
Есть идеи?
(PS. Я не хочу использовать приложение remoteADB и команду оболочки, например am start -n ...
)
Причина, по которой он не работает должным образом, заключается в следующем:
Скрипт init.rc
находится на RAMDisk, прикрепленном к загрузочному образу.
Следовательно, init.rc
сценарий, который был отредактирован и перенесен, теперь перезаписывается собственным сценарием загрузочного образа при перезагрузке - фактически изменения теряются!
Вам нужно извлечь загрузочный образ, используя каждый загрузочный образ, содержащий ядро и RAMDisk. Доступные для этого инструменты можно найти здесь .
При вызове сценария split_bootimg.pl
на загрузочном образе он воссоздает следующее:
Два файла, очевидно, говорят сами за себя. Чтобы извлечь виртуальный диск, создайте каталог с именем RAMDisk и из этого каталога вызовите это: gzip -dc | cpio -i
, чтобы воссоздать структуру каталогов, которая используется в RAMDisk, которая при загрузке переключается на живую файловую систему. Там находится файл с соответствующей информацией init.rc
. Теперь это можно изменить на свое усмотрение.
Вернитесь на уровень каталога и введите это - mkbootfs ***RAMDisk*** | gzip > my_custom_ramdisk.gz
.
Затем, чтобы «прикрепить» исходное ядро к загрузочному образу, выполните следующее: mkbootimg -base 0x.... -kernel boot.kernel -ramdisk my_custom_ramdisk.gz -o my_custom_boot.img
.
На данный момент загрузочный образ создан, и теперь этот загрузочный образ нужно будет прошить через fastboot flash boot my_custom_boot.img
.
Изменения теряются при перезагрузке, потому что сценарий не отредактирован должным образом, что потребовало извлечения загрузочного образа, его изменения и повторной упаковки. После повторной упаковки и перепрошивки загрузочного образа изменения будут постоянными.
Это делается каждый раз, когда необходимы изменения.
Замените «service» на «persist», чтобы сохранить его после перезагрузки:
setprop persist.adb.tcp.port 5555
Тудор Илисой
Рубен О. Чиавоне