Получил новую мобилку, Lenovo p780. А MobileUncle ее не шьет… Вроде бы прошивает recovery, но при перезагрузке ничего не меняется. SP Flash Tool не вариант, так как ждет от мобилы коннекта, а в линуксе девайс появляется на 1 секунду вместе с устройством, ждать появления устройства эта программа не умеет. Возможно в будущем попробую сделать pipe.
Но прошить что угодно можно простой командой dd. Нужно только вычислить куда и сколько записать. Это оказалось довольно просто. Память на мобиле emmc, смотрим файл /proc/dumchar_info, находим запись “recovery 0x0000000000600000 0x0000000002780000 2 /dev/block/mmcblk0”. То есть recovery не монтируется как раздел, а лишь прописано на устройстве mmcblk0 начиная с адреса 0x2780000 и имеет длину 0x600000 байт. Переводим эти числа в десятичный вид (http://web2.0calc.com/), для скорости читать будем по килобайту, поэтому делим на 1024, получаем команду чтения рекавери:
dd if=/dev/block/mmcblk0 of=/data/local/tmp/recovery-old.img skip=40448 count=6144 bs=1024
Для записи нового рекавери соответственно
dd of=/dev/block/mmcblk0 if=/data/local/tmp/recovery-old.img seek=40448 count=6144 bs=1024
(обратите внимание, при чтении – skip, при записи – seek!)
Все. Перегружаемся в новое рекавери (например TWRP), и через него делаем все остальное. Лично мне понравилась прошивка Nexus 5, переход на CN-разметку делал этим скриптом, дело это не очень простое, внимательно в три прохода (то есть три раза из рекавери делать install, выбирать средний пункт – переход на CN разметку, и в нем каждый раз выбирать следующий шаг).
Всем успехов в прошивках.
Leave a comment