1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/Dearms-TPS

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

TPS: использование процесса

Обзор

TOS Reverse Compilation Adaptation System (далее — TPS) — это инструмент, который позволяет адаптировать операционную систему на основе исходного кода (Google Nexus 5, далее — N5) к другим моделям. Основная идея заключается в сравнении кода N5 с исходным кодом Google Android (AOSP), а затем применении изменений к коду обратной компиляции целевой модели для завершения процесса обратной компиляции.

Команды

  • make create: создание рабочей директории для адаптации целевой модели;
  • make config: общая конфигурация целевой модели;
  • make prepare: получение файлов smali для обратной компиляции;
  • make patch: применение патчей к файлам smali;
  • make javapatch: применение патчей на основе Java-кода к сложным логическим файлам smali;
  • make repack: объединение и перепаковка файлов smali на уровне методов в jar-пакет;
  • make package: генерация окончательного пакета OTA для перепрошивки;
  • make sysnpatch: применяется после обновления фреймворка, не изменяет изменения разработчика в исходных файлах smali;
  • make incpatch: применяет патчи новой версии TOS к уже адаптированной целевой модели TOS;
  • make incpackage: повторно упаковывает предыдущую версию патча для новой версии TOS;
  • make clean: выполняет очистку.

Требования к среде

Linux: (демонстрация среды Ubuntu 14.04) Получение последней версии инструмента TPS:

git clone https://github.com/TOSPlus/TPS

Практика

  • Импорт переменных среды
. build/envsetup.sh
  • Конфигурация среды N900

В корневом каталоге TPS выполните ещё раз:

	make create brand=Samsung device=N900 (имя модели, которую нужно адаптировать).

Поместите пакет N900.zip, предназначенный для адаптации модели, в каталог device/N900 и переименуйте или свяжите его как ota.zip. Пакет должен содержать каталог system и файл boot.img. Примечание: Для пакета N900 ota требуется оптимизированный пакет odex оригинального загрузочного образа. При создании каталога модели TPS создаст файл N900.zip в корне каталога модели. Этот файл содержит только каталог system. В корневой каталог этого файла необходимо поместить файл boot.img оригинального загрузочного образа N900. Этот пакет можно использовать в качестве пакета ota.

~/TESTROM/TPS/devices/N900 $ ls
boot/   config/  Makefile*   ota/   N900.zip*    override/  package/    patch/  progress/   tools/

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

UNPACK_BOOTIMG_TOOL := defalut
PACK_BOOTIMG_TOOL := defalut
  • Выполнение команды make prepare

Перейдите в каталог devices/N900 и выполните команду make prepare. На этом подготовка каталога N900 завершена.

  • Выполнение команды make patch

Это основной шаг процесса адаптации TPS. Здесь выполняется вся работа по вставке патчей.

  • Выполнение команды make repack

На этом этапе объединённые файлы методов повторно объединяются в один полный файл smali и упаковываются. Обратите внимание: после выполнения команды make repack необходимо перейти в каталог config в каталоге N900/config, чтобы подготовить пакет.

~/TESTROM/TPS/devices/N900/config $ ls
build.prop*     file_record/    misc_info.txt*      remove_files.list*  file_contexts*   keep_files.list* recovery.fstab*    tos_system_files.ignore*

Перейдите в каталог devices/N900/config и создайте файл конфигурации misc_info.txt, recovery.fstab, build.prop, remove_files.list и tos_system_files.ignore.

Шаблон misc_info.txt (основное назначение — настройка размера нескольких разделов):

recovery_api_version=3
fstab_version=2
use_set_metadata=1
multistage_support=1
update_rename_support=1
fs_type=ext4
blocksize=4096
boot_size=11534336
recovery_size=11534336
system_size=2254438400
userdata_size=12738101248
cache_size=6081744080
selinux_fc=META/file_contexts

Файл recovery.fstab можно извлечь из рабочего образа восстановления целевого устройства. Путь — /etc/recovery.fstab.

В файле build.prop заполните пустые поля шаблона, например:

ro.qrom.beaconkey=0M000V5PH01B6QQD
ro.qrom.product.device=ja3g
ro.qrom.product.device.brand=samsung
ro.qrom.build.brand=tos
ro.qrom.build.os=android4.4.2
ro.qrom.otapath=/data/media/0
qrom_disposeIcon_enable=1
qrom_permission_enable=1

Список remove_files.list представляет собой список исключений. Все элементы списка являются относительными путями, например:

app/PackageInstaller.apk
priv-app/SecMms.apk
app/RootPA.apk
lib/xxx.so
fonts/xxxx.ttf
...

tos_system_files.ignore — это список файлов TOS, которые следует игнорировать при копировании. В настоящее время из-за проблемы с внедрением media необходимо настроить следующие две позиции:

bin/mediaserver_injector
lib/libmedia_jni.so
  • Выполнение команды make package

После завершения настройки перейдите в каталог N900, выполните команду make package, чтобы создать пакет OTA. Выполнив команду make package в каталоге устройств/N900, вы получите пакет в каталоге devices/N900/package/.

~/TESTROM/TPS/devices/N900/config $ ls
N900.zip*    smali/    target_files/    target_files.zip    

Комментарии ( 0 )

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

Введение

Описание недоступно Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/Dearms-TPS.git
git@api.gitlife.ru:oschina-mirror/Dearms-TPS.git
oschina-mirror
Dearms-TPS
Dearms-TPS
master