【Android】提取Android中已安裝app的apk
阿新 • • 發佈:2018-11-14
提取Android中已安裝的apk,這個需求很多時候都會遇到。比如從google play上安裝過apk後,如何提取出來給別人用?
本文1. 先介紹轉載的apk提取方法並 2. 驗證提取出來的apk和安裝之前的apk的一致性。
0x01原文:adb 取出安裝在手機中的 apk
場景:
朋友看見你 Android 手機中的遊戲或應用很好玩,也想裝一個此程式,但限於網路條件不能從網上下載。那麼最簡單的辦法就是直接從你手機中將此 apk 扣出來給他安裝上。
pm 命令
第一步,找到程式的包名
藉助 adb shell pm 命令,將安裝的所有應用包名列出來:
$ adb shell pm list packages package:android package:cn.wps.moffice package:com.android.backupconfirm package:com.android.bluetooth package:com.android.browser package:com.android.calculator2 package:com.android.camera package:com.android.certinstaller package:com.android.contacts
第二步,找到 apk 的位置
$ adb shell pm path com.tence01.mm
package:/data/app/com.tence01.mm-1.apk
第三步,pull 出來
$ adb pull /data/app/com.tence01.mm-1.apk ~/apks
2407 KB/s (25567735 bytes in 10.370s)
root 的手機會更好辦
$ adb shell
[email protected]:/ $ su
[email protected]:/ # cd data/app
[email protected]:/data/app # ls
com.android.update.dmp-2.apk
com.baidu.superservice-1.apk
com.tence01.mm-1.apk
com.tencent.mm-1.apk
或者直接搜尋你要的 apk:
[email protected]:/ # find -name *.apk
./udisk/我的下載/download/我的應用/aqgj_1365562277812.apk
0x02驗證
先通過adb install的apk,提取處來diff,發現和之前的apk是一致的: