Как создать установочный пакет ClockworkMod?

10

Я опытный ветеран Linux и недавно купил Samsung Galaxy S2 от T-Mobile. Я чувствовал, как работает ошибка, поэтому я решил скачать исходный код с сайта Samsung и начать возиться.

Моя проблема в том, что у меня уже установлен ClockworkMod на моем телефоне, поэтому я не хочу перезагружать новое ядро ​​и тем самым повреждать ClockworkMod, поэтому я ищу подробности о том, как создать подходящий установочный пакет ClockworkMod (обычно / всегда zip-файл?), чтобы я мог проверить вновь скомпилированные ядра.

Мои поиски в гугле пока ничего не дали. На странице ClockworkMod, похоже, нет документации. Может кто-нибудь указать мне документацию по процессу создания установочного пакета?

Питер Грейс
источник
1
Перепрошивка ядра с Odin ломает CWM?
Мэтью Прочитал
1
Я подумал, что так будет, потому что ODIN, кажется, прошивает основной загрузочный блок телефона, но я мог бы быть полностью вне базы. Я не хотел попробовать это, не зная наверняка. Насколько я понимаю, CWM - это тонкое ядро ​​среднего уровня, которое будет вращаться вокруг правильного ядра, но, опять же, может быть совершенно неосновным.
Питер Грейс,

Ответы:

8

Необходимая часть файла .zip ядра выглядит следующим образом:

META-INF
    com
        google
            android
                update-binary
                updater-script

Вы также захотите, чтобы zImageфайл ядра был где-то в другом месте, проще всего, если он находится в корне архива.

updater-scriptсодержит как минимум следующее (предполагается zImageв корне):

assert(package_extract_file("zImage", "/tmp/zImage");
       write_raw_image("/tmp/zImage", "/dev/block/mmcblk0p8");
       delete("/tmp/zImage")
);

Вы также можете выполнять такие действия, как отображение индикатора выполнения, печать сообщений, стирание /cacheи т. Д.

Вы хотите получить update-binaryдругой пакет ядра для SGS2. Один наугад прикреплен к этому сообщению XDA .

Я протестировал этот метод на моем SGS Vibrant без проблем, используя ядро ​​из пакета Odin и update-binaryдругое .zip ядра Vibrant. Обратите внимание, что это совершенно безопасно, если вы пишете в правильный раздел - для Vibrant это было bml17, для SGS2 это, кажется, mmcblk0p5(на основе ядра из XDA, с которым я связан выше) или mmcblk0p8если вы перепрошиваете весь образ загрузки (см. комментарии ниже). Вы захотите проверить это наверняка. В худшем случае ваше ядро ​​не работает, а вы прошиваете хорошо известное.

Мэтью Рид
источник
Для Samsung Galaxy S2 (T-Mobile) SGH-T989 правильная директива (собранная из известного хорошего рома, который я уже установил) показывает, что загрузочный блок находится в / dev / block / mmcblk0p8, а не в p5. Могу хотеть отредактировать это ради безопасности. Я сделал почтовый индекс на основе этого поста, и он работал как шарм! Спасибо!
Питер Грейс,
@PeterGrace А, загрузочный образ - это больше, чем просто ядро, поэтому он и отличается.
Мэтью Читал
Есть ли способ убедиться, что я должен использовать / dev / block / mmcblk0p8? У меня есть Galaxy S2 от Virgin Mobile Canada (то же самое, что Bell Canada), так что это не от T-Mobile, и у меня нет известного хорошего ROM (кроме CM7, но он пишет загрузочный образ, а не zImage). Должен ли я считать, что мой Virgin Mobile GS2 работает так же, как и ваш T-Mobile GS2, или есть способ проверить это?
Рогнон
@Rognon Вы можете попробовать запустить, mountчтобы увидеть, какие блоки отображаются и где. В противном случае найдите ROM.
Мэтью Читал
@MatthewRead mountне показывает ни p8, ни p5. Похоже, поиск в Google указывает, что zImage должен быть записан на p5, как и этот сайт: forum.xda-developers.com/showthread.php?t=1691867 . Я попытался перечислить содержимое папки, упомянутой в теме, но на моем телефоне ее нет ...
Rognon
-1

Я обнаружил, что вы можете использовать fastboot, не влияя на CWM.

sudo /path/to/fastboot boot boot.img

или

sudo /path/to/fastboot flash:raw boot /path/to/zImage /path/to/ramdisk.img
redbmk
источник