vash-web.ru

Веб-разработка, WordPress, мобильные устройства...


vash-web.ru

Как я портировал прошивки для смартфона с процессором Spreadtrum SC7731G

Информация о способе портирования прошивки для смартфона с процессором Spreadtrum SC7731G на примере ZTE Blade AF3

ПРЕДУПРЕЖДЕНИЕ: ПРОЦЕСС ПОРТИРОВАНИЯ ПРОШИВОК МОЖЕТ ЗАКОНЧИТСЯ ДЛЯ ВАШЕГО ТЕЛЕФОНА КРАЙНЕ ПЛАЧЕВНО. ВСЁ ЧТО ВЫ БУДЕТЕ ДЕЛАТЬ — ТОЛЬКО НА СВОЙ СТРАХ И РИСК…

Мне, чтобы собрать первую прошивку для смартфона Blade AF3 потребовалось около двух месяцев. Но по-большому счёту, всё оказалось проще,  чем я думал. Желающим, прочитав эту страницу будет несомненно легче….

ZTE_Blade_AF3-8-0903331

Информация к сведению: Прошивку можно собрать в формате .PAC для прошивки через компьютер с помощью ResearchDownload или в виде zip-файла для установки через CWM-TWRP Рекавери.

На этой странице я опишу как собрать прошивку Андроид 4.4.2 в формате .PAC для установки на телефон через компьютер.

Что желательно знать.

1. Уметь прошивать телефон прошивкой в формате .PAC, что поможет в конечном итоге и при распаковке прошивки в  формате .PAC для её предварительного редактирования. Как это делается можно посмотреть на этой странице — Немного информации о прошивке на смартфоне ZTE Blade AF3
2. Уметь разбирать главный файл прошивки system.img и в определённых случаях его собрать.
3. Не будет лишним уметь разбирать (а так же изменять и собирать) файлы прошивки boot.img и recovery.img.
4. Не будет лишним уметь редактировать-декомпилировать-компилировать приложения в формате .apk.

Используемые программы

1. Для прошивки (распаковки прошивки) использовал сначала программу ResearchDownload_R2.9.9005, с появлением Андроид 5.0 — RESEARCHDOWNLOAD_R2.9.9016.
2. Для разборки system.img (4.4.2-5.1) использовал RKwinToolsMod_v2_8. Собирал тоже этой прогой, но начиная с Андроид 5.0 — собрать рабочий system.img не получилось.
3. Файлы прошивки boot.img и recovery.img разбирал и собирал с помощью Android Image Kitchen.
4. Для сборки прошивки в виде zip-а для CWM использовал обыкновенный WinRAR, а также текстовый редактор Notepad++.
5. Для декомпиляции файлов  .apk использовал в основном ApkTools200b9m, что не всегда помогало. Вообще работа с .apk имеет специфические тонкости которые я до конца так ещё и не постиг..

Портирование прошивок в формате .PAC

ИНФОРМАЦИЯ НА ДАННОЙ СТРАНИЦЕ РАССЧИТАНА НА ЛЮДЕЙ ЗНАКОМЫХ НЕ ПО НАСЛЫШКЕ С СИСТЕМОЙ АНДРОИДОМ И ПОЭТОМУ ЭЛЕМЕНТОВ «РАЗЖЁВЫВАНИЯ» МАТЕРИАЛА НЕ БУДЕТ.

Основным критерием в выборе донора должно быть сходство процессоров и Андроидов — если телефон с 4.4.2, то и донор тоже должен быть 4.4.2. Крайне желательно (но не критично) чтобы и по «железу» устройства были максимально схожи.

Для начала надо скачать прошивку от донора. Такие есть на сайте http://www.needrom.com/. Для телефонов с процессором SC7731ЗДЕСЬ. В описании прошивки обычно указывается кое-какая информация о данном ПО и выглядит примерно так — Official ROM Colors X14 version: FS031M02_Z10_WK_K548_T20_FWVGA_V01_64X4_BT_FM_WIFI_GPS_ACC_PLS_2SIM_20150803_1739 – scx35_sp7731gea_fs031_project-user 4.4.2 KOT49H, где обращаем на выделенные мною красным цветом буквы и цифры. Если посмотреть в build.prop телефона Blade AF3, то такие строки тоже найдутся. И хоть это не обязательное правило, но чем более похоже ПО, тем легче может пойти процесс портирования.

Скаченную прошивку распаковать и запустить ResearchDownload_R2.9.9005, выбрать распакованный из архива PAC-файл. Перейти по пути C:\Users\User-Name\AppData\Local\Temp\_DownloadFiles****** — где в последнем каталоге и будет находится прошивка в более привычном виде.

ZTE_Blade_AF3-19-50-1710011

Если использовать RESEARCHDOWNLOAD_R2.9.9016 — то путь к распакованной прошивке будет выглядеть примерно так (зависит от того в каком каталоге находится данная программа) — E:\Downloads\RESEARCHDOWNLOAD_R2.9.9016\Bin\ImageFiles\_DownloadFiles****** .

Для дальнейших действий копирую файлы — boot.img, kernel_logo.bmp(1), boot_logo.bmp (могут называться по другому), recovery.img, system.img и SC77xx.xml (может также называться по другому, но имеет расширение .xml) в отдельную папку с названием телефона данной прошивки.

Первым делом надо посмотреть файл SC77xx.xml, чтобы определить установленную разметку данной прошивки.

ZTE_Blade_AF3-17-2222

Она бывает в основном двух видов — первый вариант применяется на телефоне Blade AF3. При портировании второго варианта донора будут проблемы с отображением памяти, но чаще всего это можно решить путём дополнительных действий… но не всегда…

Также надо обращать внимание на размер файла system.img. Желательно чтобы он не должен превышать размер этого же файла стоковой прошивки (Для стокового Blade AF3 — 1187840 Кб). Или придётся вносить изменения в файл SC77xx.xml.

Далее открываю  стоковую прошивку от Blade AF3 в ResearchDownload и захожу в настройки программы (кнопка с двумя шестерёнками), где снимаю все галочки (останутся только на первых двух строчках). Далее устанавливаю галочку напротив system  и нажимаю на данную строку правой кнопкой мышки — откроется окно выбора файла, где надо выбрать system из прошивки-донора.

ZTE_Blade_AF3-15-20-1111

Далее надо прошить этот файл. Когда процесс закончится — нажать кнопку Stop (в виде квадратика), отсоединить телефон от компьютера, извлечь и вставить обратно аккумулятор и включить  телефон… если прошивки от похожих телефонов — есть большая вероятность, что система загрузится… Если нет — всегда есть возможность восстановить исходное состояние телефона, прошив обратно system из стоковой прошивки (такую прошивку можно попробовать запустить сделав в виде ZIP-а с установкой через CWM-TWRP Рекавери. В таком варианте проще вносить и проверять изменения в системе).

Если система запустилась, то одна из наиболее встречающихся неполадок — это неработающие камеры. Также возможно не работает поворот экрана. Данные проблемы часто  решает простая замена следующих нескольких либов из стоковой прошивки в папку /system/lib/hw. По камере — camera.sc8830.so и camera2.sc8830.so, по экрану — sensors.sc8830.so. В тяжёлых случая надо попробовать менять либы относящиеся к камере в папке /system/lib. Правда в некоторых случаях после такой замены система не запускается.

Если у донора разметка отличается от стоковой, то при запуске обнаружится что нет sd-карты, а возможно и не отображается внутренняя память. В этом случае иногда помогает небольшое редактирование файла framework-res.apk из папку /system/framework. Для этого нужно скопировать эти оба файла из прошивок стоковой и донора. Открыть стоковый framework-res.apk обыкновенным WinRAR-ом и извлечь из него файл — storage_list.xml, находящийся по такому пути — framework-res/res/xml. Далее открыть framework-res.apk донора и заменить в нём storage_list.xml файлом извлечённым из стокового. Теперь осталось его только как-то заменить в прошивке, что возможно сделать через TWRP-Рекавери встроенным файловым менеджером, предварительно поместив изменённый (и копию не изменённого на всякий случай)  framework-res.apk на sd-карту. И запустить систему… иногда вариант редактирования с помощью storage_list.xml от стоковой прошивки не проходит и я добавлял от другой прошивки, где с память было нормально сразу. По идее надо разбирать (декомпелировать)  framework-res.apk, но здесь возникает много сложностей для описания которых потребуется большая страница.

Продолжение следует…..

Статьи по теме:




41 комментарий

  • Сергей сказал-(а):

    Здравствуйте. Я пытаюсь портировать на свой телефон прошивки с других телефонов, если пытаться прошить отдельно system, то researchDownload ругается на разметку. Пробовал изменить значение (стоит на стоке) на (стоит на портируемой прошивке) не помогает, если прошивать полностью портируемую прошивку, то по экрану идут полосы и ничего не видно.(Сама прошивка запускается,(можно прибавить/убавить громкость на телефоне, слышен звук, телефон нормально определяется компьютером+полосы на экране различных оттенков, можно понять что там)) но не работает сенсор, не видно практически ничего на дисплее). Пытался прошивать прошивки с андроид 5.1, 6. (у меня на телефоне андроид 5). Так же недавно в теме моего телефона на 4pda один пользователь пытался портировать twrp рекавери, у него вроде бы получилось, но только с переразметкой телефона (он увеличил образ рекавери с 12 до 14 мб). Запаковал это все в .pac со стоковой прошивкой. После прошивки у всех на экране точно такие же полосы и ничего не видно. Так вот, подскажите пожалуйста, как правильно переразметить память, и из-за чего может возникать проблема с дисплеем, и как ее можно исправить?

    Ответить
    • Сергей сказал-(а):

      * Пробовал изменить значение Partition id=»system» size=»1200″ (стоит на стоке) на Partition id=»system» size=»2050″ (стоит на портируемой прошивке). И еще, в одной теме вы писали, что уменьшили размер system.img. Как вы это сделали?

      Ответить
    • Валера Привалов admin

      Здравствуйте…
      1.я уже писал что при изменении размера system в *.xml надо чтобы файл system.img был не больше этого размера…
      2. С полосами тоже встречался на своём телефоне и победить такую ситуацию я пока не мог… это что-то на уровне ядра… приходилось отказываться от этого ядра…
      3. Для рекавери я также увеличивал размер блока с 12 до 14 или 16… чтобы не было полос — надо использовать другое ядро… другого способа я пока не нашёл…
      4. Для уменьшения большого файла system.img (для прошивки в формате .PAC) применял довольно трудоёмкий способ (нужно twrp-рекавери)…
      а) надо прошить любой файл system.img подходящий по размеру в нужную прошивку…
      б) большой файл system.img распаковываю с помощью RKwinToolsMod_v2_8, удаляю всё лишнее,
      в) на основе большого файла system.img делаю прошивку в формате .zip и прошиваю с помощью twrp-рекавери на телефон…
      г) запускаю систему, получаю Рут, устанавливаю Терминал и с его помощью копирую раздел system на sd-карту как system.img… этот файл в конечном итоге вставляю в прошивку .PAC… немножко геморойно но зато получается как надо… :)

      Ответить
      • Сергей сказал-(а):

        Спасибо за ответ, размер system 1855mb, в разметке стоит 2050, ставил точно такой же размер в стоковом файле с разметкой, не прошивается. Почему так? И еще, замена zImage в ядре не поможет? Просто на андроид 5, 5.1, 6 — версия ядра 3.10, по идее должно работать и со старым ядром

        Ответить
        • Валера Привалов admin

          Лично у меня с изменением разметки проблем не бывало… самое главное — правильно указать реальный размер system… можно system.img сделать меньше или в разметке поставить несколько больше… ведь на компьютере размер system.img указан в Кб (килобайтах), а в разметке — в Мб (мегабайтах)… надо не забывать что в одном Мб находится 1024 Кб
          А так проблема бывает из-за userdata.img, который может быть больше чем требуется потому что прошивка предназначена для телефона с большой памятью… но тогда ошибка происходит в самом конце прошивки…

          Версии одинаковые на андроид 5.1 и 6.0 — 3.10.65, на 5.0 — 3.10.64 и это ядро не поддерживает модули в буте…
          А так по идее ядро 6.0 должно бы работать на Андроид 5.1 (и наоборот), но по факту мои попытки это сделать также не увенчались успехом… может дело в рамдиске бута, может в чём-то другом… :)

          Ответить
  • данил сказал-(а):

    Здрасивуйте
    Валерий Привалов у нас в теме проблема вот сама тема http://4pda.ru/forum/index.php?showtopic=755200&st=1380#entry56262572
    У нас проблема в портирование android 5 а как я знаю у вас есть опыт и моглибы вы нам помочь в портирование мы будем всей темой очень благодарны если что у нас alcatel 4024d spreadtrum 7731 1.2gz 4gb ram и 512 rom и моглибы вы влица в нашу тему чтобы мы могли иметь с вами связь

    Ответить
    • данил сказал-(а):

      Если что мы уже от безысходности готовы всей темой скинутся тому кто сможет портирывать нам систему

      Ответить
    • Валера Привалов admin

      Здравствуйте… не всё так просто как может показаться со стороны… ведь сам я часто делаю «методом научного тыка» и, по большому счёту, мне самому ещё надо учится, учится и ещё раз учится… :) потому что хоть вроде бы как я и компилирую успешно для АФ3 ядро 5.1, но на телефоне оно не запускается… значить делаю что-то не так и поэтому пока сделал перерыв…
      В вашем случае всё-таки можно попробовать поискать прошивку с ядром подходящим под «железо» ваше телефона… в этом может помочь приложение DeviceInfoHW2.0-rc3.apkhttp://4pda.ru/forum/dl/post/9236577/DeviceInfoHW2.0-rc3.apk (ссылка доступна для зарегистрированных на сайте 4пда), которое надо запустить на стоковой прошивке… самое главное — тачскрин… потому что без работающего тачскрина другое уже не имеет смысла… Чтобы не прошиваться неподходящей прошивкой — скачать нужное, извлечь boot.img и проверить — если или нет нужное «железо» с помощью hex-редактора (например NEO) вводя нужное значение в строку поиск… найдя нужный тачскрин в boot.img — не факт что прошивка запустится… ещё нужно подобрать подходящий u-boot.bin… в общем простого решения здесь нет — если бы у меня был ваш телефон то возможно дело и как-то продвинулось… но вашего телефона нет и поэтому вам придётся как-то выкручиваться самим… могу лишь пожелать удачи…

      Ответить
    • Валера Привалов admin

      Прошивку надо обязательно подбирать от телефонов с разрешением экрана как на вашем alcatel 4024d

      Ответить
  • Леонид сказал-(а):

    Для работы с APK лучше всего использовать jBart. Хотя бы потому что у него понятный интерфейс, и он может распаковать все апк и собрать их обратно сразу же. Т.е не приходится распаковывать каждый файл по отдельности.

    Ответить
  • Аноним сказал-(а):

    Вопрос как создать swap файл (файл подкачки)???

    Ответить
    • Валера Привалов admin

      Никогда не занимался этим… не владею точной инфой, но похоже в прошивках уже реализована похожая функция — может только в ограниченном по размеру виде…
      В крайнем случае можно по-экспериментировать с приложениями типа Simple Root Swap

      Ответить
  • Рома сказал-(а):

    Валера какая прошивка лучше всего? (ну какая вам нравится)
    P.s Верните прежний шрифт

    Ответить

Поделиться мнением








Ввод в сообщение текстовых символов смайлов (типа - :-) и :-P ) автоматически преобразовываются в картинки (перед вставкой должен быть пробел - можно скопировать и вставить)...
ПРИМЕРЫ:

:-) улыбающийся :-D громко смеющийся :-))) смеющийся :-( Озадаченность или недовольство
:-|| Сердитый, разгневанный ;-) подмигивающий :-P показывающий язык :clap: браво, хлопать в ладоши
:arrow: Биться головой в стенку...

В комментариях вы можете использовать эти HTML Теги и атрибуты к вашему комментарию:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>