Чи можу я отримати файл .apk встановленого додатка?


9

Я розгорнув свої програми .apk-файл на пристрої Qualcomm. Тепер через мою невдачу в мене вкрали мій ноутбук, на якому було розроблено цей додаток. Тому у мене немає свого коду додатка. Однак у мене є пристрій, на якому я раніше встановлював свій додаток.

Отже, моє запитання: чи можу я отримати файл програми .apk з цього пристрою? якщо так, то скажіть, будь ласка, як це зробити.

Будь-яка допомога помітна.

Спасибі, Гаурав

Відповіді:


10

Він повинен розташовуватися за адресою /data/app/. Ви можете отримати доступ до цього безпосередньо, якщо у вас є root. Якщо ні, вам доведеться скористатися adb pull. Наприклад:

adb pull /data/app/myapp.apk C: \ backup \ myapp.apk

Більше інформації про adb: http://developer.android.com/guide/developing/tools/adb.html


4

Якщо ви знаєте встановлене ім’я файлу 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нічого не повертає, на жаль.
Матвій читайте

@Matthew ... дивно, я моделюю захищений випадок і бачу, що більшість файлів у proc мають нульовий розмір, але читаються. Перш ніж я лише перевірив, чи будуть вони читати дозволи. Можливо, це робиться шляхом скасування їх, а не дозволів, щоб / proc засоби читання не отримували постійний потік помилок доступу. Ну добре ... здогад про встановлений варіант назви apk може бути найкращим.
Кріс Страттон

Моє ім’я файлу apk було абсолютно божевільним і нездійсненним, але за допомогою пакунків.xml працювало, щоб з’ясувати справжнє ім’я. :)
paleozogt
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.