LINUX.ORG.RU

Мануал начинающего сборщика кастомных прошивок

 , , ,


3

6

Дано:

Китаёз ZTE Blade A6 (Qualcomm MSM8940 + Adreno 505), родные исходники ядра и исходники opensource компонентов с сайта производителя.

Задача: собрать под него кастомную прошивку на базе LineageOS 14/15

Вопросы:

  • У всех ли производителей одинаковая разметка разделов, при условии одинакового чипсета? Например, я хочу портировать прошивку с Xiaomi Redmi 4X 3/32. Если одинаковая начинка обязательно ли будет одинакова разметка разделов?

  • Кроме различия в блобах прошивки и разметке разделов какие еще есть подводные камни при портировании прошивок с другого устройства?

  • Вот есть у меня исходники ядра моего девайса, есть исходники Lineage 14.1, как мне из этого собрать прошивку под чип моего девайса?

4PDA смотрел, но просветление не настало. То ли я старею, то ли инфа там не систематизирована))

Также буду признателен, если ткнёте в RTFM, который дарует просветление по сабжу выше :-)

★★★★★

Последнее исправление: Twissel (всего исправлений: 2)
Ответ на: комментарий от karton1

Читал, но так и не понял одного: хорошо, вот 14 «линейка», ну собрал я её, а как мне подсунуть блобы и другие компоненты, которые специфичны для моего аппарата?

Выдёргивать из родной прошивки в виде бинарников?

И да, вопрос с размёткой разделов девайса у разных вендоров остаётся открытым.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

Да, блобы выдергивать насколько я помню из родной прошивки. Блин, не силен я в квалкомах. Был бы Mediatek там все проще было бы, правда исходников нема, но портировать на медиатек прошивки не в пример проще. Разметку смотрим через adb же.

karton1 ★★★★★
()

@ncrmnt

Ничего не подскажешь по сабжу?

Twissel ★★★★★
() автор топика

Какой ещё нужен мануал пятизвёздочному, куда катится мир… Там же всё просто, да ещё и на квалкоме, этож не мтк какое-то там. Блин вообще там же ничего сложного абсолютно нет, не сложнее чем сборка ядра в Gentoo.

anonymous
()
Ответ на: комментарий от anonymous

Ну извини, я libastral.so.2 в аренду сдал до Нового года)

Twissel ★★★★★
() автор топика
  1. Что ты понимаешь под портированием? Как делают васяны с 4pda подменить бинарные либы и молиться Нурглу, что все будет хорошо? Или честно собрать из исходников? Разметка обычно одинаковая +/- размеры разделов, вендоры не любят курочить сильно сдк.

  2. В сборку ЛОСи не влезал, не было необходимости пока. Насколько знаю, надо подсунуть системе сборки лоси конфиг ядра, блобы и задать конфиги. Квальком поддерживается, так что смотри как реализована поддержка аппарата для другого аппарата на том же чипе.

  3. Ну и начинать надо с рекавери.

ncrmnt ★★★★★
()
Последнее исправление: ncrmnt (всего исправлений: 1)
Ответ на: комментарий от ncrmnt

Или честно собрать из исходников?

Честно собрать из исходников, что можно собрать из них.

Как васяны не хочу, хотел бы как васяны, не создавал бы этот топик)

Еще вопрос как вытягивать блобы по науке к тому, к чему нету сорцов?

Ну и начинать надо с рекавери.

Вот тут не понял, объясни. Собирать рекавери под конкретный аппарат или под конкретную прошу?

Что ты имеешь ввиду?

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel
  1. Необязательно, но ты можешь подменить если что fstab. Твоя прошивка для старых устройств это два файлика.

  2. Если это обычный обдроид, типа LineageOS, скорее всего ничего, кроме очевидных вещей кроме ядра, блобов, может каких-то конфигов по мелочи. Зависит от девайса

  3. Э… прочитать в вики LineageOS? :)

Блобы вытягивать под твой девайс умеет специальный скрипт того же LOS. Не лучший и не всегда работающий вариант, но его можно взять за основу.

a1batross ★★★★★
()
Последнее исправление: a1batross (всего исправлений: 2)

Ответы:

  • Гарантии одинаковой разметки никто не давал. Однако проверить это не так уж и сложно если что.
  • Портирование прошивок с другого устройства ты про project treble или просто про васянское авось? Портирование is undefined.
  • Чтоб собрать los тебе нужно ядро (и не официальные сырцы а уже переделанное), блобы (скорее всего всё уже сделано в https://github.com/TheMuppets ) и дерево твоего устройства со всеми особенностями твоего устройства, файликами выдернутыми из прошивки и просто написанными для совместимости от руки. А потом 250Гб на жеском диске и первый раз часов 12 времени и 150% везения чтоб сборка дошла до конца.
init_6 ★★★★★
()
Последнее исправление: init_6 (всего исправлений: 1)
Ответ на: комментарий от init_6

Спасибо!

А потом 250Гб на жеском диске и первый раз часов 12 времени и 150% везения чтоб сборка дошла до конца.

Есть же вроде Google Cloud, если что, не?

Twissel ★★★★★
() автор топика
Ответ на: комментарий от init_6

Про васянское авось, но теперь есть повод посмотреть на Treble.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от ncrmnt

И да, вроде как полноценного рекавери под этот аппарат не собрали.

Из того, что есть сейчас можно только Magisk прошить да и все, вроде.

Twissel ★★★★★
() автор топика
Последнее исправление: Twissel (всего исправлений: 1)
Ответ на: комментарий от Twissel

Еще вопрос как вытягивать блобы по науке к тому, к чему нету сорцов?

Adb pull с официальной прошивки. В лоси есть для каждого аппарата скрипт, который это делает.

Вот тут не понял, объясни. Собирать рекавери под конкретный аппарат или под конкретную прошу?

Штатный рекавери соберёт лайнэйдж, но для комфортной работы нужен cwm. Если его нет для твоего аппарата, посмотри их сайт как портировать его, а потом уже возиться с прошивкой

ncrmnt ★★★★★
()
Ответ на: комментарий от Twissel

Есть же вроде Google Cloud, если что, не?

А что есть да? Ну ок.

Про васянское авось, но теперь есть повод посмотреть на Treble.

Про васянское авось это ссзб.

init_6 ★★★★★
()
Ответ на: комментарий от ncrmnt

для комфортной работы нужен cwm

Почему не TWRP?

Он сейчас, вроде как, получил большее распостранение.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

Ну или TWRP, без разницы на самом деле. Я их путаю постоянно. Главное про ccaсhe не забудь, как будешь компилять. Иначе это будет очень долго и больно вообще каждый раз.

ncrmnt ★★★★★
()
Последнее исправление: ncrmnt (всего исправлений: 1)
Ответ на: комментарий от ncrmnt

Еще подскажи назначение этого «патча». Он используется в режиме EDL при разблокировке загрузчика

Просто, когда я что-то делаю хочу понимать, что происходит)

Взято отсюда

Twissel ★★★★★
() автор топика
Последнее исправление: Twissel (всего исправлений: 1)
Ответ на: комментарий от Twissel

Twissel у аппаратов на процах qualcomm сложная до одури запутанная система загрузчиков. Помимо нормального старта существует и тот самый 9008 „сервисный“ режим проца необходимый для первичной прошивки аппарата и/или для „раскирпичивания“ наглухо всратых аппаратов когда все другие методы исчерпаны т.е. для случаев когда у тебя нет fastboot/recovery/ничего кроме тела подающего остатки признаков жизни. А для вышеописанного тела видимо эксплуатируют некие дыры в железе для разблокировки.

init_6 ★★★★★
()
Ответ на: комментарий от Twissel

Судя по содержимому хмл - там двигает разделы в жпт. Может в разблоченном состоянии видно на пару секторов больше еммц флешки? Но это только моя гипотеза, я свой онеплюс разлочивал просто анлоком через фастбут и все, без всяких плясок

ncrmnt ★★★★★
()

Афтару темы был бы полезнее мануал по изучению рюсский езыка. Смотреть неприятно на кривляние в названии темы.

Partisan ★★★★
()
Ответ на: комментарий от Partisan

ЛОР это не сайт филологов или любителей изящной русской словесности, так что обитателю лесов следует размещать свои замечания на таковых, а не тут.

Twissel ★★★★★
() автор топика
Последнее исправление: Twissel (всего исправлений: 1)
Ответ на: комментарий от ncrmnt

Или может новые boot/recovery больше на те самые пару секторов, чем родные?

Тоже гипотеза)

Twissel ★★★★★
() автор топика
Ответ на: комментарий от init_6

Спасибо за ссылку, полезно.

Twissel ★★★★★
() автор топика

А вот разметка вроде как и отличается от «стандартной» квалкомовской, на примере Xiaomi Redmi 4X.

И последовательностью, и количеством разделов... Разметка с девайса

init_6, приехали?!

Twissel ★★★★★
() автор топика
Последнее исправление: Twissel (всего исправлений: 1)

Вот почему надо покупать гугловские телефоны типа пикселя, чтобы потом китайскими медитациями не убиваться.

anonymous
()
Ответ на: комментарий от Twissel

А вот разметка вроде как и отличается от «стандартной» квалкомовской, на примере Xiaomi Redmi 4X.

Ну во первых „стандартной“ по сути то и нет. Ну т.е. да то что google в своих nexus pixel делает можно назвать своего рода образцом. Однако остальные вендоры велосипедят по своему и как угодно. Мало того сейчас ещё вкорячивают модную схему бесшовных обновлений… Я про A/B. Так вот дубли разделов это именно оттуда.

init_6 ★★★★★
()
Ответ на: комментарий от init_6

А не подскажешь в общих чертах, где/как редактируется установочный скрипт из zip-файла прошивки, чтобы «раскидать» ее по нужным разделам?

Ведь как минимум прошивка ставится на разделы system и data, по крайней мере для тех MTK-аппаратов, с которыми я работал.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

А не подскажешь в общих чертах, где/как редактируется установочный скрипт из zip-файла прошивки, чтобы «раскидать» ее по нужным разделам?

Не задавался таким вопросом.

Я могу рассказать как в принципе собирают прошивки los, aosp и т.д. Но сразу предупрежу по твоему аппарату я гуглил и чёт всё тухло. Толи он сильно новый либо хз. Но в целом если есть готовое дерево устройства, блобы в TheMuppets, исходники ядра, 250Гб свободного пространства и часов 12 свободного времени то, если повезет, в результате получится прошивка :) А если чего то нет то это квест с неограниченным временем.

init_6 ★★★★★
()
Ответ на: комментарий от init_6

Толи он сильно новый либо хз

Нет, он не новый — 2017 год. Он просто нафиг никому не нужен, как неуловимый Джо.

Потому там Андроид даже 7.1.1, а не 7.1.2 ))

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

Он просто нафиг никому не нужен, как неуловимый Джо.

Такое тоже часто бывает и вот именно поэтому стоит более внимательно подходить к выбору модели телефона.

init_6 ★★★★★
()
Ответ на: комментарий от a1batross

Как думаешь замена fstab сработает?

Выяснилось, что, как и ожидалось разметка все-таки разная.

Что скажешь?

Twissel ★★★★★
() автор топика

Может у тебя есть девайс по-старше есть? Который в списке указан

https://web.archive.org/web/20140924175252/http://wiki.cyanogenmod.org/w/Devices

Просто если есть устройство такое, можно легко собрать себе прошивку. Да, цианогенмода уже нет, но в гитхабе у цианогенмода ничего не изменилось, ничего не удалилось (сам только что себе собрал). Ставь сразу ubuntu 14.04.6, там openjdk-6 и все нужные ПО прям в репах есть.

Допусти для samsung galaxy s2

https://web.archive.org/web/20140924060133/http://wiki.cyanogenmod.org/w/I9100_Info

https://web.archive.org/web/20141024030826/http://wiki.cyanogenmod.org/w/Build_for_i9100

anonymous
()
Ответ на: комментарий от anonymous

А смысл?

Мне же ЛОСь нужен не ради самого ЛОСя, а для избавления от жирных гаппсов и их обновлений. Да, можно всунуть mini gapps, НО хочется Андроид хотя бы 7.1.2

Twissel ★★★★★
() автор топика
Ответ на: комментарий от a1batross

Хотя… в update-script для того же Redmi 4X обращение к разделам идет по именам, а не по номерам блочных устройств… думаю, что это хорошо)

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

А вот фиг знает что делать с dtb который вкомпилен в ядро. Наверное его вытравить оттуда можно, но я никогда таким не занимался.

Имена разделов известны(спасибо gpt), да, но на всякий случай лучше проверить погрепать по mmcblk.

a1batross ★★★★★
()
Ответ на: комментарий от a1batross

Я нашел старый мануал от индуса по 11 «цыгану», где он вытаскивает дерево устройств из распакованного рекавери.

Вот думаю попробовать)

Twissel ★★★★★
() автор топика
Ответ на: комментарий от a1batross

я познаю мир

Да исходники рекавери действительно содержать дерево устройств девайса, только оно минимальное

Twissel ★★★★★
() автор топика
Ответ на: я познаю мир от Twissel

Да исходники рекавери действительно содержать дерево устройств девайса, только оно минимальное

Бери дерево схожей модели на msm8940 за основу и вперед.

init_6 ★★★★★
()
Ответ на: комментарий от init_6

Xiaomi Redmi 4X — вся начинка одинаковая, только в Редмике еще и компасс, а моём нету)

Twissel ★★★★★
() автор топика
Ответ на: комментарий от ncrmnt

С Наступающим!

Ты не знаешь, геомагнитный датчик (компасс) это отдельное устройство или тоже часть SoC ?

Twissel ★★★★★
() автор топика
Ответ на: комментарий от a1batross

маленькая засада

В Lineage-прошивке boot 28 Мб.

В моей — 15 Мб патченный бут для TWRP.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

Отдельный девайс, на i2c или SPI сидит обычно

ncrmnt ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.