- Как перепаковать прошивку андроид
- Перепаковка и встраивание прав Root в прошивку на Android смартфоны Samsung
- Необходимо:
- Распаковываем прошивку
- Конвертация образа img
- Монтируем образ
- Встраиваем Root права
- Запаковываем в Img
- Запаковываем в tar.md5
- О песочнице
- О модерации
- Способы извлечения и замены файлов в прошивках Android-устройств
- Что представляет собой прошивка
- Стоит ли распаковывать прошивку
- Распаковка прошивки Android в ZIP-формате
- Распаковка IMG-прошивок
- Преобразование KDZ-архива в DZ-архив для последующего создания BIN-папки и привычных архивов
- Распаковка QSB и INB-прошивок
- Как прошить устройства на базе Android
- Разработка и модификация прошивки для Android телефонов на примере HTC Hero GSM. Часть 1
- Основа
- Извлечение rom.zip
- Распаковка образов
- Скрипт обновления
- Подпись пакета обновления
- Прошивка радио модуля
- Прошивка
Как перепаковать прошивку андроид
Прошивка в каком виде сейчас? zip файл или как?
Идем 1- сюда (или ищем для своего аппарата в той же теме) и 2- Создание кастомных прошивок сохраняем в закладки.
Способ №1 . Установленная прошивка
Установить Root и Coustom Recovery. Сделать Nandroid backup Установить Root Explorer (Titanium Backup, Link2SD) на устройство. Определиться что нужно оставить в прошивке (по первой ссылке). Через Root Explorer (Titanium Backup, Link2SD) удаляем лишнее. Добавляем (заменяем) свои-ми приложения-ми (вкладка в программе(ах) преобразовать в системное ). Перезагрузить девайс радуемся :russian: .
Способ №2 . Прошивка на компьютере.
Скачать архив прошивки в формате *.zip на комп произвести удаление (добавление) через компьютер. Устанавливаем Андроид кухню (вторая ссылка) перегоняем прошивку через кухню. Деодекс, базибокс, вайп статус, подпись приложений, переименование прошивки. и т.д. Кладём прошивку в телефон Сделать Nandroid backup шьём через Coustom Recovery- радуемся :dancer: .
Способ №3 . Прошивка в формате *.zip на устройстве.
Установить Total Commander. Удаляем ненужное (ссылка номер 1) (добавляем) необходимое. Упаковка без сжатия. Сделать Nandroid backup шьём через Coustom Recovery- радуемся :smoke:
Как правильно добавить свои программы.
Сообщение отредактировал Димар — 15.01.14, 18:16
Я в своей прошивке достаточно много чего поменял в лучшую сторону,пожалуйста помогите собрать отредактированную прошивку в установочный zip который можно будет установить через Recovery.
Сообщение отредактировал 6211997 — 09.06.13, 22:20
Источник
Перепаковка и встраивание прав Root в прошивку на Android смартфоны Samsung
Посвящается всем желающим модифицировать прошивки.
Приступим.
Необходимо:
1. ПК с Ubuntu x32 (желательно, точней проверено что в ней работает)
2. Пакет утилит ext4_utils
3. Библиотека сжатия zlib1g-dev
4. Стоковая прошивка Samsung
5. Бинарный файл Su и приложение для управления Root правами (Superuser.apk)
5. Nautilus terminal для удобства работы
После инсталляции необходимого приступаем.
Распаковываем прошивку
Конвертация образа img
Кладем в папку ext4_utils файл factoryfs.img и выполняем команды
Монтируем образ
Встраиваем Root права
Запаковываем в Img
Прежде всего узнайте размер блока на смартфоне и переведите его в мегабайты (средствами Adb или Android терминал эмулятор)
Запаковываем в tar.md5
Далее шьем полученую прошивку в Odin.
О песочнице
Это «Песочница» — раздел, в который попадают дебютные посты пользователей, желающих стать полноправными участниками сообщества.
Если у вас есть приглашение, отправьте его автору понравившейся публикации — тогда её смогут прочитать и обсудить все остальные пользователи Хабра.
Чтобы исключить предвзятость при оценке, все публикации анонимны, псевдонимы показываются случайным образом.
О модерации
Не надо пропускать:
- рекламные и PR-публикации
- вопросы и просьбы (для них есть Хабр Q&A);
- вакансии (используйте Хабр Карьеру)
- статьи, ранее опубликованные на других сайтах;
- статьи без правильно расставленных знаков препинания, со смайликами, с обилием восклицательных знаков, неоправданным выделением слов и предложений и другим неуместным форматированием текста;
- жалобы на компании и предоставляемые услуги;
- низкокачественные переводы;
- куски программного кода без пояснений;
- односложные статьи;
- статьи, слабо относящиеся к или не относящиеся к ней вовсе.
Источник
Способы извлечения и замены файлов в прошивках Android-устройств
Частые зависания системы и другие ошибки являются результатом некорректной работы программного обеспечения. Проблемные программы можно легко удалить. Но что делать с установленным софтом, который не удаляется из системы? В таких случаях устройство необходимо перепрошить на более стабильную версию или самостоятельно внести правки в ОС. В данном посте вы узнаете, как открыть прошивку Android для последующего ее изменения.
Что представляет собой прошивка
Прошивка – это операционная система, которая соединяет в единую цепь весь технический потенциал гаджета и предоставляет пользователю оптимальные эксплуатационные возможности. Данное программное обеспечение является основой всех современных многофункциональных устройств.
На просторах глобальной сети можно найти внушительное количество официальных и кастомных прошивок, открывающих дополнительные возможности.
Стоит ли распаковывать прошивку
Распаковка прошивки представляет собой непростой процесс, который требует времени и соответствующих навыков, но является весьма актуальным и полезным.
Посредством распаковки пользователь может внести корректировки в работу самых различных элементов установленного программного обеспечения, исключив тем самым возможность появления ошибок, зависаний и многих других неприятных моментов без перепрошивки и замены ПО.
Задумавшись над вопросом, нужно ли распаковывать прошивку Android, вы наверняка найдете пару дополнительных плюсов. Из распакованной прошивки можно извлечь apk-файлы или интегрировать инсталляторы прочих программ.
Распаковка прошивки Android в ZIP-формате
Любые ZIP-папки распаковываются привычным архиватором, например WinZip. При этом процесс распаковки занимает всего несколько минут, так как объем сжатых файлов не превышает 500 Мб. Скачать и установить программу можно на любой компьютер.
Для распаковки Android-прошивки нужно найти архив на ПК, кликнуть на нем правой кнопкой мыши, выбрать распаковку и указать директорию для переноса всех файлов. Решая, чем распаковать ZIP-прошивку Android или любой другой архив в данном формате, можете воспользоваться такими архиваторами, как WinRAR, 7-Zip, PeaZip или IZArc.
Распаковка IMG-прошивок
Популярным расширением архивов c инсталляционными файлами и прочими данными по прошивке является .img. Это особый подвид архивов, который не разбирается на составляющие привычными методами.
Если вы не знаете, как открыть IMG-прошивку Android на Huawei, понадобится выполнить ряд специфических действий и скачать дополнительный софт. Для работы с прошивками такого типа понадобятся утилиты EXT4 Unpacker и EXT2 Explore. После их скачивания можно приступить к процессу извлечения файлов, который проходит по такой схеме:
- Распакуйте IMG-архив прошивки в любую директорию на компьютере.
- Запустите программу EXT4 Unpacker и с ее помощью найдите файл system.img.
- Сохраните файл system.img с расширением .ext4 с помощью кнопки «Сохранить как».
- После распаковки запустите софт EXT2 Explore от имени администратора. Во вкладке «File» выберите пункт «Open Image», укажите место расположения ранее созданного system.ext4.
- В правой части окна программы EXT2 Explore нажмите на иконку жесткого диска правым кликом мышки, в выпадающем меню выберите опцию «Save». Будет предложена директория для извлечения, укажите любую удобную папку и дождитесь окончания процесса.
Так осуществляется распаковка IMG-прошивки Android с целью извлечения из нее полезных данных и инсталляторов.
Преобразование KDZ-архива в DZ-архив для последующего создания BIN-папки и привычных архивов
KDZ – формат прошивок, которые зачастую использует в своих устройствах компания LG. Распаковка данных файлов требует использования дополнительного софта, поскольку обычные архиваторы не способны обеспечить необходимый доступ к утилитам прошивки и предустановленным инсталляторам.
Если вы думаете, как самому поменять файлы в прошивке Android формата .kdz, заблаговременно скачайте программы Windows LG Firmware Extract и EXT2 Explore. Процесс распаковки выполняется за схемой:
- Запустите Windows LG Firmware Extract, укажите рабочую папку «Working Folder». Ею может оказаться любая директория на ПК, куда вы хотите произвести распаковку.
- Нажмите на кнопку «Open», в поле «KDZ / TOT File» выберите файл своей прошивки. Вы увидите все файлы, которые хранятся в KDZ-архиве.
- Нажмите на кнопку «Extract KDZ» и дождитесь, пока программа отформатирует архив в DZ-формат. Об успешном окончании процесса будет свидетельствовать надпись «Progress Done».
- Перейдите к пункту «DZ File», выберите в нем только что созданную прошивку в DZ-формате. Откроется таблица имеющихся в архиве файлов. Нужно выбрать все файлы с расширением .bin и нажать на кнопку «Extract DZ». После завершения процесса появится надпись «Progress extract DZFile Done».
- Для преобразования файлов .bin в формат .img необходимо нажать на кнопку «Merge System bin». В директории, которую вы изначально указали в качестве рабочей папки, будет создан каталог «Merge output», в котором найдете system.img.
Для открытия этого файла вами заранее была скачана программа EXT2 Explore. С ее помощью вы сможете убрать из прошивки все необходимое и достать полезные инсталляторы для кастомной прошивки.
Распаковка QSB и INB-прошивок
Прошивки с расширением .qsb и .inb являются прерогативой устройств компании Lenovo. Их распаковка не занимает большого количества времени и проводится посредством всего одной утилиты LenovoWinTools.
Данная программа имеет интуитивно понятное управление и предоставляет массу дополнительных возможностей. Помимо распаковки прошивок она позволяет осуществлять быструю обратную сборку прошивки с уже измененными файлами, способствует комфортной работе с контекстным меню, проводит сборку нескольких частей файлов в один.
Для работы с прошивкой через редактор LenovoWinTools достаточно установить русифицированную программу, зайти в пункт «Файл» и посредством имеющихся инструментов выбрать свою прошивку. Далее потребуется подождать, и тогда прямо из программы сможете оперировать файлами прошивки.
Как прошить устройства на базе Android
Найдите новую или кастомную версию операционной системы и проведите ее установку. Сделать это можно несколькими способами: с использованием ПК и без него. Принципы обновления прошивок на всех устройствах схожи, но есть некоторые нюансы, которые относятся к определенным моделям и маркам устройств.
Источник
Разработка и модификация прошивки для Android телефонов на примере HTC Hero GSM. Часть 1
Причины по которым люди ставят модифицированные версии прошивок различны. Кому-то хочется удивить друга смешной анимацией загрузки, кому-то не хватает определенного функционала (например vpn), кто-то хочет выжать максимум производительности из своего телефона за счет разгона процессора, а кто-то пять месяцев ждет новую версию операционной системы Android для своего любимого HTC Hero.
На данный момент уже существует превеликое множество самых невообразимых сборок для самых различных телефонов на базе Android. Иногда они даже появляются в той или иной форме на Хабре.
Я же хочу Вам рассказать о процессе и особенностях создания кастомной прошивки на основе официальной. Данные знания были получены в процессе разработки одной из не многих отечественных прошивок на базе Android 2.1 для HTC Hero GSM. И более или менее успешно опробованы на себе и других подвернувшихся пользователях одного крупного российского форума.
Не смотря на то, что все нижеследующее было сделано для HTC Hero, данные правила и особенности имеют полную силу для всех телефонов, особенно тех, которые разработаны компанией HTC и используют фирменную оболочку Sense.
Для экспериментов нам понадобится:
- Android SDK желательно последней версии
- Утилита apktool для реинжениринга системных приложений
- Утилиты smali/baksmali для де-оптимизации системных приложений
- Утилита unyaffs для извлечения системных файлов из образа
- Скрипт split_bootimg.pl для извлечения ядра и ramdisk-а
- Утилита testsign для подписывания пакета обновления и отдельных приложений
- установленное и настроенное JRE
- телефон с операционной системой Android
- права суперпользователя и модифицированная подпрограмма восстановления (recovery rom)
Все вышеперечисленное доступно в версиях как для системы Linux так и для Windows. Но в своих примерах я буду ориентироваться на использование Linux.
Конечно же ни root-права ни recovery нам не нужен для того, чтобы начать разработку, однако если мы захотим опробовать наше творение, они нам понадобятся. Для HTC Hero можно использовать RA-hero-v1.6.2.
Наверное, самое время напомнить, что использование неофициальных прошивок лишает нас гарантии, но где наша не пропадала. И несмотря на то, что большинство операций безопасно — всегда нужно четко понимать что и зачем делается, дабы не причинить необратимый вред своему андроиду
Основа
Существует несколько различных подходов к разработке прошивки.
- Сборка из исходников Android Open Source Project
- Сборка из исходников проекта CyanogenMod
- Модификация прошивки, предоставляемой производителем телефона
Несмотря на то, что платформа Android вроде как и является открытой, но в реальных телефонах используются закрытые компоненты. Это и драйверы распространяющиеся в бинарном виде (wifi/gps/fm), и ключевые компоненты системы, такие как Маркет и другие сервисы Google. Также сюда нужно добавить разработки компаний в области интерфейса, такие как HTC Sense, Motoblur, TouchWiz от Sumsung. Это создает местами непреодолимые трудности по разработке прошивки из исходных кодов.
Я предлагаю остановиться на модификации готовых прошивок, предоставляемых вендорами телефонов.
Прошивки для телефонов HTC существуют в двух видах:
- RUU. Rom Update Utility (Утилита обновления прошивки). Утилита для ОС Windows производящая обновление телефона
- OTA. Over the Air (Обновление по «воздуху»). Пакет, скачиваемый самим телефоном через wifi/gprs сети, который устанавливается на телефон без какого-либо участия компьютера
Последнее время OTA-обновления состоят из бинарных diff-ов, что несколько осложняет использование оных в качестве основы. Так как это требует наличия конкретного телефона с определенной версией прошивки, что может быть просто невыполнимым, если мы хотим адаптировать прошивку от одного телефона для другого. Либо предполагает долгую и мучительную подтасовку идентификатора телефона с последующим скачиванием обновления без его установки. Причем, возможно, эту процедуру придется повторить несколько раз.
Будем использовать RUU обновление.
Извлечение rom.zip
1. Скачиваем подходящую версию RUU для интересующего нас телефона. Найти которую можно либо на сайте HTC, либо в других источниках. Для HTC Hero воспользуемся, вышедшей в начале июня версией Android 2.1 для оператора Chunghwa (Тайвань)
2. RUU утилита при обновлении телефона прошивает сразу несколько областей:
- загрузчик boot (hboot)
- ядро linux + ramdisk (boot)
- прошивка для радио-модуля (radio)
- подпрограмма восстановления (recovery)
- системный раздел (/system)
- пользовательский раздел (/data)
Однако мы не можем позволить RUU-утилите перезаписать наш любовно установленный загрузчик и recovery. Дабы иметь и далее возможность устанавливать не только официальные прошивки. Для этого нам необходимо извлечь радио/boot/system/data.
В сущности RUU является InstallShield-овским инсталлятором, который несет в себе необходимые нам образы в rom.zip.
Запускаем его и попадаем в заглавный приветственный экран. Не заходя дальше, открываем системную папку %TEMP%, в которой мы видим 2 новые папки, в одной из которых мы найдем файл rom.zip. Копируем в уединенное место и закрываем RUU отменой установки.
Распаковка образов
Распаковав полученный архив и удалив не интересные для нас образы, мы увидим:
- $ ls -1 rom
- boot.img
- Radio_Signed_HERO_63.18.55.06O_6.35.15.01.img
- system.img
- userdata.img
Телефон несет в себе 512Мб NAND Flash, которые разбиты на следующие логические блоки
- $ adb shell cat/ proc / mtd
- dev: size erasesize name
- mtd0: 00040000 00020000 «misc»
- mtd1: 00500000 00020000 «recovery»
- mtd2: 00280000 00020000 «boot»
- mtd3: 0aa00000 00020000 «system»
- mtd4: 08200000 00020000 «cache»
- mtd5: 0a5c0000 00020000 «userdata»
Как мы видим, данные области памяти непосредственно связаны с полученными нами образами. RUU производит запись образов as-is, но мы хотим ведь изменить наполнение системы, поэтому нам необходимо распаковать их.
В качестве файловой системы для NAND в android используется yaffs2
- $ adb shell mount|grep yaffs
- / dev / block / mtdblock3 on / system type yaffs2 ( ro )
- / dev / block / mtdblock5 on / data type yaffs2 ( rw,nosuid,nodev )
- / dev / block / mtdblock4 on / cache type yaffs2 ( rw,nosuid,nodev )
Распакуем system и data (/cache остается пустым)
- $ mkdir system &&cd system && unyaffs .. / .. / .. / rom / system.img
- $ mkdir .. / data &&cd .. / data && unyaffs .. / .. / .. / rom / userdata.img
В результате мы получили полноценное корневое дерево, пригодное для прошивки в телефон, которое содержит системные библиотеки, framework, системные приложения, файлы конфигурации и пр.
Стоит учитывать, что в распакованном архиве содержатся символические ссылки, которые будут утеряны на файловых системах не поддерживающих оные (fat/ntfs). Которые мы можем восстановить через скрипт обновления, о чем будет рассказано в другой статье.
Также нам понадобиться boot-раздел, который по сути является linux ядром (для выбранной прошивки это 2.6.29 armv6l) с ramdisk-ом и имеет следующий формат:
Если мы захотим заменить ядро, либо модифицировать скрипты инициализации, нам необходимо их извлечь из boot-образа. Для этого нам понадобиться замечательный perl-скрипт split_bootimg.pl за авторством William Enck.
- $ split_bootimg.pl .. / rom / boot.img
- $ ls
- boot.img-kernel boot.img-ramdisk.gz data system
С самим ядром мы ничего не можем сделать, кроме как заменить его другим, а рамдиск можно распаковать для последующего изменения и настройки:
- $ mkdir ramdisk &&cd ramdisk &&gzip -dc .. / boot.img-ramdisk.gz |cpio -i
- $ ls
- data default.prop dev init init.goldfish.rc init.hero.rc init.rc logo.rle proc sbin sys system
В данной статье мы не хотим ничего делать ни с ядром ни с ramdisk-ом, а потому запакуем все обратно (либо вернемся на шаг назад и вообще не будем трогать boot)
- find . |cpio —quiet -o -H newc |gzip> .. / new-ramdisk.gz
- $ cd .. && mkbootimg —kernel boot.img-kernel —ramdisk new-ramdisk.gz —cmdline «no_console_suspend=1 console=null» -o newboot —base 0x19200000
Для других телефонов настроки базового смещения могут отличаться. Коммандлайн мы получаем из split_bootimg при распаковке.
Скрипт обновления
Для обновления будем использовать update-скрипт, который пишется на специальном скриптовом языке edify, о синтаксисе которого можно прочитать в исходниках android. Скрипт /META-INF/com/google/android/update-script может быть таким:
- show_progress 0.1 0
- format CACHE:
- format SYSTEM:
- copy_dir PACKAGE:system SYSTEM:
- set_perm_recursive 0 0 0755 0644 SYSTEM:
- set_perm_recursive 0 2000 0755 0755 SYSTEM:bin
- set_perm 0 3003 02755 SYSTEM:bin/netcfg
- set_perm 0 3004 02755 SYSTEM:bin/ping
- set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluez
- set_perm 0 0 0755 SYSTEM:etc/bluez
- set_perm 1002 1002 0440 SYSTEM:etc/dbus.conf
- set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks
- set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh
- set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp
- set_perm 0 0 04755 SYSTEM:etc/ppp/ip-up-vpn
- show_progress 0.1 10
- show_progress 0.2 0
- copy_dir PACKAGE:data DATA:
- show_progress 0.2 10
- show_progress 0.3 0
- format BOOT:
- write_raw_image PACKAGE:boot.img BOOT:
- show_progress 0.3 10
Пока этот скрипт очень примитивен и единственное что он делает — подготавливает соответствующие разделы.
Подпись пакета обновления
Для того, чтобы мы смогли прошить нашу прошивку, нам необходимо подписать пакет обновления. Этот процесс аналогичен процессу подписывания jar-пакетов. К пакету добавляется ваш (либо тестовый) сертификат и сохраняются контрольные суммы для файлов внутри него.
- $ zip -r habrarom.zip .
- $ java -classpath ../../bin/testsign.jar testsign habrarom.zip habrarom-signed.zip
Прошивка радио модуля
Это самая простая часть в плане создания пакета обновления, но и самая опасная в плане последствий при неудачном обновлении.
Пакет обновления создается абсолютно идентично предыдущему, только содержать он будет бинарный блоб с радио, который мы извлекли из RUU и скрипт для его записи в соответствующий раздел памяти.
Простенький скрипт:
- show_progress 0.1 0
- write_radio_image PACKAGE:Radio_Signed_HERO_63.18.55.06O_6.35.15.01.img
- show_progress 0.1 10
Не многое, что будет включено в данный пакет обновления.
- $ ls -1
- META-INF
- Radio_Signed_HERO_63.18.55.06O_6.35.15.01.img
Всё это упаковывается и подписывается как делалось ранее.
Прошивка
Не смотря на то, что в полученную прошивку мы не добавили пока никакого нового функционала, мы бы хотили попробовать прошить и загрузиться в нее.
Для этого
- Копируем в корень карты наш пакет обновления
- Загружаемся в recovery
- Делаем nanroid backup
- Делаем wipe
- Прошиваем
- Перегружаемся
Радуемся тому, что наш больной пережил сложную операцию.
В данный обзор не вошли следующие важные вопросы, которые затрагивают уже непосредственно модификацию подготовленной базовой прошивки. Вопросы с которыми сталкивается любой создатель кастомов, и столкнулся непосредственно я при создании русской версии прошивки 2.1 для HTC Hero GSM
- Добавление root, busybox
- Де-оптимизация (deodexing) пакетов. Использование smali/baksmali. Разрешение odex-зависимостей
- удаленная odex-оптимизация приложений
- Модификация системных пакетов. Подпись пакетов: когда нужна, и когда можно пренебречь. Упаковка приложений. Обновление ресурсов приложений без пересборки
- Локализация системы, как пример масштабной модификации системы.
- Декомпиляция и сборка ресурсов/байткода системных приложений. Исправление ошибок системных приложений
- zip-align, png оптимизация
- Подписывание приложений и проблема круговой поруки при использовании shared uid
- Использование скриптов инициализации на примере переноса данных из одного раздела в другой (dalvik-cache2cache, app2sd)
А тем временем ждем с нетерпением, когда за обновлением FOTA клиента последует обновление самой системы до версии 2.1-update1.
Источник