#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
должно быть достаточно, так как тогда разрешения могут остаться прежними. Я думаю, вы правы, мне придется подробно ознакомиться с установщиком пакетов, мне просто было интересно, что никто не пробовал это раньше. Также ответ «Это невозможно, потому что …» был бы полезен, чтобы я не тратил слишком много ресурсов на анализ установщика пакетов.