Showing posts with label cyanogenmod. Show all posts
Showing posts with label cyanogenmod. Show all posts

Sunday, October 19, 2014

Добавление логотопчика при загрузке

Для пояснения, где эта картинка будет показываться рассмотрим последовательность загрузки телефона:

  1. uboot или другой загрузчик, показывает логотип кампании производителя статическая картинка поменять в теории можно, но нужно понимать как загрузка происходит на низком уровне и иметь возможность изменить radio и hboot разделы.
  2. загрузка ядра и инициализация устройств, можно добавить лого именно сюда и оно  продержится пару секунд до момента старта инита и замены на анимацию загрузки
  3. загрузка инита и монтирования разделов и запуск сервисов  показывается обычная анимация из файла подобного /system/customize/resource/hTC_bootup.zip.


Для того чтобы заменить или добавить логотипчик на 2 шаг нужно сделать такие шаги:

  1. Преобразовать картинку с размером экрана(480x800) в raw формат: convert -depth 8 -size 480x800  ~/Downloads/Tux.png rgb:tux.raw
  2. Собрать програмку конвертор в формат который понимимает ядро: gcc to565.c -o to565
  3. И с конвертировать в нужный формат ./to565  -rle < tux.raw > msmlogo.rle
  4. Положить этот файл в корень ramdisk и проверить включен ли CONFIG_FB_MSM_LOGO. По умолчанию картинка должна имень название initlogo.rle, но в моем случае инит скрипт пытался чтото сделать с этой картинкой, что приводило к ребуту телефона и для избежания конфликта я ее переименовал. 


Sunday, October 12, 2014

Пересборка boot раздела для android

Собираем утилиты для распаковки образов:
git clone git://github.com/CyanogenMod/android_system_core
cd  android_system_core
gcc -o ../mkbootimg libmincrypt/*.c mkbootimg/mkbootimg.c -Iinclude
gcc -o ../unpackbootimg libmincrypt/*.c mkbootimg/unpackbootimg.c -Iinclude

Распаковываем старый образ полученный с обновления или иным путем:
./unpackbootimg -i boot.img
mkdir ramdisk
cd ramdisk/
gunzip -c ../boot.img-ramdisk.gz | cpio -id

В папке с ramdisk меняем части которые нам нужно, разрешаем отладку и отключаем проверки безопасности (при входе под adb сразу root) меняем:
--- default.prop 2014-08-07 22:35:02.481322985 +0300
+++ default.prop 2014-08-07 22:35:18.293601299 +0300
@@ -1,8 +1,8 @@
 #
 # ADDITIONAL_DEFAULT_PROPERTIES
 #
-ro.secure=1
+ro.secure=0
 ro.allow.mock.location=0
-ro.debuggable=0
+ro.debuggable=1
 persist.service.adb.enable=0
 ro.metropcs.ui=0

Соберем ramdisk обратно:
cd ramdisk/
find . | cpio -o -H newc | gzip > ../newramdisk.cpio.gz
cd ..

Упаковываем в новый boot:
cp ../z4u-kernel/arch/arm/boot/zImage .
./mkbootimg --kernel zImage --ramdisk newramdisk.cpio.gz --base 0x3b00000 --cmdline 'no_console_suspend=1 console=null' -o new_boot.img, где 0x3b00000 значение из boot.img-base, no_console_suspend=1 console=null значение из boot.img-cmdline 

Monday, March 10, 2014

cm11 recovery for z4u

Удалось преодолеть первый шаг на пути создания собственной прошивки для z4u. Теперь можно использовать recovery раздел по назначению:-) Можно ставить новый прошивки и делать бекап для текущей прошивки. 
Ранее recovery имел следующие недостатки: 
  • прыжки изображения на экране при смене пункта меню что было не критично, но все же было недостатком (благодаря комиту); 
  • после подсказки в обсуждении разработки recovery и сравнения файлов используемых как fstab на разных версия cyanogenmod - удалось исправить этот файл, который поменял синтаксис для новых версий и теперь все грузится без проблем. Ранее экран просто мигал несколько раз каждую минуту и не показывал никакого меню. 


На данный момент в автоматически сгенерированной конфигурации нужно исправлять: 
  • fstab - по данным из /proc/emmc - данный файл отличается для 10.1 и 11 версии cyanogenmod 
  • BoardConfig: BOARD_*_SIZE - для указания реальных размеров разделов, TARGET_ARCH_VARIANT_CPU, TARGET_BOARD_PLATFORM, TARGET_BOARD_PLATFORM_GPU - для указания реальных значений процессора и видеокарты.

Далее нужно создать прошивку которая способна грузиться в обычном режиме загрузки телефона.

Saturday, March 17, 2012

Ice Cream Sandwich on Desire HD

Решил проверить как продвигается CM9 - пока не очень.

Используя версию чистого CM9 на основе инструкции- не загрузилось :-( Анимация при загрузке зациклилась, а как смотреть лог загрузки для андроида не понятно. Если есть желание повторить нужно загрузить: repo init -u git://github.com/CyanogenMod/android.git -b ics и добавить в system/.repo/manifests/default.xml репозитории:

  1. project path="device/htc/ace" name="CyanogenMod/android_device_htc_ace"
  2. project path="device/htc/common" name="CyanogenMod/android_device_htc_common" revision="refs/heads/gingerbread"
  3. project path="device/htc/msm7x30-common" name="CyanogenMod/android_device_htc_msm7x30-common"
  4. project name="koush/proprietary_vendor_htc" path="vendor/htc"

Версия собранная специально для этой модели запустилась - единственное отсутсвует приложение для радио и при записи видео приложение вылетает.