如何從Android設備獲取apk文件? 或者如何將apk文件從設備傳輸到系統? android
如上所述,您可使用adb中的pull命令獲取apk。 shell
因爲您正在談論已安裝的應用程序,所以請繼續查看Android文件系統的/ data / app目錄。 您會在其中找到APK。 瀏覽器
而後使用adb命令-adb pull /data/data/appname.apk app
我已經看到許多解決此問題的方法,要麼您必須紮根手機,要麼必須安裝應用程序。 而後通過大量的搜索,我獲得了針對非root / root用戶的電話的解決方案。 google
列出您到目前爲止得到的應用程序。 加密
adb shell pm list packages
而後您能夠選擇一個應用程序,例如twitter spa
adb backup -apk com.twitter.android
這裏重要的是不要設置用於加密備份的密碼 code
這將建立一個名爲backup.ap的文件,可是您仍然沒法打開它。 爲此,您必須使用dd命令再次將其提取。 ip
dd if=backup.ab bs=24 skip=1 | openssl zlib -d > backup.tar
在此以後,您要作的就是提取tar內容並完成。 ssl
但願它對大家有用
這些建議對我都不起做用,由於Android會在包名稱後附加序列號以產生最終的APK文件名。 在較新的Android版本(Oreo和Pie)上,附加了不可預測的隨機字符串。 如下命令序列對非root用戶的設備有效 :
1)肯定應用程序的軟件包名稱,例如「 com.example.someapp」。 若是您已經知道軟件包名稱,請跳過此步驟。
adb shell pm list packages
瀏覽軟件包名稱列表,並嘗試在有問題的應用程序和軟件包名稱之間找到匹配項。 一般這很容易,可是請注意,程序包名稱可能與應用程序名稱徹底無關。 若是您沒法從包名稱列表中識別該應用,請嘗試使用瀏覽器在Google Play中找到該應用。 Google Play中應用程序的網址包含程序包名稱。
2)獲取所需軟件包的APK文件的完整路徑名。
adb shell pm path com.example.someapp
輸出看起來像
包:/data/app/com.example.someapp-2.apk
要麼
包:/data/app/com.example.someapp-nfFSVxn_CTafgra3Fr_rXQ == / base.apk
3)使用第2步中的完整路徑名,將APK文件從Android設備拉至開發框。
adb pull /data/app/com.example.someapp-2.apk path/to/desired/destination
我沒有使用代碼從移動設備中提取.apk文件,可是我一直在使用從移動設備中提取.apk文件的軟件,而我使用的軟件在下面帶有google play連接:
但願對您有幫助。
不須要root:
此代碼將得到名稱爲3rd party的包路徑,以便您輕鬆識別APK
adb shell pm list packages -f -3
輸出將是
包:/data/app/XX.XX.XX.apk=YY.YY.YY
如今,使用如下代碼提取該軟件包:
adb pull /data/app/XX.XX.XX.apk
若是您在C:>\\
cmd上方執行,那麼您將在那裏找到該程序包。