Модификация стоковых прошивок для Android. Часть 1 / Хабр

Модификация стоковых прошивок для Android. Часть 1 / Хабр Компьютер

Что ты хочешь и что ты получишь?

Допустим, у вас в руках совершенно новый смартфон. Прошитые zip-файлы содержат как franco.kernel, так и CyanogenMod (альтернативно известный как ParanaidAndroid), который необходимо установить с помощью консоли восстановления.

Обычная консоль не распознает их в нормальных условиях из-за неправильной цифровой подписи («это не подпись производителя», до свидания). Требуется специальная консоль восстановления, которая игнорирует цифровые подписи. Это может быть TWRP или ClockworkMod.

Бесплатная версия franco.updater не умеет ничего, кроме установки и обновления ядра
Бесплатная версия franco.updater не умеет ничего, кроме установки и обновления ядра

Но! Для установки пользовательской консоли восстановления необходимо иметь возможность записи во внутреннюю память смартфона. Для получения root-доступа на устройствах «не-Nexus» необходимо сломать защиту Android. После получения root-кода на консоли восстановления необходимо выполнить следующие действия: получение кода возврата; установка клавиатуры;.

В CyanogenMod есть собственный механизм OTA-обновления прошивки
В CyanogenMod есть собственный механизм OTA-обновления прошивки

Бэкап

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

В системе Nandroid, как правило, нет записей, поэтому мы воспользуемся сервисом OnlineNerdoide Backup. В магазине Google Play есть бесплатная версия приложения.

После установки вам будет предложено выбрать формат резервного копирования и способ автоматической генерации имени резервной копии (по умолчанию текущее время).

В опции «Режим резервного копирования» предпочтительнее выбрать версию WWD Incremental, если на смартфоне уже установлен стандартный ClockworkMod. В этом случае резервная копия будет полностью несовместима с TWRP и будет содержать только отличия от предыдущей версии.

. Предпочтительнее отложить резервное копирование на другой день или время, чем ждать до вечера. Резервное копирование было успешно завершено, и программа предложит вам просмотреть его в приложении Nandroid Manager.

Последний представляет собой устройство для управления текущими резервными копиями. Оно предназначено для удаления файлов из памяти устройства (программно) или для использования средств шифрования для просмотра и восстановления копий уже существующих данных.

! [Nandroid Manager позволяет извлекать практически любые данные из резервной копии].

! Как создать резервную копию для смартфона?

Замена оригинального файла на патченный

Специальные сценарии обычно пишутся для обычных пользователей и заменяются в процессе восстановления. Однако мы в этом не заинтересованы. Во-вторых, длительная и утомительная работа предназначена только для знающих пользователей.

1. Если у вас уже есть root-доступ и прошивка DEODEX:

adb push HTCExtension.jar /sdcard/HTCExtension.jar
adb shell
su
mount -o remount -rw /system
dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back
dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar
chmod 644 /system/framework/HTCExtension.jar
rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex
reboot

Во-первых, исправленный файл забрасывается на флешку, во-вторых, открывается оболочка, в-третьих, предоставляется root-доступ.

2. Я благодарен вам за то, что вы закончили этот раздел; осталось совсем немного. Ваш новый патч-код вступит в силу после перезагрузки страницы. 4. Существуют хитрые комбинации, которые вы можете использовать для восстановления, если код не сработал или произошла ошибка.

adb shell
su
mount -o remount -rw /system
dd if=/system/framework/HTCExtension.jar.back  of=/system/framework/HTCExtension.jar
rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex
reboot

Как прошить андроид через rom manager

С помощью ROM Manager можно выполнить ряд операций, например, создать резервную копию компьютера. Кроме того, мы советуем вам выполнить этот шаг до прошивки, чтобы впоследствии восстановить данные. Ваше устройство Android может быть перепрошито с помощью ROM Manager.

R OM Manager не может функционировать без root-доступа. Для этого существуют специализированные программы, такие как Kingo Android ROOT или Framaroot (в зависимости от ваших предпочтений).

Также необходимо установить настроенные восстановления. Интересно, что ROM Manager имеет гораздо более удобный интерфейс и позволяет прошивать устройство через recovery.

Как перепрошить андроид через компьютер

Давайте рассмотрим наиболее часто используемые методы для прошивки Android. В данной ситуации нам требуется предустановленная программа на компьютере. На устройстве можно установить новую версию ОС с помощью различных приложений. Рассмотрим возможности Fastboot booster по прошивке Android.

Примечание: программу для перепрошивки Андроид следует выбирать исходя из того, девайсом какого производителя вы пользуетесь. Рекомендуем вам ознакомиться со следующим списком программ по производителям:
  1. Samsung — Odin
  2. Lenovo — Flash Tool
  3. HTC — Fastboot
  4. LG — KDZ Updater
  5. Sony — Flashboot
  6. Nexus — Fastboot.

Кастомные прошивки и их классификация

Что такое пользовательская прошивка Android? К этой системе относятся любые неофициальные прошивки, созданные сторонними разработчиками. Как правило, такие прошивки отличаются наличием модифицированного ядра системы, широкими возможностями настройки и многими другими преимуществами.

Вот основные вариации Android-прошивок:

  1. Официальная от производителя (стоковая)
  2. Пользовательская скомпилированная из исходного кода
  3. GSI прошивка
  4. Перенесенная прошивка

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

Далее идет встроенная пользовательская прошивка с исходным кодом. Эта микропрограмма позволяет добавить множество новых настроек и изменений. Следующей идет прошивка GSI, и она отличается от первых двух тем, что не влияет на раздел Vendor.

По сравнению с программным обеспечением, скомпилированным из исходного кода, микропрограмма G SI работает гораздо медленнее и менее стабильна. В этой прошивке будет порт от другого устройства. Эта прошивка была полностью переписана с нуля и адаптирована для работы с конкретным смартфоном. Эта прошивка, как правило, несовершенна, поскольку она была скопирована с другого устройства, а не просто использовалась кем-то другим.

Мы рассмотрим специализированные прошивки, созданные с нуля. Такие прошивки не портируются и работают быстрее.

Конечно, не в ущерб качеству конструкции. Модели на заказ в настоящее время распространены среди множества моделей различных брендов, а сообщество сборщиков на заказ постоянно расширяется и растет.

Существует категория для встроенного программного обеспечения, которая определяет исходный код, служащий основой для сборки:

  1. AOSP — Android Open Source Project. Это полностью урезанная система Android, в которую впоследствии вставляются «навесные» оболочки, такие как One UI, MIUI, OxygenOS и так далее. Даже смартфоны Google Pixel не имеют AOSP, у них своя собственная оболочка.
  2. CAF — Code Aurora Forum. Проект Linux Foundation, содержащий программный код для прошивки смартфонов на базе процессоров Qualcomm. Прошивки на основе CAF-тегов могут быть не самыми стабильными, но с последними версиями драйверов они имеют множество преимуществ: лучшая производительность, более быстрое подключение к Интернету, лучшее время автономной работы и лучшее качество звука.
  3. LineageOS — это пользовательская сборка, на которой основаны многие другие пользовательские сборки, такие как CRdroid, Resurrection Remix и другие. Первоначально это был CyanogenMod: он был в центре внимания и постоянно развивался. Позже она была переименована в LineageOS. В какой-то момент разработчики Lineage внесли так много изменений в AOSP, что начали использовать ее в качестве основы для других прошивок.

Небольшой курс по прошивке смартфонов

Приветствую! И так, по какой-то причине вы решили прошить свой или чей-то телефон и читаете мой пост. Я долго собирал материал, что бы сделать этот пост более наглядным. На мой взгляд самая понятная инструкция — это видеоурок. Существует огромное количество устройств, которым по тем или иным причинам необходимо «вправить мозги».
Для восстановления программного обеспечения любого устройства нам надо:
1) пк с операционной системой, которая соответствует программе прошивальщику и прошивочным драйверам.
2) программа прошивальщик (далее флешер)
3) драйверы для режима прошивки
4) файл(ы) прошивки
5) соответствующий кабель
6) комбинация клавиш вводящих телефон в режим прошивки.
Так как нереально описать процесс прошивки всех устройств, я расскажу как прошить самые распространенные на сегодняшний день устройства на базе процессоров qualcomm, exynos, mediatek, speadtrum, apple, kirin.
Пара банальнейших советов, облегчающих жизнь мастерам до прошивки:
1) всегда прошивайте телефон или с ноутбука или с компьютера подключенному к ИБП.
2) Перед прошивкой проверьте разъём в телефоне, при необходимости разъём надо очистить от грязи, коррозии и тд.
2.1 Если на разъёме видны следы коррозии, то сначала необходимо вскрыть устройство, и проверить нет ли следов жидкости на плате.
3) не используйте для прошивки usb разветвители, хабы, порты на корпусе системника. Вставляйте кабель в usb порт напрямую впаянный в материнскую плату .
4) желательно чтобы акб устройства был заряжен минимум на 50%.

Приступим к прошивке. Самые простые на мой взгляд в плане прошивки устройства — это устройства фирмы Apple. Скачиваем и устанавливаем программу iTunes, эта программа при установке сама установит все необходимые драйверы, сама точно определит какое устройство подключено, сама скачает прошивку. Есть 3 режима из которых можно прошить яблочное устройство:
А) normal. Это обычный режим, когда iphone/ipad/ipod загружается до рабочего стола, вы можете разблокировать устройство и вам просто надо обновить устройство, с сохранением данных пользователя. Просто подключаете разблокированное устройство к пк, на экране устройства нажимаете «доверять этому пк», если айтюнс сообщит что есть новая прошивка, то нажимаете «обновить», со всем соглашаетесь и через 15-30 минут (в зависимости от размера прошивки и скорости вашего интернета) вы получите самую новую версию программного обеспечения для вашего устройства на сегодняшний день.
Б) recovery. Если ваше яблочное устройство заглючило, не загружается, висит на заставке и дальше яблока не загружается, или циклически перезагружается, или надо просто стереть все данные вместе с экранным паролем, или на экране устройства вот такая картинка, то действуем следующим образом: подключаем к пк устройство, зажимаем клавишу home(или клавишу уменьшения громкости начиная с айфон7) и нажимает кнопку включения секунды на 3-5, держим обе кнопки пока устройство не перезагрузится и сразу отпускаем кнопку включения, продолжаем держать home. Как только увидим на экране яблочного устройства значок «подключитесь к айтюнс» можно отпускать кнопку home. Программа айтюнс на пк должна найти устройство в режиме восстановления и предложить вам либо ВОССТАНОВИТЬ УСТРОЙСТВО (сотрёт все данные и пароли, прошьёт самую свежую прошивку), либо ОБНОВИТЬ (просто прошьёт самую свежую прошивку, данные не будут затронуты). Если же вы зажмёте на клавиатуре пк клавишу shift и одновременно кликните ВОССТАНОВИТЬ, то айтюнс предложит выбрать вам локальный файл прошивки, заранее вами скаченный.

В) DFU: почти тот же режим рекавери, с той лишь разницей что в dfu попадает яблоко с более серьёзными проблемами. При dfu режиме яблоко не подаёт ни каких признаков работоспособности, кроме как то, что пк находит устройство apple dfu device. Искусственно загнать яблоко в dfu режим можно комбинацией клавиш включения и хом, подключаем яблоко к пк, удерживаем эти клавиши пока аппарат не выключится, после того как аппарат выключится, продолжаем удерживать кнопку включение и хом ещё 10 секунд, потом отпускаем кнопку включения, хом продолжаем удерживать. А дальше восстанавливаем через айтюнс.
Начиная с iPhone7 apple заменили механическую кнопку домой на сенсорную, а в моделях iphone x и последующих этой кнопки совсем убрали. Чтобы ввести новые модели iPhone’ов в режим прошивки без нажатия клавиш есть специальные кабели и переходники.

Samsung. Все андроид-смартфоны и планшеты фирмы Samsung шьются программой Odin не зависимо от того на базе какого процессора устройство (у самсунга есть модели на процах exynos, mediatek, qualcomm и даже на spreadtrum)
До 2022 года все модели смартфонов и планшетов samsung вводились в режим прошивки сочетанием клавиш уменьшение громкости хом включение. Если на планшете нет кнопки хом, то только уменьшение громкости и включение.
Начиная примерно с 2022 года устройства самсунг вводятся в режим прошивки следующим способом: на выключенном устройстве зажимаете обе клавиши регулировки громкости и подключаете кабелем к пк. Что надо учитывать при прошивки самсунгов?
Текущая версия прошивки: не рекомендуется понижать прошивку, начиная с моделей 2022 года понизить версию прошивки нельзя. В более ранних моделях иногда стирался imei номер при понижении прошивки или записи прошивки предназначенной для другой страны (региона)
Как узнать версию прошивки на телефоне самсунг, который включается? В звонилке набираем код *#1234# вы увидите 3 строки: версия основной  операционной системы, прошивки модема, и версия настроек под конкретный регион.

В recovery (звук home и выключение) можно проверить версию микропрограммы, если смартфон не загружается.

Версия прошивки подчеркнута красной линией, версия загрузчика 5й символ, если считать справа налево. Так вот если вы вдруг решите прошить в самсунг прошивку с более низкой версией загрузчика, у вас ничего не получится.
Есть программа для скачивания прошивок Samsung, называется SamFirm, существует много разновидностей этой софтины, ибо разработчики постоянно меняются. Если вдруг вы решите воспользоваться этой программой, то я для вас подготовил расшифровку регионов.
Russia — SER
Afghanistan — AFG
Algeria — TMC
Argentina — ARO
Argentina — CTP
Argentina (Claro) — CTI
Argentina (Moviestar) — UFN
Argentina (Personal) — PSN
Australia — XSA
Australia (Optus) — OPS
Austria (3 Hutchison) — DRE
Austria (A1) — MOB
Austria (Orange) — ONE
Austria (T-Mobile) — MAX
Austria (Telering) — TRG
Baltic — SEB
Bangladesh — TML
Belgium / Luxemburg — PRO
Bosnia and Herzegovina — ERO
Bosnia and Herzegovina (BH TELECOM) — BHT
Brazil — ZTO
Brazil (Claro) — ZTA
Brazil (TIM) — ZTM
Brazil (VIVO) — ZVV
Bulgaria — GBL
Bulgaria (MTL) — MTL
Bulgaria (VVT) — VVT
Chile — CHO
Chile (Claro) — CHL
Chile (Entel PCS) — CHE
Chile (Telefonica) — CHT
China — CHU
Colombia — COL
Colombia (Comcel) — COM
Colombia (Moviestar) — COB
Costa Rica — ICE
Croatia — TRA
Croatia (T-Mobile) — CRO
Croatia (VIPNET) — VIP
Cyprus — CYV
Cyprus (Cytamobile Vodafone) — CYO
Czech Republic — XEZ
Czech Republic (O2C) — O2C
Czech Republic (T-Mobile) — TMZ
Czech Republic (Vodafone) — VDC
Denmark (3) — HTD
Dominica — DOR
Dominican Republic — CDR
Ecuador — ECO
Ecuador — EBE
Egypt — EGY
France — XEF
France (Bouygues) — BOG
France (Orange) — FTM
France (SFR) — SFR
Germany — MBC
Germany — DBT
Germany (E-Plus) — EPL
Germany (O2) — VIA
Germany (T-Mobile) — DTM
Germany (Vodafone) — VD2
Greece — EUR
Greece (Cosmote) — COS
Greece (Vodafone) — VGR
Guatemala — TGU
Guatemala — PGU
Guatemala (Tigo) — CGU
Hong Kong — TGY
Hungary — XEH
Hungary (T-mobile) — TMH
Hungary (Telenor) — PAN
Hungary (VDH) — VDH
India — INU
India — INS
Indonesia — XSE
Iran — THR
Iraq — MID
Ireland (Meteor) — MET
Ireland (O2) — O2I
Ireland (Three) — 3IE
Ireland (Vodafone) — VDI
Israel — ILO
Israel (Cellcom) — CEL
Israel (Mirs) — MIR
Israel (Orange/Partner) — PTR
Israel (Pelephone) — PCL
Italy — ITV
Italy (H3G) — HUI
Italy (Vodafone) — OMN
Italy (Wind) — WIN
Jamaica — JDI
Kazakhstan — SKZ
Kazakhstan (Kcell) — KCL
Kenya — AFR
Kenya — KEN
Libya — BTC
Luxembourg — LUX
Macedonia — VIM
Macedonia — MBM
Malaysia — XME
Mexico — IUS
Mexico (Movistar) — TMM
Mexico (Telcel) — TCE
Morocco — FWD
Morocco (MAT) — MAT
Morocco (MED) — MED
Morocco (MWD) — MWD
Nepal — NPL
Netherlands — PHN
Netherlands (T-Mobile) — TNL
Netherlands (Vodafone) — VDF
New Zealand (Vodafone) — VNZ
New Zeeland — NZC
Nigeria — ECT
Nordic countries — NEE
Norway (Telenor) — TEN
Open Austria — ATO
Open Europe — OXA
Pakistan (PAK) — PAK
Panama — TPA
Panama — PBS
Panama (Cable & Wireless) — PCW
Panama (Claro) — CPA
Peru — PET
Peru (SAM) — SAM
Philippines — XTE
Philippines (Globe) — GLB
Philippines (Smart) — SMA
Philippines (Sun) — XTC
Poland — XEO
Poland (Orange) — IDE
Poland (PLUS) — PLS
Poland (Play) — PRT
Poland (T-mobile) — TPL
Portugal (Optimus) — OPT
Portugal (TMN) — TMN
Portugal (TPH) — TPH
Portugal (Vodafone) — TCL
Puerto Rico — PCT
Romania (Cosmote) — COA
Romania (Orange) — ORO
Romania (Vodafone) — CNX
Saudi Arabia — KSA
Saudi Arabia (JED) — JED
Serbia — TSR
Serbia (Telenor) — MSR
Serbia (Vip SRB) — TOP
Singapore — XSP
Singapore — MM1
Singapore (SingTel) — SIN
Singapore (StarHub) — STH
Slovakia — ORS
Slovenia (Mobitel) — MOT
Slovenia (Si.mobil) — SIM
South Africa — XFE
South Africa — XFA
South Africa (Vodafone) — XFV
Spain — PHE
Spain (Moviestar) — XEC
Spain (Orange) — AMN
Spain (Vodafone) — ATL
Spain (Yoigo) — YOG
Sri Lanka — SLK
Sweden — VDS
Sweden (Tre) — HTS
Switzerland — AUT
Switzerland (Swisscom) — SWC
Taiwan — BRI
Taiwan (WAN) — WAN
Thailand — THL
Trinidad and Tobago — TTT
Tunisia — ABS
Tunisia — TUN
Turkey — TUR
Ukraine (Kyivstar) — SEK
United Arab Emirates — XSG
United Kingdom — BTU
United Kingdom (H3G) — H3G
United Kingdom (O2) — O2U
United Kingdom (Orange) — ORA
United Kingdom (T-Mobile) — TMU
United Kingdom (Vodafone) — VOD
Uruguay — UFU
Uruguay — UPO
Uruguay (Claro) — CTU
Vietnam — XXV
Vietnam — XEV
Ну и для наглядности ролик по прошивке Samsung SM-G531

Qualcomm. Каждый смартфон в мире имеет один из этих чипов. Пакет программного обеспечения PST содержит FIL, который известен как Qualcomm Flash Image Supporter. Компьютер идентифицирует устройство в этом режиме как HS-Diagnostic interface 9008. В 64-битных ОС для установки этих драйверов необходимо отключить проверку цифровой подписи. Вы можете принудительно перевести устройство в режим edl с помощью комбинации клавиш (у каждого производителя и модели своя комбинация; вам придется поискать ее), но для некоторых моделей это возможно только с помощью тестпоинтов или сервисного кабеля; для некоторых моделей это возможно только с помощью тестов по умолчанию; например, Windows XP поддерживает Director Programming Plus 3.0 вместо Android 4.1.1.

Контрольные точки — это контакты на материнской плате смартфона, при замыкании которых активируется режим вспышки.

Следующий очень распространенный тип мобильных процессоров — это mediatek или mtk. Их устанавливают либо в самые дешёвые телефоны или в телефоны среднего ценового сегмента различных брендов. Флагманов на мтк процессорах я за 10 лет работы не встречал. Фирменная утилита для прошивки называется SP FlashTool. Для смартфонов на ос андроид версии 4 и ниже используют версии SP FlashTool 3xx, для смартфонов с ос андроид 5 и выше используют версию программы SP FlashTool 5xx. Мтк устройства в режиме прошивки отображаются в диспетчере устройств как mediatek preloader usb vcom. Вводят в режим прошивки мтк устройства по разному. Чаще всего необходимо просто подключить к пк выключенное устройство. Иногда необходимо подключать с зажатой клавишей прибавления громкости. Все индивидуально, читайте инструкции на форумах, где скачиваете прошивку. Коды ошибок sp flashtool
SP FlashTool очень хороший инструмент, с помощью которого можно не только записывать прошивку, но считывать и стирать разные области памяти. К примеру делать бекап imei номера или стирать блокировку frp.

Для планшетов и смартфонов Spreadtrum — это процесс. Несмотря на то, что есть устройства на allwinner или rockchip, более тупых или глючных просто не существует, и за последние три года я никогда не испытывал такой сильной привязанности ни к одному устройству. Upgradedownload или spdflashtool — это авторизованный инструмент для прошивки. Прошивка в формате *.pac (при необходимости) Устройство sprd u2s обычно отображается в режиме прошивки как sprd u2s diag. Для этого включите устройство, нажмите обе клавиши громкости и подключите его к компьютеру. Универсального руководства не существует, поэтому если вы столкнулись с другими комбинациями, прочитайте руководство к вашей модели.

Sony. Официальной утилиты (такой как odin для самсунгов) для прошивки смартфонов сони в сети нет. Но есть отличный инструмент от разработчика Androxyde. Называет FlashTool. После установки flashtool необходимо установить прошивочные драйверы в режиме совместимости с windows vista sp2 от имени администратора.
Файл прошивки нужно закинуть в папку
C:users%имя пользователя%.flashtoolfirmware
Небольшое уточнение, прога флештул не понимает русский язык, и лучше написать имя пользователя компьютером на английском языке. Иначе флештул каждый раз создаёт новую папку в директории с пользователями.
Вводятся в режим прошивки смартфоны сони так: на выключенном телефоне зажимаем кнопку уменьшения громкости и подключаем к пк.
Смарты выпущенные до 2022 года вводятся так: на выключенном смарте нажимаем клавишу «назад» и подключаем к пк.

Huawei/Honor Этот бренд выпускает устойства в основном на базе своего фирменного процессора hisilicon kirin. Но есть и бюджетки на процах медиатек, а так же есть модели с процами qualcomm. Модели с мтк можно шить с помощью sp flashtool, но это прошивки слитые пользователями со своих смартфонов и не всегда можно найти нужную вам прошивку. То же самое и со смартами на qualcomm процах. Есть прошивки под qfil, но это тоже дампы пользователей. Официальной программы для прошивки смартов с процами kirin в сети нет. Что же делать если ваш хуавей или хонор не загружается, а сброс настроек не помогает?
1) eRecovery: на выключенном смартфоне/планшете зажимаем клавишу увеличения громкости и подключаем зарядное устройство, держим кнопку пока не попадём в заветное меню. Подключаемся к wi-fi, и нажимаем на экране кнопку Download and install latest firmware. Обратите внимание на версию прошивки и регион (смарты для РФ продают с региональной прошивкой под кодом C10, для евросоюза C432..)

2) Используйте три кнопки для загрузки микропрограммы, специфичной для вашей модели и региона.

Скопируйте его в папку dload после извлечения. Аккумулятор смартфона должен быть заряжен не менее чем на 60%. Удерживайте кнопку питания и клавишу звука, вставляя карту microSD в смартфон, пока все три кнопки не начнут мигать.

Huawei и Meizu идентичны. Признанной прошивки в открытом доступе нет. Модели на MTK доступны, как и кастомная прошивка sp flashtool. Есть модели с процессорами Qualcomm, и недавно на рынке появилось еще больше моделей. Как прошить Meizu? Могут существовать региональные прошивки Meizu. Прошить глобальную программу без танцев с бубном невозможно, как и в случае с Huawei. В zip-архиве обычно содержится прошивка. Нажатие клавиши увеличения громкости и кнопки питания на выключенном смартфоне заставляет подключенный ПК распознать устройство как съемный диск. затем щелкните значок обновления прошивки. Все пользовательские данные будут удалены, если выбрана опция удаления пользовательских данных. Необходимо ввести пароль разблокировки телефона, если он есть. Другого варианта не существует.

Xiaomi Один из самых гемморойных в плане прошивки брэндов. При этом мой самый любимый, ибо не все умеют шить эти смартфоны. Очень много нюансов, регион, состояние загрузчика, год выпуска, какой проц. советую внимательно читать инструкции к каждой модели.
Я тут намедни исходя из личного опыта нарисовал примерную схему, как шить смартфоны данного бренда.

Прошивка через MiFlash в режиме EDL
В следующем видео инструкция по прошивке смартфона с разблокированным загрузчиком.

В конце хочу дать пару советов как хранить прошивки, если вы собираетесь заниматься этим постоянно.
1) создайте каталог «прошивки» на разделе жёсткого диска, но не на разделе с Windows. В этой папке сделайте подкаталоги с названиями брендов, и внутри папки одного из брендов разместите папки с моделями этого бренда.
2) как только прошили новое устройство, перенесите архив с прошивкой в папку для этой модели. Сохраните ту версию флешера и драйвера в эту же папку. А так же создайте текстовый документ с описанием процесса прошивки, какие клавиши зажимали, какие галочки выставляли во флешере. Зачем, спросите вы? Ведь все есть в интернете! Сегодня есть, а завтра человек который выложил нужную вам прошивку на файлообменник удалит этот файл, ибо ему нужно свободное место в его аккаунте для других целей. Не всегда быстрый инет есть в организации где вы работаете, а прошивки сейчас весят 3гб и больше. Долго скачивать, а потом ещё искать инструкцию, если большая проходимость, то каждая минута на вес золота.
3) не удаляйте старые версии прошивок (частенько новые прошивки глючнее старых, или в старой прошивке есть уязвимость для обхода блокировки фрп, а в новой её прикрыли). Единственный бренд чьи старые версии прошивок вам не пригодятся — это Apple. Этих не обманешь, айтюнс не даст вам прошить старую прошивку. Другие бренды потихоньку тоже внедряют технологию антиотката, но пока лазейки ещё есть.
4) следите за состоянием жесткого диска, делайте бекапы в облако, настройте антивирус. Те программы на которые ругается антивирус, но вы уверены в их безопасности добавьте в «белый список антивируса» или храните в запароленном архиве.

Спасибо что дочитали!
Если возникли вопросы: ВК

Процесс установки прошивки и разделы накопителя

Установка, которая является последним и самым ответственным шагом, наступила. Большинство прошивок можно установить с помощью этих инструкций. Однако некоторые устройства могут иметь уникальные инструкции по установке прошивки. Их следует уточнить у производителя устройства.

Поскольку если вы сделаете все «как надо», то в итоге можете получить «bootloop» или, в худшем случае, кирпич, крайне важно обращать внимание на детали. На уже разблокированном загрузчике производятся все манипуляции. Используя программное обеспечение, поставляемое производителем, или команды из загрузчика Fastboot, можно разблокировать смартфон. Что представляет собой ядро устройства?

Загрузите TWRP, последнюю прошивку (если она доступна на вашем смартфоне), все необходимые патчи и, по желанию, GAPPS (Google Apps), когда вы будете готовиться к установке прошивки.

( Root-права) Magisk. Лучше всего перенести файлы на флешку для прошивки после того, как все скачается и найдет свое место в памяти компьютера. Для установки вам понадобится только TWRP и сама прошивка.

В модифицированном Recovery (режиме восстановления), известном как T WRP, мы и будем проводить все манипуляции. Для этого необходимо сначала установить необходимые драйвера на компьютер, затем прошить необходимый образ TWRP в раздел «Recovery» (если он не загружается, то через Boot) с помощью специальной утилиты для адаптации образа к платформе процессорного блока смартфона:

Следующие разделы смартфона видны в TWRP:

  1. Dalvik / ART Cache — кэш для виртуальной машины Dalvik / ART.
  2. Cache — системный кэш.
  3. Data — раздел системных данных и все установленные в нем приложения.
  4. Система — сама система. На этот раздел устанавливаются образы GSI.
  5. Вендор — двоичные файлы, файлы конфигурации и библиотеки. В общем, все, что производитель заложил в смартфон для обеспечения нормальной работы.
  6. Внутренняя память — находится на главной странице проводника. Файлы, которые вы создали или загрузили.
  7. Micro SDCard — место крепления для карт памяти (флэш-памяти).
  8. USB OTG — место крепления для карты памяти или жесткого диска, подключенного через OTG-кабель.

Та же комбинация клавиш, которую вы используете для загрузки в режим Recovery и очистки смартфона, позволит загрузиться и в TWRP. Для этого найдите в TWRP пункт, связанный с очисткой. Разделы смартфона отображаются в том же разделе вместе с флажками.

Необходимо отправить предупреждения о кэше Dalvik/AART, шкалах (не обязательно), внеэкранной памяти и типах файлов USB OTG.

После этого проведите пальцем, чтобы очистить разделы (все данные на смартфонах будут потеряны). Далее необходимо отформатировать раздел DATA. В меню очистки мы делаем подтверждающую запись. Мы должны перезапустить раздел DATA в TWRP после успешного форматирования. Зачем?

Процесс установки может включать больше компонентов. Он запустится с первого раза, только если вы установите только прошивку в TWRP и оставите все остальное в стороне.

Распаковка и анализ оригинального файла

1

. Чтобы запустить определенный участок кода, нам требуется JAR-файл DEODEX. В данном случае все гораздо проще.

HTCExtension.jar2

. Открыть любым архиватором и вытащить от туда classes.dex

3

. Вы можете превратить его в JAR-файл с помощью конвертера dex2jar. Команда:

dex2jar.bat classes.dex4

. Откройте созданный файл classes_dex2jar. JAR-файл JD-GUI

5

. Да, JD-GUI не отображает код точно так же, как во время компиляции. Подпрограмма проверяет параметры проекта и язык прошивки, как видно из исходного кода. NOT; она возвращает TRUE.

    public static boolean isChina()
    {
      if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23));
      while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27))
        return true;
      return false;
    }

6

. Для создания патча необходимо дизассемблировать сам код Dalvik. Для этого мы используем программу baksmali. Вы можете создать новую папку и поместить в нее следующие три файла:

HTCExtension.jarsmali.jarbaksmali.jar

. Команда данна

java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

- это API вашей версии Android. Для JB - это 16
- папка, где находятся все фреймворки прошивки.

В моем случае это была команда
java -Xmx512m -jar baksmali.jar -a 16 -d S:devAndroidAndroid-KitchenWORKING_JB_15systemframework -o HTCExtension -x HTCExtension.jar


7. В нашей вновь созданной папке появилась папка HTCExtension, а в ней наши файлы с Dalvik кодом.
8. Отыскиваем файл по пути comhtcutilcontactsBuildUtils$Customization.java и смотрим код:

.method public static isChina()Z
    .registers 3

    .prologue
    const/4 v0, 0x1

    .line 276
    sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S

    const/16 v2, 0xd8

    if-eq v1, v2, :cond_13

    sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S

    const/16 v2, 0xda

    if-eq v1, v2, :cond_13

    sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S

    const/16 v2, 0x17

    if-ne v1, v2, :cond_14

    .line 297
    :cond_13
    :goto_13
    return v0

    .line 283
    :cond_14
    sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S

    if-ne v1, v0, :cond_1d

    .line 285
    const/4 v1, 0x2

    sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S

    if-eq v1, v2, :cond_13

    .line 291
    :cond_1d
    sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S

    const/16 v2, 0x1b

    if-eq v1, v2, :cond_13

    .line 297
    const/4 v0, 0x0

    goto :goto_13
.end method

9. Беспокойно, да? Ничто не имеет для меня никакого смысла. Однако это можно исправить. Не используя никаких дополнительных инструментов, вы можете быстро изменить код, как только разберетесь с ним. Код для нашей ситуации.

    .prologue
    const/4 v0, 0x1

Переменной v0 присваивается значение 1, что означает. ИСТИНА. Затем, если телефон не китайский, проверяются переменные.

    .line 297
    const/4 v0, 0x0

    goto :goto_13 

10. Изменить код на другой - самое простое, что можно сделать:

    .prologue
    const/4 v0, 0x0

Поэтому, независимо от того, что происходит, он всегда возвращает FALSE, и в JD-GUI это выглядит следующим образом.

    public static boolean isChina()
    {
      if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23));
      while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27))
        return false;
      return false;
    }

11. Да, метод эффективен. Во-первых, мы не ищем простых решений. Второе - искать их в этих местах было бы довольно бессмысленно. Я бы хотел код типа

    public static boolean isChina()
    {
      return false;
    }

12. Где найти код Dalvik? Для новичков мы выполним быстрый трюк.

Создание dalvik кода

1. Открываем Android SDK.
2. Создаем новый проект, и в наш единственный тестовый класс пишем следующий код

package ru.habrahabr.test;

public class test
{
	public static boolean isChina()
	{
		return false;
	}
}

3. Компилируем наш проект и затем берем собранное приложение из рабочей области.
4. Кладем собранное приложение в папку, где мы с вами потрошили JAR файл.
5. Даем команду

java -Xmx512m -jar baksmali.jar -a  -d  -o test -x test .apk
6. Мы дизассемблировали только что собранное приложение в Dalvik код.
7. Открываем наш файлик test.smali и видим там код
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8. Теперь код исправления готов.

Накатывание патча

1. Dalvik код замусорен маркерами, указывающими строку кода в оригинальном исходном файле. Это нужно при выводе ошибок, если таковые имеются в вашей программе. Без указаний строк код также прекрасно работает.
2. Удаляем строки с нумерацией строк, копируем и заменяем метод (подпрограмму) в нашем comhtcutilcontactsBuildUtils$Customization.java файле.

.method public static isChina()Z
    .registers 1

    .prologue
    const/4 v0, 0x0

    return v0
.end method

3. Сохранение файлов. Да, вам необходим стандартный редактор. Например, EditPlus или Notepad. в зависимости от того, какой вариант вам больше нравится.

Компиляция и сборка патченного jar файла

1. С помощью backsmali мы распотрошили наш JAR файл, а теперь его надо собрать обратно.
2. Даем команду java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3. В нашей папочке появляется файлик classes.dex
4. Снова открываем HTCExtension.jar файл архиватором и заменяем в нем существующий classes.dex на наш только что созданный.
5. Все, наш HTCExtension.jar содержит модифицированный программный код.

Замена оригинального файла на патченный

Для обычных пользователей пишутся специальные скрипты, которые изменяются в процессе восстановления. Однако мы в этом не заинтересованы. Во-вторых, несмотря на то, что мы начинающие пользователи, мы можем мириться с некоторыми тонкостями.

1. Если у вас уже есть root-доступ и прошивка DEODEX:

adb push HTCExtension.jar /sdcard/HTCExtension.jar
adb shell
su
mount -o remount -rw /system
dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back
dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar
chmod 644 /system/framework/HTCExtension.jar
rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex
reboot

1-ая команда закидывает патченный файл на флешку
2-ая команда открывает shell
3-ая команда дает root доступ
4-ая команда монтирует систему в режим чтения/записи
5-ая команда делает резервную копию файла
6-ая команда перезаписывает существующий файл новым патченным.
7-ая команда настраивает разрешения
8-ая команда удаляет кэш
9-ая команда делает перезагрузку устройства.

2. Спасибо что дочитали до этого пункта, осталось немного.
3. После перезагрузки ваш новый патченный код вступит в силу.
4. Если код не работает или выскакивает ошибка, то путем не хитрых комбинаций можно вернуть назад резервную копию.

adb shell
su
mount -o remount -rw /system
dd if=/system/framework/HTCExtension.jar.back  of=/system/framework/HTCExtension.jar
rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex
reboot

Эпилог

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

В следующей статье я расскажу, как внести коррективы. возможность автоматической записи телефонных разговоров с использованием методов, присущих телефону. Мы ценим ваше время.

P.S. Задавайте вопросы, если что-то неясно или непонятно; я всегда рада ответить и разъяснить!

Создание dalvik кода

1
. Открываем Android SDK.
2
. Создаем новый проект, и в наш единственный тестовый класс пишем следующий код

package ru.habrahabr.test;

public class test
{
	public static boolean isChina()
	{
		return false;
	}
}

3
. Компилируем наш проект и затем берем собранное приложение из рабочей области.
4
. Кладем собранное приложение в папку, где мы с вами потрошили JAR файл.
5
. Даем команду

java -Xmx512m -jar baksmali.jar -a  -d  -o test -x test .apk
6. Мы дизассемблировали только что собранное приложение в Dalvik код.
7. Открываем наш файлик test.smali и видим там код
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method

8. Код системы подготовлен для установки патча.

Накатывание патча

1. Dalvik код замусорен маркерами, указывающими строку кода в оригинальном исходном файле. Это нужно при выводе ошибок, если таковые имеются в вашей программе. Без указаний строк код также прекрасно работает.
2. Удаляем строки с нумерацией строк, копируем и заменяем метод (подпрограмму) в нашем comhtcutilcontactsBuildUtils$Customization.java файле.

.method public static isChina()Z
    .registers 1

    .prologue
    const/4 v0, 0x0

    return v0
.end method

3. Сохранение файлов. Да, вам требуется стандартный редактор. Например, Notepad или EditPlus. Какой вы предпочитаете?

Компиляция и сборка патченного jar файла

1. С помощью backsmali мы распотрошили наш JAR файл, а теперь его надо собрать обратно.
2. Даем команду java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3. В нашей папочке появляется файлик classes.dex
4. Снова открываем HTCExtension.jar файл архиватором и заменяем в нем существующий classes.dex на наш только что созданный.
5. Все, наш HTCExtension.jar содержит модифицированный программный код.

Замена оригинального файла на патченный

Для обычных пользователей обычно пишутся специальные скрипты. Однако мы в этом не заинтересованы. Во-вторых, это утомительно и долго.

1. Следующие команды могут быть использованы для замены рабочего файла, если у вас уже есть прошивка DEODEX и root-доступ:

adb push HTCExtension.jar /sdcard/HTCExtension.jar
adb shell
su
mount -o remount -rw /system
dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back
dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar
chmod 644 /system/framework/HTCExtension.jar
rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex
reboot

1-ая команда закидывает патченный файл на флешку
2-ая команда открывает shell
3-ая команда дает root доступ
4-ая команда монтирует систему в режим чтения/записи
5-ая команда делает резервную копию файла
6-ая команда перезаписывает существующий файл новым патченным.
7-ая команда настраивает разрешения
8-ая команда удаляет кэш
9-ая команда делает перезагрузку устройства.

2. Спасибо что дочитали до этого пункта, осталось немного.
3. После перезагрузки ваш новый патченный код вступит в силу.
4. Если код не работает или выскакивает ошибка, то путем не хитрых комбинаций можно вернуть назад резервную копию.

adb shell
su
mount -o remount -rw /system
dd if=/system/framework/HTCExtension.jar.back  of=/system/framework/HTCExtension.jar
rm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dex
reboot

Эпилог

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

Вы можете узнать, как сделать Tweaks у меня. С помощью встроенных инструментов на вашем телефоне вы можете автоматически записывать телефонные разговоры. Мы ценим ваше время.

P.S. Задавайте вопросы и всегда давайте четкие ответы и объяснения, если что-то непонятно или запутано.

Создание патчей

Как я уже упоминал ранее, использование Google было ранее запрещено на моем телефоне. Я не могу получить доступ к Playstore, а в телефонной книге не отображается моя учетная запись. Какова цель такого Android? Я обнаружил записи о том, что Google запрещен, после кропотливого поиска в журналах устройства (logcat).

Самым неприятным аспектом Android является возможность просмотра и создания журнала приложений. Разобранный Java-код на этот раз потребовал от меня просеять все системные приложения. Я потратил много времени, но до сих пор пользуюсь результатами исследований, которые я провел, чтобы найти и распознать правильный код. Ниже перечислены некоторые способы получения такого набора инструментов:

1

. Для этого необходимо выполнить DEODEX для всей прошивки.

2

. Как только вы загрузите последнюю прошивку DEODEX, у вас на телефоне будет самая последняя прошивка. Это объясняется в другой статье.

3

. Из каждого файла, находящегося в /system/framework вытащить файл classes.dex и переконвертировать в JAR посредством dex2jar.

4

. Откройте GUI для каждого JAR, затем еще раз сохраните исходный код.

5

. Распаковать исходный код.

В итоге в директории /systm/framework у меня было столько же папок, сколько JAR-файлов.

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

Это кажется очень простым. Подпрограмма определяет, является ли телефон из Китая или нет, используя предопределенные константы.

Класс подпрограммы находился в файле comhtcuthilcontactsBuildUnderCustomization$cumulation, а код был написан в файле HTCExtension.jar.

Оцените статью
OverComp.ru