Замена Splash экрана в Android
Вложений: 1
Предупреждение: данные действия вы выполняете на свой страх и риск! Неправильные действия могут привести к неработоспособности вашего устройства!
Сегодня озадачился сменой загрузочных картинок в Android. При загрузке андроида последовательно используется 3 экрана: 1) Splash (обычно логотип фирмы-производителя) 2) Logo (по умолчанию зелёный робот) 3) Анимация На рутованном девайсе заменить анимацию -- самое простое (это файл bootanimation.zip, состоящий из серии зипованных PNG файлов). Но я хотел получить п. 1 и п. 2 без перепрошивки и пересборки ядра. Как ни странно, оказалось, что заменить п. 1 проще. Нужен SSH доступ к девайсу. Смонтированные ROM-имиджи находятся в папке /dev/mtd. Чтобы узнать какой из них за что отвечает пишем в шеле: cat /proc/mtd Мой медиаплеер Iconbit Toucan Nano выдаёт что-то вроде (ненужное опущено): mtd0: logo mtd1: boot mtd2: system mtd3: cache mtd4: userdata mtd5: ubootenv Далее через SFTP (я использовал обычный Far Manager с установленным WinSCP плагином) копируем "файл" mtd0 в компьютер. У меня получился файл размером ровно 4 мб внутри которого безо всяких заголовков тупо лежал 24-битный стандартный BMP файл с логотипом Iconbit, а лишнее пространство было просто заполнено нулями (ну это же всё-таки дамп флэша). Открыв файл в Фотошопе я не меняя разрешения отредактировал его так как хотелось и сохранил в формате 24 бит. Получилось около 1 мб. При помощи утилиты hiew заполнил пустое место нулями. Для прошивки флэша из командной строки Андроида (т.е. линукса) используется утилита flash_image. В моём девайсе её не оказалось, но я нашёл её в инете и она чудным образом у меня заработала. )) Утилита во вложении. flash_image имя_раздела путь/имя_файла Записываемый файл нужно залить сначала на девайс, затем его и указываем, например: flash_image logo /sdcard/logo/logo1.img У меня была какая-то непонятность с записью во флэш. Если просто указываешь эту команду, она выполняется, но старые данные не стираются. Однако, если указать в качестве параметра какой-то короткий файл (например 600 кб), то утилита выдаёт ошибку, что файл якобы не найден (хотя он там есть), а в "файле" /dev/mtd/mtd0 после этого оказываются нули. Вот теперь уже можно записывать нужный нам файл. После записи можно проверить результат снова скопировав /dev/mtd/mtd0 на компьютер, там уже должны быть новые данные. Далее пишем в шеле reboot и наслаждаемся новым Splash-экраном. )) Часть 2 (лого) находится во втором разделе (boot), но там свой формат, его нужно сначала распаковать, а затем корректно пересобрать. Если это сделать неправильно, можно превратить девайс в "кирпич". |
Добавлю, по своим экспериментам с лого, что иногда нужно так же удалять первые несколько байтов заголовка BMP, и оставлять только RAW данные изображения, чтобы все было красиво. Иначе первые несколько пикселей будут мусором (у меня было заметно на черном фоне). В остальном все верно. Еще, форматы BMP в разных устройствах разнятся, но как правило это 24bit R8 G8 B8. Так же, logo бывает зашито в uboot.
|
Я теперь пытаюсь понять что находится внутри boot.img чтобы убрать "зелёного робота". По описанию в инете там должно быть ровно 2К системной инфы, а затем image рам-диска с заголовком 00 00 00 00 1F B8. Но у меня там ничего такого нет... Непонятно.
|
хорошая работа.
но я считаю что карпк должен слипнуть/просыпаться, а не загружаться при подачи питания. |
Ну это нужно сложнее тогда реализовывать. А что если машина брошена дней на 7? На месяц? Помимо слипа нужно тогда делать и полное отключение при более длительном простое. В штатных навигациях так и делается.
А мой девайс загружается быстрее чем за 1 мин. По-моему, нормально... |
Эх, вот бы на Nexus 7 такое замутить, очень хочется убрать Logo.
|
Цитата:
за ночь слипа у меня теряется 2%, за сутки тогда порядка 5, за неделю 35 полное отключение произойдет само при просадке родной батареи или если интеграция без батареи, то лучше всегда вешать АКБ машины через умный БП но это все конечно холивар. Реально согласен, обе позиции имеют право на жизнь |
Кто сможет такое сварганить для Nexus 7, тут владельцев очень не мало, и думаю это многим понадобиться, дабы полностью сделать вид в авто, законченного продукта.
|
Ну на Nexus 7 анимацию меняли в другой теме и это получалось. Осталось только знак андроида при старте
|
Цитата:
|
Часовой пояс GMT +4, время: 03:24. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot