Якщо ви знаєте встановлене ім’я файлу apk (який на деяких пристроях може бути myapp-1.apk або myapp-2.apk, а не просто myapp.apk), ви можете безпосередньо отримати доступ до цього, як звичайний користувач, включаючи один adb, як на захищеному пристрої, тож ви повинні мати можливість adb тягнути його. Але якщо ви не знаєте встановленого імені apk, ви не можете переглядати каталог / data / app, не використовуючи root або help_system.
Можливо, варто лише здогадатися про встановлене ім’я - спробуйте його просто, спробуйте з -1.apk та -2.apk тощо.
Можливо, є й інший спосіб: я вважаю, що наступне буде працювати на захищеному пристрої, але на даний момент у нього немає такого, щоб перевірити його.
EDIT: Нова ідея визначення точного імені файлу APK
1) adb pull /data/system/packages.xml
2) Перегляньте його для програми codePath програми
3) adb тягнути що
EDIT: Що стосується старої ідеї, поданої нижче, Метью виявив, що хоча файли, що перебувають під процесом / proc, мають доступ до захисту на захищеному пристрої, вони порожні, коли їх читає непривілейований uid, відмінний від власника. Тож це не спрацює.
1) Запускайте додаток. Вам також знадобиться машина з адб.
2) тип
adb shell ps
і шукайте рядок із назвою вашого додатка:
app_1 11959 907 112984 27580 ffffffff afd0c5bc S com.clevername.myapp
3) візьміть номер у другому стовпці, який є ідентифікатором процесу, і перегляньте його карту віртуальної пам’яті, в цьому випадку я б ввів
adb shell cat /proc/11959/maps
і шукайте рядок, де він відобразив свій власний файл apk в пам'ять
43e9c000-43ea3000 r--s 001f4000 b3:06 15393 /data/app/com.clevername.myapp-1.apk
4) Це ім'я файлу, яке вам потрібно буде виконати
adb pull /data/app/com.clevername.myapp-1.apk .
Експертиза дозволів каталогів у / proc передбачає, що це повинно працювати для непривілейованого користувача, мої вибачення, якщо цього немає. Якщо ви знайомі з використанням "grep", ви можете використовувати це, щоб уникнути сканування виводу вручну.
Додаток: Я не дуже впевнений, що це за програма, встановлена на SD-картці.
adb shell cat /proc/####/maps
нічого не повертає, на жаль.