1. 程式人生 > >【Android】如何提取Android中已安裝app的apk?

【Android】如何提取Android中已安裝app的apk?

提取Android中已安裝的apk,這個需求很多時候都會遇到。比如從google play上安裝過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
    she[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是一致的: