Разбираемся, как самому создать прошивку андроид на компьютере (видео)

Может ли прошивка обновляться?

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

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

Каждый из производителей может предоставлять обновление прошивки для своих устройств: Wi-Fi роутер может получать такие обновления, увеличивающие стабильность в работе, а оптический привод, после получения новой прошивки, может начать работать с новыми дисками и т.д

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

А где же можно скачать прошивку и откуда её взять? Как правило, найти прошивку можно на сайте производителя

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

Бывают ситуации, когда производителем заблокирована возможность обновления или замены прошивки, тогда умельцам приходится выпаивать чип памяти и устанавливать другой, уже с необходимой микропрограммой. Сам процесс прошивки является серьёзным шагом, и если что-то пойдёт не так, то устройство может превратиться, как часто говорят про телефоны в «кирпич». Зачастую с решением таких проблем не может помочь даже сотрудник сервисного центра.

Теперь вам известно, что такое прошивка, что она делает и где хранится. При прошивке своего устройства нужно использовать ПО именно для него, будь то смартфон, или материнская плата; знайте, что всё делается на свой страх и риск.

ВАЖНО: устройство Android и терминология

Любая операционная система на базе Android состоит из ряда компонентов:

  • загрузчик (recovery) — аналог BIOS в настольных ПК,
  • ядро — собственно операционная система без драйверов и утилит,
  • драйвера — все необходимое для работы с аппаратным оборудованием,
  • набор базовых утилит — необходимы для совершения звонков, отправки смс и других привычных действий (может объединяться с лаунчером в один пакет),
  • «лаунчер» — визуальная оболочка, определяющая внешний вид и логику работы с интерфейсом,
  • предустановленные программы — все, что необходимо за рамками базовых действий телефона, даже браузер и калькулятор

Будем условно-упрощенно принимать, что собственно «чистый» Android AOSP представляет собой компиляцию ядра, драйверов, базовых утилит и стокового графического интерфейса Google.

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

Рекавери может быть стандартным (разработки Google), фирменным (от компании-разработчика смартфона) или сторонним (разработанные энтузиастами).

Его можно менять при условии совместимости разных вариантов (примерно так же, как BIOS материнских плат).

Удаляем и добавляем приложения

Все предустановленные программы можно найти в двух папках:

  • /system/app/;
  • /system/priv-app/.

Друг от друга они отличаются привилегиями доступа. Если программы из app имеют такие же полномочия, как сторонние программы (например, установленные из Play Store), то приложения из priv-app могут использовать привилегированные API (права privileged). Подробнее об этом можно узнать из нашей статьи.

Для предустановки приложения в прошивку просто кинь ее APK-файл в /system/app/. Можно, конечно, создать отдельную папку, но в нашем случае в этом нет смысла, потому что папка служит для хранения библиотек и odex-файлов, которых у нас попросту нет. Для удаления просто удали папку с ним.

Можно пойти дальше и поменять стоковые приложения на аналоги. К примеру, для замены календаря удаляем папку Calendar и копируем в /system/app наш любимый com.rpagyc.simplecalendar.apk. А можно и не копировать. Тогда прошивка будет без календаря.

Главное, помни: стоковые программы могут быть связаны между собой. Поэтому удаление одной проги вполне может привести к полной неработоспособности другой (к примеру, CalendarProvider и Calendar: удалив первый, ты сделаешь неработоспособным не только стоковый, но и любой другой календарь). К счастью, в чистых AOSP-прошивках взаимосвязей не так много.

Building the kernel

Then build the kernel with this:

build/build.sh

The kernel binary, modules, and corresponding image are located in the
directory.

Building with Bazel (Kleaf)

Android 13 introduced building kernels with
Bazel, replacing .

To build the GKI kernel for the aarch64 architecture, check out
an Android Common Kernel branch no earlier than Android 13 and
then runt he following command:

tools/bazel build //common:kernel_aarch64_dist

To create a distribution, run:

tools/bazel run //common:kernel_aarch64_dist -- --dist_dir=$DIST_DIR

Thereafter the kernel binary, modules, and corresponding images are located in the
directory. If is unspecified, see output
of the command for the location of the artifacts. For details, refer to the
documentation on AOSP.

Building the Vendor Modules for the Virtual Device

Android 11 introduced
GKI,
which separates the kernel into a Google-maintained kernel image and vendor maintained-modules,
which are built separately.

This example shows a kernel image configuration:

BUILD_CONFIG=common/build.config.gki.x86_64 build/build.sh

This example shows a module configuration (Cuttlefish and Emulator):

BUILD_CONFIG=common-modules/virtual-device/build.config.cuttlefish.x86_64 build/build.sh

In Android 12 Cuttlefish and Goldfish converge, so they share
the same kernel: . To build that kernel’s modules, use this build
configuration:

BUILD_CONFIG=common-modules/virtual-device/build.config.virtual_device.x86_64 build/build.sh

Android 13 introduced building kernels with
Bazel (Kleaf), replacing .

To build the ‘s modules, run:

tools/bazel build //common-modules/virtual-device:virtual_device_x86_64_dist

To create a distribution, run:

tools/bazel run //common-modules/virtual-device:virtual_device_x86_64_dist -- --dist_dir=$DIST_DIR

For more details on building Android kernels with Bazel, see.
Kleaf — Building Android Kernels with Bazel.

For details on Kleaf support for individual architectures, see
.

Kleaf support for devices and kernels

The following table lists Kleaf support for individual device kernels. For unlisted devices,
please contact the device manufacturer.

Device Repo branches Kleaf support support

Rockpi4

common-android-4.4
common-android-4.9
common-android-4.14
common-android-4.19
common-android-4.19-stable
common-android11-5.4
common-android12-5.4
common-android12-5.10
common-android13-5.10
common-android13-5.15
(official)1
common-android14-5.15
common-android-mainline
common-android13-5.10
common-android13-5.15 (official)1
common-android14-5.15
common-android-mainline
common-android13-5.10
common-android13-5.15
(official)1 ️ (unmaintained)2
common-android14-5.15
common-android-mainline
common-android13-5.10
common-android13-5.15
common-android14-5.15
common-android-mainline
Rockpi4 common-android13-5.10
common-android13-5.15
Rockpi4 common-android14-5.15
common-android-mainline
hikey-linaro-android-4.14
hikey-linaro-android-4.19
common-android12-5.4
common-android13-5.10
common-android12-5.10
common-android13-5.10
common-android13-5.15
common-android14-5.15
common-android-mainline

1″Official» means that this is the official way to build the kernel,
even though the alternative way might also be used to build the kernel.

2″Unmaintained» means that building kernel with this method should
work, but the build method is not continuously tested. It
may stop building in the future. Use the «official» way to build instead.

Предварительные ласки, или настройка системы

Для начала определимся с тем, что нам потребуется для сборки AOSP из исходников. Во-первых, Linux, желательно Ubuntu, и, если хочешь собрать Android версии 2.3.x (Gingerbread) и выше, ОС должна быть 64-разрядной. Замечу также, что по заявлению команды разработчиков, «беспроблемная» сборка сейчас возможна только под Ubuntu версий 10.04–11.10, тогда как на 12.04 соберется только последняя версия Android. Тем не менее я проводил все эксперименты на 12.04 и не встретил каких-либо ошибок или некорректной работы прошивки.

Кроме того, нужно позаботиться о достаточном количестве дискового пространства и оперативной памяти. Исходники Android весят около 14 Гб, плюс в процессе сборки испарится еще где-то 15 Гб. Оперативной памяти потребуется не меньше 2 Гб, да и то вкупе с областью подкачки, размером 3–4 Гб. Если все эти требования удовлетворены, можно приступить к подготовке системы. Для начала установим необходимые пакеты:

Немного слов о JDK: рекомендуется использовать Oracle Java JDK, но, так как он больше не поставляется в репозиториях Ubuntu, его нужно скачать с сайта Oracle и установить самостоятельно (goo.gl/N4IB2). Кроме того, нам понадобится гугловский инструмент для работы с репозиториями repo, представляющий собой Python-обертку вокруг системы контроля версий git:

Теперь система готова, и нам нужны исходники Android.

Замена ПО через компьютер

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

Устройства на процессоре MTK прошивают следующим образом:

  1. Распаковывают архив прошивки в папку на диске C (в названии последней не должно быть кириллических символов).
  2. Запускают программу SP Flash Tool, нажимают клавишу Scatter-loading и указывают путь к одноимённому файлу, который находится в папке с распакованной прошивкой.
  3. Снимают галочку со строки Preloader. Этот пункт обязателен: если в процессе прошивки что-то пойдёт не так, работоспособный загрузчик (preloader) позволит восстановить смартфон даже из состояния «кирпича». Если же файл будет перезаписан неправильно, пользователю придётся потратить на ремонт телефона немалые деньги.
  4. Нажимают на кнопку Download.
  5. Подключают к компьютеру выключенный телефон и ждут окончания процесса, об чем уведомит появление окна с зелёным кружочком.
  6. Отсоединяют смартфон от ПК и включают его.

Прошивка смартфонов на Spreadtrum несколько сложнее. Для осуществления этой процедуры необходимо:

  1. Скачать файл прошивки в формате .pac и переместить его в корень диска C (распаковывать не нужно).
  2. Открыть Research Download, нажать на значок шестерёнки в левом верхнем углу и указать путь к прошивке. После этого программа на некоторое время зависнет — это нормально.
  3. Нажать на кнопку Play, переводя прошивальщик в режим ожидания устройства.
  4. Выключить телефон, вытащить из него батарею (если она съёмная) и вставить обратно.
  5. Зажать клавишу уменьшения громкости и подключить смартфон к ПК.
  6. Если прошивка успешно стартовала, следует дождаться её окончания, то есть надписи Passed. Клавишу громкости лучше не отпускать до завершения процесса. Если же программа выдаёт ошибки либо не реагирует на подключение смартфона, следует убедиться, что на компьютере установлены все необходимые драйверы и посетить сайт разработчика Research Download, чтобы узнать причину проблемы.
  7. По завершении прошивки нажимают на кнопку «Стоп» в прошивальщике и отключают телефон от компьютера. Если батарея съёмная, её вынимают, вставляют обратно и включают устройство.

Прошивка вручную с помощью кастомных прошивок

Следует отметить, что это ручной метод. Так что, если вы сделаете что-то не так, пеняйте на себя. Мы бы посоветовали вам попробовать этот метод, если вы хорошо подкованы в техническом плане. А также, мы не несем ответственности, если этот метод не работает или повредит ваш телефон. Делайте это на свой страх и риск.

Что потребуется:

  1. Ваш смартфон
  2. Сделайте резервную копию вашего устройства, если вы еще не сделали
  3. Кастомный ROM (прошивка)
  4. Кастомное рекавери
  5. Разблокированный загрузчик
  6. Как минимум 50% заряда на вашем устройстве

Что нужно сделать

№ 1 — скачать прошивку

В Интернете тонны пользовательских прошивок для любого телефона с ОС Android. Итак, найдите ту, которая вам нравится больше всего. Помните, вам нужно найти правильный ROM для вашего телефона. Проверьте, совместима ли прошивка с вашей моделью телефона и т. д. Затем загрузите ее (ZIP-файл) и сохраните на телефоне.

№ 2 — разблокировать загрузчик (необязательно)

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

№ 3 — Загрузиться в Recovery

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

Однако в большинстве случаев нужно одновременно зажать кнопку уменьшения громкости + питания. Итак, одновременно удерживайте эти две кнопки не менее 5 секунд. При этом ваш телефон загрузится в режиме восстановления.

№ 4 — процесс прошивки

Находясь в режиме восстановления, вы увидите определенный экран, который будет зависеть от рекавери, который вы используете. Доступно несколько рекавери, таких как ClockworkMod, TWRP, Cyanogenmod recovery, Кусщмукн Red Wolf и другие. Однако, поскольку ClockworkMod и TWRP являются наиболее популярными, в этом разделе мы расскажем о методах использования этих двух режимов восстановления.

Итак, выберите «Install» (на TWRP) или «Install zip from sdcard» (на ClockworkMod) на экране режима восстановления, чтобы инициализировать процедуру прошивки. Затем найдите файл с прошивкой, который вы только что загрузили.

После того, как вы нашли и выбрали файл с прошивкой (.zip), вы можете установить ее. Выберите «Swipe to Confirm Flash» (на TWRP) или «Apply sdcard / update.zip» (на ClockworkMod). После этого ваш телефон начнет установку выбранной прошивки.

№ 5 — Очистить кэш

После прошивки телефона вы можете стереть данные кеша на вашем телефоне. Просто вернитесь в режим восстановления и выберите «Wipe cache partion’», чтобы стереть весь кэш.

Поздравляем! Вы только что самостоятельно прошили свой телефон. Тем не менее, есть и другие методы, которые вы также можете использовать для прошивки любого Android-смартфона.

Для этих методов вам потребуется ПК и определенный набор программного обеспечения (Flash Tool) в зависимости от марки вашего телефона. Мы не будем делиться всеми этими методами. Тем не менее, ниже мы поделимся несколькими названиями самых популярных flash-инструментов. Так что, если они вам нужны, вы можете найти их в Интернете.

  • Odin (для смартфонов Samsung)
  • Nexus Root Toolkit (для телефонов Nexus)
  • SP Flash Tool (для устройств с чипсетом от Mediatek)
  • FlashTool (для Sony Xperia)
  • Miracle Box (для некоторых китайских телефонов)

Custom kernel config for local builds

If you need to switch a kernel configuration option regularly, for example,
when working on a feature, or if you need an option to be set for development
purposes, you can achieve that flexibility by maintaining a local
modification or copy of the build config.

Set the variable POST_DEFCONFIG_CMDS to a statement that is
evaluated right after the usual step is
done. As the files are sourced into the build
environment, functions defined in can be called
as part of the post-defconfig commands.

A common example is disabling link time optimization (LTO) for crosshatch
kernels during development. While LTO is beneficial for released kernels,
the overhead at build time can be significant. The following snippet added
to the local disables LTO persistently when
using .

Что нужно для самостоятельной прошивки телефона

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

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

  • «Fullflash» – комплекс всех встроенных программных утилит, формирующих образ памяти.
  • «Monsterpark» – программная заливка от производителя. Это пакет программ, состоящий из трех отдельных элементов: «EEROM», «Flex Memory» и собственно прошивки.

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

  • действующий смартфон;
  • компьютер или ноутбук;
  • USB-кабель для подключения гаджета к ПК.

Ссылки на исходный код известных дистрибутивов пользовательских прошивок Android

CyanogenMod — https://github.com/CyanogenModSlimROM — https://github.com/SlimRomsParanoidAndroid — https://github.com/ParanoidAndroidAOKP — https://github.com/AOKPЖидкостьГладкая — https://github.com/liquidsmoothПЗУ Xylon –Ледяное желе — https://github.com/IceColdJelly

Итак, вот и все, простое и понятное руководство по компиляции практически любого ПЗУ на базе Android AOSP за 10 простых шагов. Хотя мое руководство посвящено CyanogenMod, вы можете скомпилировать практически любое ПЗУ AOSP, просто изменив ссылки на репозиторий. Или вы можете просто выбрать функции, зафиксировать их, изменить материал и создать свое собственное персонализированное ПЗУ, может быть, также поделиться своим ПЗУ в Интернете?

Недостатки перепрошивки

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

– если ваш телефон до перепрошивки был на гарантии (а обычно это около одного года со дня его покупки), то после перепрошивки вы можете смело с ней попрощаться: на модель, которая перепрошита, гарантия заканчивается, никакой сервисный центр не захочет возмещать убытки и работать с ней по гарантийному обслуживанию, только за деньги;

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

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

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

Преимущества и недостатки AOSP

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

Зачеркнутые приложения, что недоступны в AOSP.

Как бы некоторые пользователи не возмущались по поводу высокой нагрузки на систему со стороны Google сервисов, без GAPPS такая прошивка никому не интересна, поскольку в ней ничего нет. Ещё и не каждый крупный производитель способен создать, развивать и поддерживать магазин приложений, способный конкурировать с Google Play. Поэтому большинство разработчиков выпускают кастомные прошивки на основе AOSP, внедряют дополнительные функции, а в публикациях отдельно прилагают Google сервисы для самостоятельной установки. Благодаря этому удается избежать ответных мер со стороны поискового гиганта.

Зачем необходимо «прошивать» устройства?

Существует несколько причин, по которым рано или поздно требуется прошивка телефона:

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

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

  • Желание обновиться. Как Android, так и iOS получают ежегодное обновление в виде новой версии ОС с дополнительными функциями и улучшенной оптимизацией. Например, в iOS 12, если верить производителям, был улучшен функционал управления работающими приложениями и фоновыми процессами, благодаря чему удалось добиться более высокой энергоэффективности. Низкая емкость АКБ – распространенная проблема смартфонов Apple. Поэтому многие пользователи сочли необходимым обновить свои гаджеты.

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

  • Необходимость восстановить доступ к устройству, удалить забытые пароли для доступа к некоторым приложениям, подготовить гаджет к продаже и т. д. В перечисленных случаях можно выполнить сброс к заводским настройкам. Но, если на смартфоне установлена старая версия ПО, прошивка – лучший вариант.

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

Building the code

This section is a quick summary to ensure that setup is complete.

Build everything with . can handle parallel
tasks with a argument. If you don’t provide a
argument, the build system automatically selects a parallel task count that it
thinks is optimal for your system.

m

As explained above, you can build specific modules instead of the full
device image by listing their names in your command line. In
addition, provides some pseudotargets for special purposes. Some
examples are:

  • — is the normal
    build. This target is here because the default target requires a name.
  • — builds everything
    that does, plus everything that doesn’t have the
    tag. The build server runs this to make sure that everything

    that is in the tree and has an file builds.

  • — Runs builds from the top of the tree.
    This is useful
    because you can run from within subdirectories. If you have
    the environment variable set, it uses that. If you don’t, it
    looks up the tree from the current directory, trying to find the top of the
    tree. You can either build the whole source code tree by running
    without arguments or build specific targets by specifying their names.
  • — Builds all of the modules in the
    current directory, and their dependencies.
  • — Builds all of the modules in the
    supplied directories, and their dependencies.
  • — to the top of the
    tree.
  • — deletes all of
    the output and intermediate files for this configuration. This is the same as
    .

Run to see what other pseudotargets
provides.

Ускорьте сборку с помощью CCACHE

Сборка ПЗУ занимает много времени. Но время можно сократить примерно на 30-45% с помощью CCACHE. CCACHE означает кеш компилятора, он кэширует выходные данные компиляции из ваших более ранних сборок, чтобы их можно было повторно использовать в более поздних сборках.

Обратите внимание, что CCACHE требует много места на вашем жестком диске для кэширования содержимого, поэтому рекомендуется, если и только если ваш раздел жесткого диска находится где-то в районе 200 ГБ или выше. Чтобы настроить CCACHE, откройте Терминал и введите:. cd ~ / android / смэкспорт USE_CCACHE = 1экспорт CACHE_DIR = ~ / .ccacheprebuilts / misc / linux-x86 / ccache / ccache –M 50 ГБ

cd ~ / android / смэкспорт USE_CCACHE = 1экспорт CACHE_DIR = ~ / .ccacheprebuilts / misc / linux-x86 / ccache / ccache –M 50 ГБ

Вы можете изменить выделение максимального размера для CCACHE с 50 ГБ на любое, но для хороших результатов следует использовать минимум около 30 ГБ.

Получение коммитов из других ПЗУ

Вы можете выбрать функции из исходного кода других ПЗУ. Скажем, например, я хочу выбрать функцию A с идентификатором фиксации «12345» из репозитория «github.com/user/reporepo».

Вы переходите к пакету в локальном исходном коде и запускаете его в Терминале.

cd ~ /git выборка https://github.com/user/reporepogit вишневый выбор 12345

Корпуса микросхем

Как видишь, с кор­пусами у памяти все пло­хо: помимо показан­ных на кар­тинке вари­антов, мож­но зап­росто вспом­нить еще с десяток, и не факт, что про­изво­дитель не решил исполь­зовать неч­то экс­клю­зив­ное, у чего может вооб­ще не быть наз­вания.

Корпуса микросхем

Маркировка

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

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

Так как еди­ного стан­дарта нет и не пред­видит­ся, про­изво­дите­ли воль­ны писать на сво­их чипах, что счи­тают нуж­ным. Это порой при­водит к кол­лизи­ям, вро­де того, что пред­став­лено на той же кар­тинке: два чипа раз­ных про­изво­дите­лей, оба 29-й серии, но один NOR, а дру­гой — NAND. Короче, не уга­даешь, и такие чипы при­ходит­ся про­бивать в поис­ковиках, что­бы выяс­нить хоть что‑то.

Типовой дизайн

Ус­трой­ства одно­го сег­мента про­екти­руют­ся очень похожи­ми — это впол­не оче­вид­но. Нап­ример, все бытовые роуте­ры изнутри выг­лядят поч­ти оди­нако­во. Та же ситу­ация на рын­ке устрой­ств SCADA, у которых свои каноны, но они прос­лежива­ются вез­де без осо­бых изме­нений.

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

  • ПК;
  • се­тевое обо­рудо­вание бытово­го сег­мента (роуте­ры, свит­чи, точ­ки дос­тупа);
  • обо­рудо­вание для ответс­твен­ных при­мене­ний (на заводах);
  • IoT — интернет вещей;
  • смар­тфо­ны.

Са­мо собой, мир кру­тит­ся не толь­ко вок­руг смар­тфо­нов да компь­юте­ров, но с ними у тебя шанс встре­тить­ся куда боль­ше, чем с каким‑нибудь кон­трол­лером для управле­ния ракет­ными дви­гате­лями. Поэто­му давай рас­смот­рим типовое устрой­ство толь­ко этих пяти катего­рий девай­сов.

ПК

Ус­трой­ство обыч­ных ПК под­разуме­вает модуль­ность, то есть поч­ти все детали мож­но лег­ко вынуть. Из‑за это­го на мат­пла­те из эле­мен­тов памяти есть толь­ко флеш­ка с BIOS/UEFI. При этом BIOS обыч­но сидит на мик­росхе­мах 24-й серии — I2C EEPROM, а в новых моделях сто­ит 25-я серия SPI NOR flash с UEFI.

Ес­ли же уста­нов­лен взрос­лый инте­лов­ский про­цес­сор с под­дер­жкой ME — на пла­те мож­но най­ти вто­рую такую же флеш­ку, но с про­шив­кой для ME. Это дела­ется в целях безопас­ности: находя­щуюся на физичес­ки отдель­ной мик­росхе­ме про­шив­ку заразить или под­менить слож­нее.

Бытовые роутеры

С роуте­рами пот­ребитель­ско­го клас­са все доволь­но прос­то: тут ста­вят память SPI NOR 25-й серии, если тре­бует­ся не боль­ше 8 Мбайт, или NAND-память объ­емом поболь­ше. Изредка мож­но най­ти eMMC, но мне такое пока не попада­лось.

Устройства для ответственного применения

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

Ло­ги обыч­но пишут­ся в EEPROM или FRAM 24-й серии, заг­рузчик лежит на NOR 25-й серии, а все встро­енное ПО кла­дут на NOR 26-й, 29-й серии. NAND исполь­зуют ред­ко, а если исполь­зуют — сра­зу боль­шими мас­сивами с резер­вирова­нием.

IoT

Сей­час понятие IoT слиш­ком рас­тяжимое: по сути, туда мож­но записать вооб­ще все умное домаш­нее и даже не очень домаш­нее. Из‑за это­го память там может быть любая: хоть EEPROM, хоть eMMC — это ког­да NAND с хост‑кон­трол­лером упа­кова­ны в один чип.

Смартфоны

В смар­тфо­нах обыч­но все самое передо­вое: тут тебе и eMMC, и eUFS, и даже NVMe SSD, как у Apple. При этом, как ни кру­ти, все эти чипы выг­лядят плюс‑минус оди­нако­во, так что ты их ни с чем не спу­таешь.

Прошивка для андроид — что это такое

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

Устройство на базе андроид

К сведению! Процесс установки новой системы на смартфон или планшет называют тоже «прошивка» или «перепрошивка». Это непосредственно инсталляция программного обеспечения, которая может производиться разными способами.

Для чего перепрошивать устройство на андроиде

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

  • проблемы в работе устройства. Исправить программные ошибки, избавиться от лагов, облегчить работу устаревших телефонов или планшетов может помочь перепрошивка. Она подойдет только в том случае, если неисправности не связаны с поломками каких-либо физических элементов устройства;
  • нужен апгрейд. Некоторые прошивки позволяют получить дополнительные функции, ускорить работу и обновить интерфейс. Если аппаратные возможности гаджета позволяют, то перепрошивка будет отличным решением для этих целей;
  • не устраивает оболочка системы или ПО от производителя. Многие компании выпускают устройства с собственной оболочкой Android, которая может предусматривать специфический интерфейс и встроенные приложения. При желании пользователя произвести замену оболочки и убрать встроенное ПО можно установить новую прошивку.

Разные оболочки андроида

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

Сборка

После внесения изменений нужно собрать все обратно. Сначала запакуем раздел system в system.new.dat. Скачиваем нужные нам инструменты:

$ wget https://github.com/xpirt/img2sdat/raw/master/img2sdat.py $ wget https://github.com/xpirt/img2sdat/raw/master/blockimgdiff.py $ wget https://github.com/xpirt/img2sdat/raw/master/common.py $ wget https://github.com/xpirt/img2sdat/raw/master/rangelib.py $ wget https://github.com/xpirt/img2sdat/raw/master/sparse_img.py $ sudo apt-get install android-tools-fsutils

Преобразовываем нашу папку обратно в RAW-образ. Назовем его system_new.img:

$ sudo make_ext4fs -T 0 -S file_contexts -l 1073741824 -a system system_new.img output/

1073741824 меняем на размер раздела system в байтах. Желательно даже сделать его чуть меньше. Делаем из RAW-образа sparse-образ:

$ img2simg system_new.img system_snew.img

Преобразуем наш образ в system.transfer.list и system.new.dat, которые и нужно кидать в архив с прошивкой, но сначала удалим старые файлы:

$ rm -rf system.transfer.list $ rm -rf system.new.dat $ rm -rf system.patch.dat $ chmod +x img2sdat.py $ ./img2sdat.py system_snew.img

Отделим файлы прошивки от лишней шелухи (файлов, которые мы загружали для работы. Для этого удобно пользоваться архивом с прошивкой). Удалили? Теперь нужно запаковать прошивку в ZIP-архив (любым архиватором).

Осталось подписать архив. Сделать это можно как на самом Android с помощью ZipSigner, так и на ПК (потребуется установленная Java):

$ wget https://github.com/appium/sign/raw/master/dist/sign.jar $ java -jar файл.zip

Подводные камни

Во время сборки system.new.dat ты можешь столкнуться с несколькими проблемами, вызванными постоянными изменениями в механизмах формирования прошивок Android. Описанный выше способ должен хорошо сработать в случае основанной на Android 5.1 прошивки, в более новых могут возникнуть сложности, так что потребуется использовать другие версии инструментов сборки. К сожалению, мы не можем описать все нюансы сборки, поэтому, возможно, придется погуглить.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Союз-Маркет
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: