Этот перевод расчитан на тех, кто знает и понимает, что делает...
Driftking007 спросил меня, как изменить образ системы... так что вот несколько советов.
Там разница в работе с system/user образами и boot/recovery образами.
Примечание: Это, как-бы, применимо только к образу системы (и другим, использующим yaffs-файловую систему). Моддинг boot/recovery образов отличается.
1. Вы должны иметь Linux-машину (виртуалка или физическая).В процессе распаковки/переупаковки, файлы потеряют права доступа если вы используете версию Windows-инструментов (включая, если всё делается под Cygwin), в итоге вы получите образ который будет висеть (в оригинале статьи "freeze" - заморожен) во время загрузки телефона.
Примечание: я использовал кооперативный Linux с ArchLinux (CoLinux), как виртуальную машину под моей рабочей станцией XP.
2. Установите Java SDK (если она еще не присутствуют в вашей Linux-машине)3. Скачайте A686-инструменты для распаковки файла nb0. Вы можете найти последнюю версию A688-инструментов тут:
http://snowwolf725.blogspot.com/2010/04/a688a60a88.html :source: 4. Распакуйте прошивку можно командой:$ java -Xmx512M -jar nb0-utils.jar unpack firmware.nb0 firmware:обратите внимание: не забудьте "-Xm512M" или вы получаете исключение.
5. Убедитесь, что ваш дистрибутив Линукс имеет все необходимые пакеты для сборки (base/dev .. gcc/make .. прочие).6. Скачать unyaffs (инструмент распаковки образов файлов) patched sources.Вы найдете в вашем Linux-дистрибутиве unyaffs заранее собраным, но вы должны самостоятельно собрать и использовать исправленную версию из исходного кода, которая может сохранить права файловой системы в процессе распаковки.
Пропатченый исходник можно найти здесь:
https://github.com/ehlers/unyaffs/archives/masterИзвлеките и просто запустите в суб-каталоге make-файл, а затем переместите полученный файл unyaffs в директорию по вашему пути (сделайте изменение прав на исполнение, если это необходимо)
7. Извлеките содержимое system.img-файла в папку с именем системы:$ mkdir system
$ cd system
$ unyaffs ../FAD-0-4350-4100-system.img:!!!!: Если вы не распакуете в каталог с именем system, вы не сможете правильно упаковать его позже.
8. Сделайте необходимые изменения:Вы можете изменить то, что вы хотите, но не забудьте установить правильно владельца права доступа к файлам.
8bis Добавить ROOT в прошивку:Вы должны захватить су бинарник и Superuser.apk с официального сайта:
http://androidsu.com/superuser/ Копировать АПК и установить кашерные права:
$ cp Superuser.apk system/app/
$ chown root.root system/app/Superuser.apk
$ chmod 644 system/app/Superuser.apkСкопируйте бинарный файл SU и символическую ссылку и установить права:
$ cp su system/xbin
$ chown 0.2000 system/xbin/su
$ chmod 4755 system/xbin/su
$ cd system/bin
$ ln -s su /system/xbin/su9. Ставим инструмент mkyaffs2image:Получить предварительно собранный двоичный файл отсюда:
http://code.google.com/p/yafuse/downloads/...e=mkyaffs2image, положить его где-нибудь в PATH и не забудьте изменить права доступа, чтобы сделать его исполняемым.
10. Repack образа системы Что-то не так в коде mkyaffs2image и мне потребовалось некоторое время, чтобы найти и обойти эту ошибку.
Вы должны изменить текущую директорию на один уровень вверх ("Система" - каталог, созданный в точке №7) и использовать "-f ./system" аргумент. Если вы используете, например, аргумент с /x..x/x..x/system, то mkyaffs2image не сможет проверить этот аргумент. (Примечание: мда, бывают такие недоработки)
$ mkyaffs2image -f ./system FAD-0-4350-4100-system-new.img11. Замените стоковый файл FAD-0-4350-4100-system.img тем, который создали в точке № 10 (сохраните имя образа системы - оригинала).12. Дополнительно: пересборка nb0 файла:$ java -Xmx512M -jar nb0-utils.jar pack firmware.nb0 firmware13. Флэшим его с SUTL-инструмента.Если вы еще не пересобрали nb0 файл, просто найдите через SUTL в распакованном каталоге файл FAD-4350-0-4027-A02.mlf и скормите его SUTL в качестве входных данных.