Как вручную создать тему пользовательского интерфейса системы Android

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



Однако все это сводится к SystemUI.apk - и я покажу вам пошаговые инструкции по редактированию ресурсов внутри этого .apk, чтобы настроить пользовательский интерфейс Android так, как вам нравится. Обратите внимание, что это руководство предназначено в основном для ПЗУ на основе AOSP - и ссылки на файлы внутри SystemUI.apk могут отличаться от имеющихся у вас, в зависимости от производителя вашего телефона. Но если это так, вы все равно можете добиться того, что мы делаем, с помощью небольших проб и ошибок.

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



Требования:

  • Устройство с root-доступом ( искать в Appual’s по Руководства для Android root )
  • Инструменты ADB и Fastboot ( см. руководство Appual Как установить ADB в Windows )
  • Java SDK
  • APKTool или же APKMultiTool
  • Блокнот ++ ( или другой удобный текстовый редактор для редактирования строк XML и Smali )
  • Программное обеспечение для редактирования изображений, такое как GIMP или Photoshop
  • 7-Zip или Winrar

Примечание. В этом руководстве я буду использовать APKTool в качестве справочника - если вы выбрали APKMultiTool, начальная настройка и процесс декомпиляции / перекомпиляции могут отличаться, но в целом шаги будут такими же.



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



APKTool Setup для Windows

  1. Скачать Windows сценарий оболочки (Щелкните правой кнопкой мыши, сохранить ссылку как apktool.bat)
  2. Скачать apktool-2 ( найди здесь самое новое )
  3. Переименуйте загруженный jar в apktool.jar
  4. Переместите оба файла (apktool.jar и apktool.bat) в каталог Windows (обычно C: // Windows)
  5. Если у вас нет доступа к C: // Windows, вы можете разместить два файла в любом месте, а затем добавить этот каталог в системную переменную PATH переменных среды.
  6. Попробуйте запустить apktool через командную строку

APKTool Setup для Linux

  1. Скачать Linux сценарий оболочки (Щелкните правой кнопкой мыши, сохранить ссылку как apktool)
  2. Скачать apktool-2 ( найди здесь самое новое )
  3. Переименуйте загруженный jar в apktool.jar
  4. Переместите оба файла (apktool.jar и apktool) в / usr / local / bin (необходим корень)
  5. Убедитесь, что оба файла исполняемые (chmod + x)
  6. Попробуйте запустить apktool через cli

APKTool Setup для Mac OS X

  1. Скачать Mac сценарий оболочки (Щелкните правой кнопкой мыши, сохранить ссылку как apktool)
  2. Скачать apktool-2 ( найди здесь самое новое )
  3. Переименуйте загруженный jar в apktool.jar
  4. Переместите оба файла (apktool.jar и apktool) в / usr / local / bin (необходим корень)
  5. Убедитесь, что оба файла исполняемые (chmod + x)
  6. Попробуйте запустить apktool через cli

Декомпиляция SystemUI.Apk с помощью APKTool

  1. После установки APKTool нам нужно вытащить ваш файл фреймворка с вашего устройства через ADB. В общий AOSP файл framework называется ‘ framework-res.apk ’ найти в / system / framework путь на вашем устройстве, но большинство производителей включают свои собственные файлы фреймворка в дополнение к фреймворку AOSP.
  2. Это может быть сложно, потому что вам нужно будет выяснить, что производитель назвал файл ресурсов фреймворка на вашем устройстве. Обычно их можно найти в / system / framework , но иногда их можно спрятать в / данные / системные рамки или же / система / приват-приложение . Сами файлы обычно имеют ' Ресурсы' , 'говядина' , или же ' фреймворк' в именах файлов.
  3. Найдя файл фреймворка, извлеките его вместе с SystemUI.apk через консоль ADB. Вы можете сделать это с помощью команды:
  4. adb pull /system/framework/framework-res.apk (при необходимости измените путь и выполните ту же команду для SystemUI.apk)
  5. Вы найдете извлеченные файлы в основной папке установки ADB на вашем компьютере.
  6. Теперь мы собираемся установить их в APKTool. Итак, в командной строке введите:
  7. Apktool, если так например apktool, если C: ADB framework-res.apk
  8. Повторите вышеуказанное для SystemUI.apk
  9. Теперь мы собираемся декомпилировать SystemUI.apk, поэтому введите в командное окно: apktool d SystemUI.apk
  10. Это распакует весь SystemUI.apk в несколько папок.

Редактирование значков и цветов пользовательского интерфейса

Итак, теперь вам нужно определить DPI вашего телефона, потому что вам нужны папки Системный интерфейс / res / вытяжка-hdpi, SystemUI / res / xhdpi и т. д. Вот как это работает:



  • ldpi (низкое) ~ 120 точек на дюйм
  • mdpi (средний) ~ 160 точек на дюйм
  • hdpi (высокое) ~ 240 точек на дюйм
  • xhdpi (сверхвысокое) ~ 320 точек на дюйм
  • xxhdpi (сверхвысокое) ~ 480 точек на дюйм
  • xxxhdpi (экстра-экстра-сверхвысокое) ~ 640 точек на дюйм

Итак, чтобы редактировать ресурсы SystemUI, вам нужно выяснить, к какой категории относится ваш экран.

Внутри папки вы увидите почти все файлы .png, используемые для вашего системного интерфейса - все, от значков панели уведомлений, значков панели быстрых настроек и т. Д. Фактические имена файлов могут варьироваться в зависимости от производителя, но AOSP- ПЗУ на основе обычно должны иметь файлы с такими именами:

  • Notification_panel_bg.9 ( фон в строке состояния)
  • ic_qs _ ####. png ( значки панели быстрых настроек)
  • stat_syst _ ####. png ( значки в строке состояния)

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

Важно: если вы столкнулись с файлами .9.png, не пытайтесь напрямую редактировать их в GIMP или Photoshop без предварительного обучения. Это файлы 9Patch .png, у которых есть видимые границы при редактировании изображений, но эти границы становятся невидимыми в пользовательском интерфейсе Android с помощью специальной техники ( Слишком долго объяснять), и есть специальный метод для управления ими. Вы должны использовать Инструмент Draw 9-Patch из Android Studio или узнайте, как правильно редактировать / создавать изображения 9Patch в Photoshop / GIMP.

Чтобы изменить фактический цвет фона самой панели быстрых настроек, вам нужно открыть /res/values/colors.xml и соответствующим образом отредактируйте строки. Строки должны быть прокомментированы с пояснениями или, по крайней мере, достаточно простыми для понимания соглашениями об именах. Вот почему я рекомендовал использовать эмулятор Android для предварительного просмотра и настройки по мере продвижения.

Редактирование цветов текста

Проверьте /res/layout/tw_statusbar.xml на наличие этих строк:

Цвет текста значка батареи ( если ваша батарея отображается в виде текста в процентах)

Цвет текста часов:

Проверьте /res/layout/tw_status_bar_expanded_header.xml на наличие этих строк:

Цвет выпадающих часов

Цвет даты

«@ Style / TextAppearance.StatusBar.Expanded.Date» android: textColor = «# something»

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

Перекомпиляция и установка модифицированного SystemUI.Apk

  1. В командном окне введите: apktool b SystemUI
  2. Это создаст новую папку .apk в Dist в папке декомпилированного APK. Так что загляни в / systemUI / dist для нового файла SystemUI.apk.
  3. Теперь вам нужно использовать что-то вроде 7-Zip, чтобы скопировать и заменить папку META-INF и AndroidManifest.XML из оригинальный APK в новый APK, затем снова перекомпилируйте.
  4. Теперь вы можете прошить новый SystemUI.apk на свое устройство.

Удачного моддинга!

5 минут на чтение