2014-10-05 5 views
0

Есть ли способ для установленного приложения получить файл .apk другого? В настоящее время я пишу приложение для анализа, которое необходимо отправить .apk на удаленный сервер, который будет исследовать его. Я не уверен, что это вообще возможно.Получить .apk другим приложением

I не хочу получить файл .apk с adb, потому что это не поможет мне.

Thanks

+2

... для чего? Кажется, что действие ** пиратства **, ** украсть apks ** из пользовательских устройств! –

+0

Я же сказал вам: я хочу проанализировать онлайн-онлайн. Почему это должно быть пиратством? Я могу получить любой apk, подключив смартфон к компьютеру. Поэтому я задаюсь вопросом, возможно ли такое поведение «онлайн». – null

+0

Никто не хочет, чтобы хакер анализировал их ** apks **. –

ответ

2

Да, это можно сделать. Вот как это делается:

Во-первых, вы должны получить список всех установленных приложений. Это может быть сделано с помощью фрагмента кода из this SO question:

final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); 
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); 
final List pkgAppsList = getPackageManager().queryIntentActivities(mainIntent, 0); 

for (Object object : pkgAppsList) { 
    ResolveInfo info = (ResolveInfo) object; 
    File file =new File(info.activityInfo.applicationInfo.publicSourceDir); 
    // copy the .apk file to wherever 
} 

Это позволяет получить ссылку на файл для любого APK, установленной на устройстве. После того, как у вас есть файл, вы можете записать его на внешнее хранилище или загрузить его на сервер.

+0

Будет ли он копировать без разрешения root ??? Если да? Тогда как??? –

+1

@NadeemIqbal Да, он будет копироваться без привилегий root. Ознакомьтесь с руководством Android «Параметры хранилища» для получения дополнительной информации о том, как скопировать файлы на SD-карту. – bmat

+1

Я работаю. Чтобы выбрать конкретное приложение, вы все равно должны добавить оператор if: if (info.activityInfo.packageName.equals (myApp)) ' – null

 Смежные вопросы

  • Нет связанных вопросов^_^