Новости из мира доступных гаджетов

Краткое пояснение по прошивке Android на Chuwi Hi12

Планшет Chuwi Hi12 имеет UEFI BIOS, соответственно может грузится с разных носителей, на которых есть efi загрузчик и папка EFI в корне загрузочного диска.

Структура разделов на внутренней флешке планшета с dualboot примерно такая:
/dev/mmcblk0p1 2048 206847 204800 100M EFI System
/dev/mmcblk0p2 206848 411647 204800 100M Microsoft basic data
/dev/mmcblk0p3 411648 473087 61440 30M unknown
/dev/mmcblk0p4 473088 534527 61440 30M unknown
/dev/mmcblk0p5 534528 536575 2048 1M unknown
/dev/mmcblk0p6 536576 569343 32768 16M unknown
/dev/mmcblk0p7 569344 5812223 5242880 2.5G Linux filesystem
/dev/mmcblk0p8 5812224 6336511 524288 256M Linux filesystem
/dev/mmcblk0p9 6336512 27308031 20971520 10G Linux filesystem
/dev/mmcblk0p10 27308032 27310079 2048 1M Linux filesystem
/dev/mmcblk0p11 27310080 27326463 16384 8M Linux filesystem
/dev/mmcblk0p12 27326464 27531263 204800 100M EFI System
/dev/mmcblk0p13 27531264 27564031 32768 16M Microsoft reserved
/dev/mmcblk0p14 27564032 120109055 92545024 44.1G Microsoft basic data
/dev/mmcblk0p15 120109056 122157055 2048000 1000M Windows recovery environment

Штатная прошивка Android устанавливаемая с флешки содержит следующие файлы:
afu.bin
afu_cr_rvp_x32.bin
boot.img - образ раздела android_boot
bootloader - образ раздела android_bootloader(загрузчик efi устанавливаемый на диск)
cache.img - образ пустой файловой системы ext4 для "форматирования" в ext4 раздела android_cache
config.img - образ пустой файловой системы ext4 для "форматирования" в ext4 раздела android_config
firmware.bin
flash.json
ifwi.bin
ifwi_cr_rvp_x32.bin
installer.cmd - перечень команд для установки прошивки
installer.efi - непосредственно "прошивальщик"
loader.efi - efi загрузчик для прошивки планшета и минимальная командная среда необходимая для работы installer.efi
oemvars.txt - переменные для настройки оборудования заносимые в BIOS
recovery.img - образ раздела android_recovery(раздел восстановления, содержит ядро и минимальную среду для выполнения скриптов необходимых для сброса к фабричным установкам, ОТА обновления и т.д.)
startup.nsh - стартовый скрипт(5 сек. ожидает нажатия клавши для остановки, при бездействии запускает installer.efi на выполнение команд из installer.cmd в пакетном режиме)
system.img - образ системного раздела android_system, с включенной проверкой целостности и подписанный заводским ключом
gpt.bin - таблица разделов Android для разбивки диска(именно из-за того что на диск при установке заносится новая таблица разделов при прошивке слетает предустановленная Windows)

Непосредственно прошивку устанавливает в пакетном режиме installer.efi выполняя командны из installer.cmd:
oem unlock - разблокировать возможность изменения загрузчика. Secure boot у нас уже разблокирован
flash oemvars oemvars.txt - занести в BIOS переменные
flash gpt gpt.bin - прошить таблицу разделов Android
flash bootloader bootloader - прошить в раздел android_bootloader образ из файла bootloader
oem rm /ESP/BIOSUPDATE.fv - удалить из раздела android_bootloader скрипт для установки ОТА обновления
flash ifwi afu.bin
erase misc - очистить misc
erase persistent - очистить persistent
erase metadata - очистить metadata
format config - отформатировать config
format cache - отформатировать cache
flash system system.img - прошить system
flash boot boot.img - прошить boot
flash recovery recovery.img - прошить recovery
oem verified - включить проверку раздела boot на отсутствие модификации
format data - отформатировать раздел data
continue - завершить прошивку и перезагрузить планшет

Те же действия можно выполнить вручную в командной строке в которую можно попасть нажав любую клавишу в начале работы скрипта, или через fastboot. Fastboot - особая минимальная среда, которая восновном используется для прошивки планшета с компьютера через usb. Чтобы попасть в fastboot нужно при загрузке сразу после выбора ОС зажать и удерживать клавишу уменьшения громкости.

После прошивки мы имеем такую таблицу разделов:
Метка раздела *** Размер *** GPT идентификатор GUID *** UUID идентификатор)
android_bootloader *** 100 MiB *** EFI System partition *** Android-IA Bootloader
android_bootloader2 *** 100 MiB *** Windows Basic data partition *** Android-IA *** Bootloader2
android_boot *** 30 MiB *** Android-IA Boot *** Android-IA Boot
android_recovery *** 30 MiB *** Android-IA Recovery *** Android-IA Recovery
android_misc *** 1 MiB *** Android-IA Misc *** Android-IA Misc
android_metadata *** 16 MiB *** Android-IA Metadata *** Android-IA Metadata
android_system *** 2.5 GiB *** Linux filesystem data *** Android-IA System
android_cache *** 256 MiB *** Linux filesystem data *** Android-IA Cache
android_data *** 10 GiB *** Linux filesystem data *** Android-IA Data
android_persistent *** 1 MiB *** Linux filesystem data *** Android-IA Persistent
android_config *** 8 MiB *** Linux filesystem data *** bd59408b-4514-490d-bf12-9878d963f378
Остальное пространство свободно

Имена разделов важны для загрузки, т.к. монтирование файловых систем происходит именно по именам разделов! А вот TWRP в зависимости от версии ориентируется или на имена разделов (что неправильно с точки зрения разработчиков, но работает на нашем планшете) или по номерам разделов.

При загрузке стокового Android после загрузки ядра и модулей с раздела boot происходит монтирование остальных разделов. Поскольку система безопасной загрузки(dm-verity) не позволит загрузить Android с модифицированного раздела System, то этот раздел всегда монтируется в режиме read-only, т.к. в противном случае файловая система будет модифицирована и контрольные суммы блоков не сойдутся. Поэтому при любых! модификациях раздела System(root, добавление поддержки ntfs/exfat, встраивание скрипта повышения чуствительности сенсорного экрана и т.д.) dm-verity должен быть выключен(иначе загрузка остановится на логотипе Chuwi впрочем adb при этом уже работает). Выключить проверку можно через adb(отладочный режим по USB, команда adb disable-verity) или прошив уже модифицированный образ раздела System где уже выключена проверка. При успешном монтировании раздела system(логотип Chuwi меняется на лого Android) и продолжении штатной загрузки может быть проверен и восстановлен к заводскому образу раздел android_recovery.

Опубликовано Ср, 21 дек 2016

Восстановление автоповорота экрана в Android на Chuwi Hi12

Chuwi Hi 12

Планшет Chuwi Hi12 названный сайтом Techtablets "Планшетом с лучшим экраном и временем жизни от батарей на платформе Atom" с двойной (Android 5.1/Windows 10) загрузкой и поддержкой стилуса достаточно популярен у покупателей. Производитель совершенствует планшет и прошивки, только "забывает" выложить их на свой сайт.
В планшетах Chuwi Hi12 выпущенных после 27 сентября 2016 года прошиты BIOS E4D6_HI-122LP.233 и сборка Android с версией ядра 3.14.37-x86_64-L1-R517 at Sep 27 09:25:55 CST 2016. Но на официальном сайте Chuwi нет этой официальной прошивки. Апрельская версия Android с сайта Chuwi может быть установлена на такие планшеты, но при этом перестает работать автоматический поворот экрана. Восстановить работу автоповорота удалось с помощью вот этой прошивки. Как я понял она собрана из апрельской официальной прошивки и копии boot раздела от новой версии планшета. Мне помогло, может быть и другим поможет.

Update:
доработанный стоковый раздел system (ro.build.display.id=cht_cr_mrd_w-userdebug 5.1 LMY47I eng.softteam.20160927.090911 release-keys ro.build.version.incremental=eng.softteam.20160927.090911):
Изменения:
- лаунчер Catapult (форк Trebuchet);
- уменьшена минимальная яркость;
- включен твик тачпада (/proc/gt9xx_config);
- при первой загрузке английский язык;
- нет китайских приложений.
Брать здесь. Шить через fastboot.

Опубликовано Сб, 3 дек 2016

Русифицированная прошивка OpenWRT для Xiaomi Mi Nano

Xiaomi Mi Nano

Несмотря на то, что оригинальная прошивка младшего из линейки роутеров фирмы Xiaomi - Mi Nano основана на OpenWrt, долго не мог найти к нему прошивку со стартовым интерфейсом не на китайском. Везде на форумах и в wiki OpenWrt предлагается установить PandoraBox от китайцев, естественно со стартовым интерфейсом на китайском языке.

Однако, "кто ищет - тот найдет". Нашлась прошивка с нормальным интерфейсом "из коробки" (+русским!). Основана на trunk snapsot'e OpenWrt. Скачать можно здесь

Опубликовано Чт, 7 апр 2016