Есть ли способ установить приложение для Android, скопировав файлы / изменив только файловую систему?

#android #linux #adb #root #dalvik

Вопрос:

Мне было интересно, есть ли способ установить приложение для Android, просто скопировав файлы и внеся несколько изменений в файловую систему?

Допустим, у нас есть Rooted Phone 1 и Rooted Phone 2 . Мы контролируем каждый их аспект (они укоренены, мы контролируем аппаратное обеспечение, …). Мы устанавливаем App X на Rooted Phone 1 . Какие шаги нам нужно предпринять, чтобы получить копию 1:1 App X on Rooted Phone 2 (без повторной установки приложения, например, через adb install )?

До сих пор я бы:

  • Копирование данных приложения из /data/data/lt;packagenamegt;
  • Скопируйте «установочные данные» приложения из /data/app/lt;packagenamegt;-lt;randomgt;

Но, конечно, этого будет недостаточно.

Что еще нам нужно сделать? Нужно ли нам заботиться о /data/dalvik-cache/ том , /data/system/packages.xml и /data/system/packages.list ?

Возможна ли вообще эта идея, которая у меня есть?

Дополнительный вопрос: Что меняется, когда используются оптимизированные исполняемые файлы Dalvik ( .odex )?

Комментарии:

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

2. Да, проблема с разрешениями / пользователями для песочницы, о которой я знаю. Но создания одного и того же пользователя / группы Rooted Phone 2 должно быть достаточно, так как тогда разрешения могут остаться прежними. Я думаю, вы правы, мне придется подробно ознакомиться с установщиком пакетов, мне просто было интересно, что никто не пробовал это раньше. Также ответ «Это невозможно, потому что …» был бы полезен, чтобы я не тратил слишком много ресурсов на анализ установщика пакетов.