Как извлечь APK файлы с IMG (Разбираем прошивку Android). Прошивка Андроид с помощью утилиты FastBoot Команды форматирования раздела

Для каждого смартфона или планшета существуют как официальные, так и кастомные прошивки. Их установка осуществляется разными способами: OTA обновления приходят по воздуху, прошивки в ZIP архивах устанавливаются вручную через CWM, TWRP Recovery или приложение ROM Manager, используя компьютер, можно прошить Android при помощи утилит Fastboot и SP Flash Tool.

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

Прошивка Андроид через Рекавери

Неофициальные прошивки в формате ZIP, такие как CyanogenMod, можно установить через кастомное Рекавери: CWM либо TWRP, а также приложения, использующие Recovery, например, ROM Manager. Аналогично шьются ядра и патчи. Для загрузки официальных «Update.zip» хватает возможностей стандартного режима восстановления, подробнее в статье по ссылке выше.

Устанавливаем ZIP файл в CWM

На всех устройствах «из коробки» стоит стоковое Рекавери от производителя, вместо него нужно установить CWM по . Затем найдите и скачайте ZIP архив с прошивкой. Учтите, что прошивки других форматов через CWM не устанавливаются.

1. Теперь переходим в Рекавери. Для этого выключаем аппарат и нажимаем определенное сочетание кнопок. В зависимости от производителя комбинация клавиш отличается, ниже представлены все возможные варианты (в новой написано как зайти в Recovery на конкретных моделях):

  • Громкость вверх + кнопка включения
  • Громкость вниз + кнопка включения
  • Громкость вверх/вниз + кнопка включения + «Домой»
  • Громкость вверх + громкость вниз + кнопка включения

Отлично, вы попали в Recovery. Движение осуществляется при помощи кнопок громкости, а подтверждение выбора кнопкой включения.

2. Перед установкой прошивки необходимо сначала сделать сброс настроек: выберите пункт «wipe data/factory reset».

4. Отлично! Вернитесь в главное меню и выберите «install zip».

5. После этого «Choose zip from /sdcard».

6. Перейдите к папке, в которую сохранили прошивку и выберите ее.

7. Появится запрос на подтверждение действия. Нажмите «Yes – Install…».

8. Пройдет процесс установки прошивки и в конце внизу на экране пояится надпись «Install from sdcard complete».

Замечательно, Android прошился. Возвращаемся в главное меню CWM Recovery и перезагружаем систему. Для этого выбираем «reboot system now».

Как установить прошивку через TWRP Recovery

Если больше нравится не CWM, а TWRP Recovery, прошейте его, руководствуясь . Через него также можно установить прошивку из ZIP архива:

1. Скачайте прошивку и поместите ее в любое удобное место в памяти смартфона.

2. Перейдите в TWRP. Делается это так же, как CWM.

3. Теперь необходимо сбросить систему. Для этого выберите «Wipe» в главном меню.

4. Для того, чтобы запустить сброс настроек до заводских, перетяните ползунок вправо.

5. По завершению очистки смартфона, планшета нажмите кнопку «Back».

6. Вы вернетесь к главному меню TWRP Recovery. Теперь переходим непосредственно к самой прошивке. Для этого выберите «Install».

7. Перейдите к тому месту в памяти, где сохранена прошивка. Нажмите на нее.

8. Перетяните ползунок вправо для начала установки прошивки.

9. Начнется процесс. Обычно он длится 2-3 минуты.

10. В конце появится сообщение об удачном завершении прошивки. Нажмите на «Reboot System», чтобы загрузить Android.

Рассмотрен еще один способ как прошить Android при помощи ZIP обновления. Также можно воспользоваться специальным приложением. Об этом ниже.

Используем ROM Manager

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

Для работы утилиты нужны root права – они получаются при помощи эксплоитов: , или .

Обязательно должно быть установлено кастомное Recovery (по сути при помощи ROM Manager прошиваете устройство через него, но при этом работаете с простым и понятным интерфейсом приложения, а не Рекавери). Ссылки на инструкции есть в предыдущих пунктах.

Итак, установите ROM Manager , найдите и скачайте нужную прошивку для вашего устройства. Откройте приложение и следуйте инструкции:

1. Поместите.zip архив прошивки в памяти Андроид телефона или планшета.

2. В меню ROM Manager откройте пункт «Установить ROM с SD карты».

3. Найдите архив и нажмите на него.

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

5. В следующем окне нажмите «ОК», после чего устройство загрузится в режим Recovery и начнется процесс прошивки.

Также в ROM Manager есть функция поиска ROM для устройства. В главном меню программы выберите «Скачать прошивки». Некоторые из них доступны только в премиум версии программы.

Выше я рассказал о трех способах установки прошивок из ZIP архивов на самом устройстве. Дальше пойдет информация о прошивке Андроид при помощи ПК.

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

Многие мобильные девайсы прошиваются при помощи специальных утилит для ПК: ниже инструкции по работе с Fastboot и SP Flash Tool. Через вторую программу производятся различные манипуляции с китайскими телефонами на базе процессоров Mediatek.

Fastboot: инструкция по прошивке телефона

Многие прошивки необходимо устанавливать с компьютера при помощи утилиты Fastboot, перезагрузив мобильный девайс в одноименный режим. Программа входит в Android SDK Platform Tools, об установке которых рассказано в . Кроме того понадобятся драйверы (вся информация есть по ссылке).

Также на устройствах некоторых производителей сначала необходимо разблокировать Bootloader:

  • Как сделать на HTC: ,

Далее скачиваем архив с нужной прошивкой и разархивируем его в папке «platform-tools», в которой находятся «ADB» и «fastboot». Должно получится приблизительно так (у меня нужные компоненты находятся в отдельной папке «adb»).

Затем подключаем Android к компьютеру по USB и переводим смартфон либо планшет в fastboot mode. Проще всего это сделать следующим образом:

  1. Включаем
  2. На компьютере переходим в командную строку
  3. Последовательно вводим команды и после каждой нажимаем «Enter»:

cd путь к файлу "adb"

Например, он находится в «C:\Program Files (x86)\Android\android-sdk\platform-tools». Тогда путь будет выглядеть так:

cd Program Files (x86)\Android\android-sdk\platform-tools

Затем Android гаджет перезагрузится в режим fastboot.

Перед тем как прошить какой-либо из разделов системы, сначала его нужно отформатировать, чтобы не возникло проблем в работе. Для этого используйте команды (после ввода каждой нажимайте «Enter»):

fastboot erase boot

fastboot erase userdata

fastboot erase system

fastboot erase recovery

fastboot erase cache

После очистки разделов их можно прошивать. Вводите команды (их количество может быть больше – все зависит от наличия определенных файлов в той или иной прошивке, ниже представлен набор основных):

fastboot flash boot imya-fayla.img

fastboot flash userdata imya-fayla.img

fastboot flash system imya-fayla.img

fastboot flash recovery imya-fayla.img

fastboot flash cache imya-fayla.img

«Imya-fayla.img» — это название соответствующего файла прошивки. Например, поскольку в моем случае шьется Recovery и его образ так и называется «recovery.img», я ввожу:

fastboot flash recovery recovery.img

Обычно прошивку можно установить целиком, то есть прошить все файлы сразу. Для этого в папке с файлами прошивки должен находится «flash-all.bat». Если он есть, тогда просто введите эту команду и начнется процесс установки прошивки:

В итоге в конце появится сообщение об успешном завершении прошивки.

Можно загружать систему. Для этого нужно выйти из fastboot mode на самом устройстве или при помощи компьютера. Во втором случае нужно ввести еще одну команду:

Установка ZIP обновлений в Fastboot

Используя Fastboot можно установить ZIP прошивку. Для этого скачайте и поместите прошивку в папку, где находится «ADB». Переведите смартфон или планшет в fastboot mode и введите команду:

fastboot flash zip imya-fayla.zip

«Imya-fayla.zip» – это название вашей прошивки, замените его на свое.

Дождитесь завершения установки Android и перезагрузите устройство.

SP Flash Tool: прошиваем китайские Android смартфоны на MTK

Китайские смартфоны Fly, Lenovo, Xiaomi, Meizu, ZTE, Doogee, Bluboo, UMI, Elephone, Oukitel, Blackview и другие, работающие на базе процессоров MTK, прошиваются специальной утилитой SP Flash Tool. Она умеет шить отдельные разделы, форматировать систему и создавать резервные копии. Поддерживаются модели на MT6572, MT6577, MT6580, MT6582, MT6589, MT6592, MT6750, MT6737, Helio P10, Helio P20, Helio X10, Helio X20 и других менее популярных чипах.

Актуальная версия программы доступна на сайте: http://spflashtool.com/ . Перед началом процесса установите драйвера USB под процессор MTK (ссылка на FAQ находится в пункте «Fastboot» данной инструкции).

1. Разархивируйте папку SP Flash Tool на диске «C:\», рядом «положите» прошивку. Путь к файлам не должен содержать кириллических символов.

2. В папке находится файл «flash_tool». Запустите его.

3. В поле «Download-agent» уже будет указан путь к «MTK_AllInOne_DA.bin». Далее нужно нажать «Scatter-loading» и выбрать scatter файл в папке с прошивкой.

4. Переключатель оставляем на «Download Only» и отмечаем какие разделы нужно прошить (по умолчанию выделены все).

5. Нажимаем «Download». Затем выключаем телефон, вынимаем батарею на несколько секунд, вставляем обратно и подсоединяем выключенный Android смартфон к компьютеру по USB.

6. Сначала появится красная полоса «Download DA 100%».

7. Затем желтая с процессом прошивки. Проценты отображают насколько близок конец установки.

Необходимо прошить Android c помощью FastBoot, но не знаете как? В данной статье дается детальная инструкция по использованию утилиты FastBoot и как ей пользоваться чтобы прошить Android девайс.

Данная инструкция полностью расскажет как пользоваться FastBoot! Если же вы не знаете как устанавливать архивные обновления то вам необходима статья - Clockwordmod - что это такое. Инструкция по CWM recovery с картинками

Скачивание и установка FastBoot

Прежде прошить Android c помощью FastBoot, необходимо его скачать и установить на необходимый компьютер.

1. Скачать утилиту FastBoot можно с официальной программой Android SDK (большой вес)

почему ADB RUN лучше

Запуск

Если скачали Отдельно Fastboot

После того как Вы скачали и установили FastBoot, откройте на ПК программу «Командная строка »

и введите команды для перехода в папку с утилитой Fastboot (если установили отдельно FastBoot )

cd /
cd adb

Если скачали ADB RUN

Если ваш выбор пал на программу ADB RUN, то запустите ее и выберите в меню Manual -> ADB

Файлы которые необходимо прошить должны находится в одной папке с утилитой Fastboot

Инструкция по командам как прошить Android c помощью FastBoot

Очень важно писать команды и файлы прошивок так как они указаны!

Если у вас команда указана

fastboot flash cache NazvaniAFiLe.img

то нужно писать именно так, но ни как иначе. Другими словами важен регистр букв иначе вы получите ошибку cannot load ‘image’ - нет такого файла.

Команды перезагрузки в режим прошивки (bootloader)

fastboot reboot-bootloader

Команда «видит» ли ПК ваш Android

Возьмите в привычку проверять перед тем как что-то делать в Fastboot если соединение между компьютером и Android:

Проверка «видит ли» ПК ваш Android

fastboot devices

Данную команду выполнять когда устройство уже в режиме прошивке (bootloader)

Команды разблокировки и блокировки загрузчика Nexus

Разлочить bootloader для Nexus

fastboot oem unlock

Залочить bootloader для Nexus

fastboot oem lock

Команда узнать версию bootloader

Покажет установленую на Android номер версии бутлоадер

fastboot getvar version-bootloader

Команды форматирования раздела

Перед тем как прошить какой либо раздел в Android, вначале его необходимо отформатировать для того чтобы не возникло проблем в работе

fastboot erase Imya_razdela - стереть раздел: boot, radio, recovery, system, userdata и другие

Стирает раздел Кеш (Cache)

fastboot erase cache

Стирает раздел Дата (Data)

fastboot erase userdata

Стирает раздел Систем (System)

fastboot erase system

Стирает раздел Recovery

fastboot erase recovery

Команды для прошивки раздела

После того как выполнили форматирование раздела или разделов, можете приступить к прошивке

fastboot flash Imya_razdela imya_file.img - прошивка выбранного раздела: boot, radio, recovery, system, userdata и другие

Прошить раздел системы (System)

fastboot flash system imya.img

Прошить раздел кеш (Cache)

fastboot flash cache imya.img

Прошить раздел дата (Data)

fastboot flash userdata imya.img

Прошить раздел Recovery

fastboot flash recovery imya.img

Установка анимации включения (прошивка раздела с анимацией)

fastboot flash splash1 splash.img

Прошить все разделы (boot, recovery и system)

fastboot flashall

Вместо imya.img - необходимо прописывать имя файла которые вы собираетесь прошить

Команда для установки update.zip

Прошивает на Android архив-обновление в формате update.zip или архив ZIP с IMG образами различных разделов

fastboot update имя_файла.zip

Для устройств Sony

Проверка подключения устройства Sony, если ответ 0.3 устройство, то тогда подключено

fastboot.exe -i 0x0fce getvar version

Разблокировка bootloader

fastboot.exe -i 0x0fce oem unlock 0xПолученый_Ключ

Более детальная информация по разблокировке Bootloader Sony - Как разблокировать Bootloader Sony

Ошибка Waiting for Device

Если у вас долгое время в командном окне горит надпись waiting for device - значит:

  • Не установлен или некорректно установлен драйвер - переустановить или установить
  • Устройство Android не в режиме Bootloader - перевести
  • Некорректное подключение к USB порту - использовать задние порты USB 2.0 компьютера, не использовать USB хабы

Необходимо прошить Android c помощью FastBoot, но не знаете как? В этой статье дается детальная инструкция по использованию утилиты FastBoot, как ей пользоваться, откуда скачать и как прошить Android девайс.

Данная инструкция полностью расскажет как пользоваться FastBoot! Как с помощью Fastboot очищать разделы, прошивать IMG файлы, выполнять перезагрузку и многие другие.

Если же вы не знаете как устанавливать архивные обновления, то вам необходима статья — как установить прошивку в zip формате на андроиде с картинками.

Скачивание и установка FastBoot

Прежде прошить Android с помощью FastBoot, необходимо скачать эту утилиту и установить на необходимый компьютер:

  1. Скачать FastBoot можно со страницы разработчиков Android в комплекте platform-tools .
  2. Либо воспользоваться программой Adb Run , точней лучше , в которой «все включено», а также умеет разблокировать графический ключ Android .

Почему ADB RUN лучше?

Запуск утилиты Fastboot

В зависимости от того что вы выбрали, скачали отдельно утилиту fastboot или выбрали adb run, запуск может отличаться!

Если скачали Отдельно Fastboot

Извлеките файлы:

  1. adb.exe
  2. AdbWinApi.dll
  3. AdbWinUsbApi.dll
  4. fastboot.exe
  5. libwinpthread-1.dll

Переместите их на диск C:\, папка Windows. Вам удалось установить ADB и Fastboot на ваш компьютер!

После того как Вы скачали и установили FastBoot, откройте на ПК программу «Командная строка» .

Пример запуска командной строки Windows

Пример установки ADB и Fastboot.

Если скачали ADB RUN

Если ваш выбор пал на фирменную программу ADB RUN , то запустите ее, наберите кнопку A и нажмите Enter.

Файлы которые необходимо прошить желательно разместить в одной папке с утилитой Fastboot .

Инструкция как прошить Android
c помощью FastBoot

Под прошивкой Android в Fastboot подразумевают прошивку отдельных файлов, для разных блоков памяти устройства (system, data, boot).

Очень важно писать команды и файлы прошивок так как они указаны!

Если у вас указана команда:

fastboot flash cache NazvaniAFiLe.img

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

Команды перезагрузки
Fastboot в режим прошивки (bootloader)

  • Для того чтобы начать работать с устройством Android с помощью Fastboot для начала необходимо, перевести смартфон или планшет в режим bootloader с помощью adb:

adb reboot bootloader

  • Перезагрузка Android из режима прошивки (bootloader) в этот же режим:

fastboot reboot-bootloader

  • Перезагрузка Android из режима прошивки bootloader в режим bootloader:

fastboot reboot-bootloader

  • Перезагрузка Android в обычный режим из режима прошивки bootloader:

fastboot reboot

Команда «видит» ли ПК ваш Android

Возьмите в привычку перед тем как что-то делать в Fastboot, проверять есть ли соединение между компьютером и Android:

  • Проверка «видит ли» ПК ваш Android:

fastboot devices

Данную команду необходимо выполнять когда устройство уже в режиме прошивке (bootloader)

Команды разблокировки и блокировки загрузчика
Google Pixel, Nexus в Fastboot

  • Разлочить bootloader для Pixel, Nexus:

fastboot oem unlock или fastboot flashing unlock

  • Залочить bootloader для Pixel, Nexus:

fastboot oem lock

Команда узнать версию bootloader

Покажет установленную на Android номер версии бутлоадер:

fastboot getvar version-bootloader

Команды форматирования раздела
в Fastboot (Fastboot Erase)

Перед тем как прошить какой-либо раздел в Android, вначале его необходимо отформатировать, чтобы не возникло проблем в дальнейшей работе:

  • Стирает раздел Кеш (Cache) в Fastboot:

fastboot erase cache

  • Стирает раздел Дата (Data/UserData) в Fastboot:

fastboot erase userdata или fastbot -w

  • Стирает раздел Систем (System)в Fastboot:

fastboot erase system

  • Стирает раздел Recovery в Fastboot:

fastboot erase recovery

Команды для прошивки разделов Android в Fastboot
(Fastboot Flash)

После того как выполнили форматирование раздела или разделов Android, можно переходить к следующему шагу, прошивке:

  • Прошить раздел системы (System):

fastboot flash system imya.img

  • Прошить раздел кеш (Cache):

fastboot flash cache imya.img

  • Прошить раздел дата (Data):

fastboot flash userdata imya.img

  • Прошить раздел Recovery:

fastboot flash recovery imya.img

Вместо imya.img необходимо вставить имя прошиваемого файла!

  • Прошить все разделы (boot, recovery и system):

fastboot flashall

Команда для установки update.zip

Прошивает на Android архив-обновление в формате update.zip — архив ZIP с IMG образами различных разделов:

fastboot update имя_файла.zip

Для устройств Sony

Проверка подключения устройства Sony, если ответ 0.3 устройство, то тогда подключено:

fastboot.exe -i 0x0fce getvar version

Разблокировка bootloader Sony

fastboot.exe -i 0x0fce oem unlock 0xПолученый_Ключ

Более детальная информация по разблокировке Bootloader Sony — Как разблокировать Bootloader Sony .

Ошибка Waiting for Device

Если у вас долгое время в командном окне горит надпись waiting for device — значит:

  • Не установлен или некорректно установлен драйвер — переустановить или установить
  • Устройство Android не в режиме Bootloader — перевести
  • Некорректное подключение к USB порту — использовать задние порты USB 2.0 компьютера, не использовать USB хабы

Видео пример работы с утилитой Fastboot

Для тех кто ничего не понял!

Для тех кто ничего не понял, то тогда воспользуйтесь фирменным приложением ADB RUN , в данной программе введены практически все команды, которые нужны для FASTBOOT!

Ниже представлен пример работы ADB RUN — как прошить быстро файл Recovery с помощью ADB RUN за менее чем за 5 секунд (только не забывайте вначале переводить в режим bootloader)!

Вот и все! Больше статей и инструкций читайте в разделе Статьи и Хаки Android . Оставайтесь вместе с сайтом , дальше будет еще интересней!

Начнем с того, что тебе нужен Linux. В Windows ты сможешь только разобрать прошивку, но собрать обратно уже не получится по чисто техническим причинам. Теперь о прошивке. Обычно они распространяются в виде ZIP-архивов, прошиваемых через кастомные рекавери. Именно один из них нам и понадобится для опытов. Начинать путь ромодела я рекомендую с какой-нибудь максимально приближенной к AOSP кастомной прошивки, потому что в ней зачастую проще разобраться, чем в стоке.

  1. Распаковываем архив с прошивкой в любую папку.
  2. Качаем скрипт по ссылке и разархивируем в любую папку.
  3. Запускаем файл ext (если будет ругаться на отсутствие Java, просто пропусти, нажав y ; Java нужна только для запаковки).
  4. Теперь выбираем распаковку, нажав кнопку 1, а затем Enter.
  5. Новая папка с именем extract_* появится рядом с файлом ext и папкой tools . Копируем в нее файлы system.new.dat и system.transfer.list .
  6. После копирования файлов нажимаем Enter и ждем. Через некоторое время нужно будет опять нажать Enter, ввести пароль администратора и еще раз тапнуть Enter.
  7. Готово. Содержимое system в папке extract_*/output .

Ручной способ

Распаковываем архив с прошивкой в любую папку (например, в rom):

$ mkdir ~/rom $ unzip путь_до_архива -d ~/rom/

Скачиваем нужные нам инструменты в эту папку:

$ cd ~/rom $ wget https://github.com/xpirt/sdat2img/raw/master/sdat2img.py

Запускаем скрипт:

$ chmod +x sdat2img.py $ ./sdat2img.py system.transfer.list system.new.dat system.img

Он преобразует файл system.new.dat в raw-образ с именем system.img . Монтируем образ к подпапке mnt:

$ mkdir mnt $ sudo mount -t ext4 -o loop system.img ~/rom/mnt

Структура каталогов Android

После распаковки system появится следующая каталоговая структура:

  • app - предустановленные приложения со стандартными привилегиями;
  • priv-app - предустановленные приложения с повышенными привилегиями, в том числе некоторые компоненты системы;
  • bin - бинарные файлы формата ELF, аналог каталогов /bin и /usr/bin в Linux. Содержит различные системные компоненты, используемые более высокоуровневыми компонентами системы;
  • etc - файлы настроек. Полный аналог /etc в Linux, используемый, однако, только теми самыми системными компонентами. Приложения Android хранят индивидуальные настройки в каталогах /data/data/ ;
  • fonts - шрифты. По умолчанию содержит только фирменные шрифты Roboto;
  • framework - библиотеки Java-классов, используемых системой и приложениями. Тут же лежит файл framework-res.apk , содержащий полное описание интерфейса операционной системы, включая все графические файлы;
  • lib и lib64 - Linux-библиотеки, используемые низкоуровневыми компонентами системы. Аналог каталогов /lib и /usr/lib в Linux, включая такие стандартные библиотеки, как libc, libz, libssl. На устройствах с архитектурой ARMv7 и ниже каталог lib64 будет отсутствовать;
  • media - медиафайлы: рингтоны, звуки уведомлений, звуки интерфейса и анимация загрузки ОС;
  • tts - файлы, необходимые синтезатору речи;
  • usr - каталог, который обычно содержит файлы, необходимые для работы приложений из каталога bin. По сути, аналог /usr/share ;
  • vendor - файлы, поставляемые производителем устройства. Обычно содержит бинарный firmware для различных железных компонентов, например модуля Wi-Fi;
  • xbin - необязательный каталог; кастомные прошивки используют его для хранения таких вещей, как интерпретатор bash, SSH, PowerTOP, BusyBox, и других полезных инструментов;
  • build.prop - файл, содержащий информацию о сборке, а также различные низкоуровневые настройки;
  • addon.d - содержит скрипты, запускаемые после установки прошивки. Сюда же GApps прописывают свой скрипт, благодаря которому возрождаются после переустановки прошивки.

Ознакомившись с базовой структурой Android, начнем вносить изменения.

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

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

  • /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-прошивках взаимосвязей не так много.

Меняем анимацию загрузки

Анимация хранится в виде PNG-картинок, упакованных в архив /system/media/bootanimation.zip без сжатия. Внутри архива находятся:

  • desc.txt - файл, описывающий анимацию;
  • part0 - папка с файлами анимаций, которые воспроизводятся первыми;
  • part1 - папка с файлами анимаций, которые воспроизводятся вторыми;
  • part? - крайняя папка, изображения с которой воспроизводятся в конце.

Файл desc.txt может содержать нечто вроде

1920 1080 60 p 1 0 part0 p 0 0 part1

Назначение этих строк интуитивно понятно: 1920 × 1080 - разрешение картинки, 60 - число кадров в секунду. Part0 и part1 указывают на папки, из которых будет воспроизводиться анимация, и последовательность воспроизведения. Вообще, может быть как одна часть, так и несколько (три и больше).

Изображения, находящиеся в папках part, пронумерованы пятью цифрами в порядке воспроизведения: 00000.png , 00001.png , 00002.png ... Эти изображения можно поменять на свои, тем самым создав оригинальную анимацию. А можно просто удалить файл bootanimation.zip . Тогда девайс будет показывать анимацию из стандартного Android. Или воспользоваться уже готовой коллекцией анимаций на 4PDA .

Изменяем звуковое оформление

Фактически все звуки, которые воспроизводит система, хранятся в папке /system/media/audio . Внутри нее ты найдешь следующие папки:

  • alarms - мелодии будильника;
  • notifications - звуки уведомлений;
  • ringtones - мелодии звонка;
  • ui - системные звуки, например низкий заряд батареи, фокусировка камеры, выбор элементов интерфейса.

В alarms, notifications, ringtones можно накидать сколько угодно любых мелодий. Взять их можно, например, здесь:

  • стандартные мелодии из разных телефонов и смартфонов Nokia ;

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

Добавляем шрифты

Шрифты хранятся в fonts . Найти архивы с файлами шрифтов можно на 4PDA и XDA . Для установки достаточно скопировать с заменой ttf-файлы из архива в папку fonts .

Меняем системные настройки (build.prop)

В образе system есть интересный файлик build.prop , содержащий множество полезной информации о железе устройства и настройках, устанавливаемых по умолчанию, для различных стоковых приложений. Справедливости ради замечу, что это не всегда так. Например, в Gigaset ME и ME Pro build.prop разделен на две части. В одной части содержатся настройки для Gigaset ME, а для ME Pro некоторые строки продублированы, но ключи (название смартфона и так далее) в них другие. Это было сделано, чтобы обеспечить более-менее корректную работоспособность одной и той же прошивки на разных аппаратах.


Build.prop содержит (или может содержать) огромное количество настроек. Некоторые из них ничего не меняют, некоторые улучшают одно за счет ухудшения другого, но есть те, которые действительно полезны:

  • ro.product.model и ro.product.manufacturer - модель смартфона и имя производителя. С помощью замены этих строк можно заставить Play Store думать, будто у тебя другой смартфон, что откроет доступ к большему количеству софта. Для всяких малоизвестных китайских смартфонов эти строчки могут стать спасительными;
  • hw.qemu.mainkeys - принимает только два значения: 0 - показать наэкранные клавиши навигации, 1 - не показывать кнопки. Отсутствие строки соответствует 0;
  • debug.sf.nobootanimation - значение 1 отключает анимацию загрузки, что немного поднимает ее скорость. Установка 0 или удаление строки возвращает анимацию на место;
  • ro.telephony.default_network - говорит системе, в какой режим должна быть переключена мобильная сеть при загрузке;
  • ro.sf.lcd_density - DPI дисплея, наиболее точное значение для дисплея можно посчитать через удобный сайт . Но никто не запрещает поставить и большее или меньшее значение по своему вкусу: более высокие значения делают элементы интерфейса крупнее, низкие - меньше;
  • ro.config.vc_call_vol_steps - количество шагов громкости во время разговора (по умолчанию 8);
  • ro.config.media_vol_steps - количество шагов громкости мультимедиа (по умолчанию 15).

Внедряем в прошивку Google Apps

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

Для начала необходимо скачать пакет GApps. Я рекомендую брать архивы Open GApps . Выбираешь версию Android, архитектуру процессора и вариант комплектации (Pico, Nano, Stock...), который определяет, сколько различных приложений Google содержит архив. Я рекомендую скачать версию Pico. Она содержит только Play Store и набор необходимых для его работы библиотек.

Интеграция GApps в прошивку выполняется так:

  1. Распаковываем ZIP-архив GApps с помощью любого архиватора.
  2. Переходим в папку Core.
  3. Видим множество архивов с расширением.tar.lz . Извлекаем с помощью lzip.
  4. После распаковки копируем файлы из папок в соответствующие папки в system. Что куда кидать, нетрудно догадаться по структуре каталогов в архиве. Например, configupdater (со скриншота) нужно кидать в папку priv-app .
  5. Переходим в папку GApps (находится рядом с Core) и проделываем пункты 3 и 4 для файлов в ней.
  6. Все, мы интегрировали GApps в нашу прошивку!

Свободное место

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

$ adb shell df /system

Второй вариант: поставить на устройство терминал и набрать команду

$ df /system

Размер раздела в байтах можно узнать, установив на смартфон BusyBox и выполнив в терминале команду

$ busybox df -B 1 /system

Или то же самое с помощью ADB:

$ adb shell busybox df -B 1 /system

Место, занимаемое прошивкой, будет приблизительно равно размеру system в распакованном виде. Вообще, при создании прошивки необходимо учитывать, что юзер также может прошить поверх нее различные модификации (SuperSU, Xposed) или перенести приложения в раздел system. Например, минимальный пакет приложений Google (Pico) требует минимум 150 Мбайт дополнительного пространства для установки.

При необходимости размер файла прошивки можно уменьшить, удалив не только ненужные программы из /system/app (/system/priv-app) и звуки вызова из system/media/audio и bootanimation.zip , но и:

  • /system/tts/lang_pico - языки примитивного голосового движка Pico TTS, голосовой движок Google это не затронет;
  • /system/usr/srec/config/ - офлайн-языки. Можно будет скачать потом онлайн, если понадобится.

Сборка

После внесения изменений нужно собрать все обратно. Сначала запакуем раздел 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 прошивки, в более новых могут возникнуть сложности, так что потребуется использовать другие версии инструментов сборки. К сожалению, мы не можем описать все нюансы сборки, поэтому, возможно, придется погуглить.

Установка

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

TWRP

Выводы

Эта статья описывает лишь верхушку огромного айсберга под названием «модификация прошивок». «Серьезные» прошивки не только дополняют ядро и саму прошивку со стоковыми приложениями множеством функций (которые зачастую вырваны из других ядер и прошивок), организовывая или даже меняя принципы их взаимодействия, но и вполне могут кардинально менять принципы работы ОС. Правда, такая поделка - это уже не Android, а отдельная ОС, даже если Play-сервисы получится туда поставить (кстати, такие действия, мягко говоря, не поощряются Google). Ну и не забываем: все оболочки от производителей - TouchWiz, ZenUI, HTC Sense и так далее - всего лишь обычные кастомы, максимально привязанные к железу устройства и друг к другу.

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

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

Существует много конечно-разностных методов интерполяции. Наиболее
распространенным является метод Ньютона для интерполяции «вперед» (метод Ньютона - Грегори). Интерполяционный полином в этом случае имеет вид:

Коэффициенты С находим по формуле:

Реализация программы на языке C#:
using System; namespace Interpolation { class Program…

Программа разделена на два потока в одном из которых выполняется сортировка, а в другом перерисовка графического интерфейса. После нажатия на кнопку «Сортировать», в программе вызывается метод «RunSorting», в котором определяется алгоритм сортировки и создается новый поток с запущенным в нем процессом сортировки.
private void RunSo…

Совместное использование ресурсов (CORS) — это спецификация W3C, которая позволяет осуществлять междоменную связь в браузере. Создавая поверх объекта XMLHttpRequest, CORS позволяет разработчикам работать с одинаковыми идиомами как запросы с одним доменом. Вариант использования для CORS прост. Представьте, что на сайте alice.com есть некоторые данные, которые сайт bob.com хочет получить. Этот тип запроса традиционно не допускается в соответствии с той же политикой происхождения браузера. Однако, поддерживая запросы CORS, alice.com может добавить несколько специальных заголовков ответов, которые позволяют bob.com получать доступ к данным. Как видно из этого примера, поддержка CORS требует координации между сервером и клиентом. К счастью, если вы являетесь разработчиком на стороне клиента, вы защищены от большинства этих деталей. В остальной части этой статьи показано, как клиенты могут выполнять запросы с кросс-началом и как серверы могут настраивать себя для поддержки CORS. Продолжени…

Всем привет, сегодня я хочу показать код еще одного проекта, который является абсолютно бесполезным и написан исключительно для развлечения. Однажды у нас на уроке не было преподавателя и мы чтобы хоть как-то развлечь себя начали писать на Pascal. Началось все с простой сирены, которая заставляла системные блоки в аудитории издавать звуки, подобные сирены автомобилей скорой помощи. Закончилось все дома, написанием фрагмента песни группы Linkin Park - Numb.

Вот собственно и код программы:
USES CRT; VAR i, temp, note, note2, note4, note8: Integer; PROCEDURE PlayNote(f, p: Integer); BEGIN Sound(f); Delay(p); NoSound; Delay(20); END; PROCEDURE Pause(p: Integer); BEGIN Delay(p); END; PROCEDURE Numb(temp, note, note2, note4, note8: Integer); BEGIN FOR i:=0 TO 1 DO BEGIN PlayNote(880, note4); PlayNote(1047, note4); PlayNote(880, note4); PlayNote(1175, note2 + note4); PlayNote(1397, note2 + note4); PlayNote(1319, note…