从Android手机中取出已安装的app包,导出apk

Published on with 0 views and 0 comments

假设有这样一个场景,A君看到你手机上一个实用APP,想要安装到自己手机上,限于下载浪费流量,那么最简单的就是从你的手机中拷贝一个,不过你安装过的apk包已经删除了,不能直接复制出来进行安装。

办法来了,就是从手机中制造一个出来或者说找他的备份版。

导出步骤:

  1. 找到应用的包名
$ adb shell pm list package

输出结果:

package:com.xiaomi.miui.screenrecorder

package:com.android.providers.telephony

package:com.miui.powerkeeper

package:com.android.providers.calendar

package:com.ximi.vipaccount

package:com.android.providers.media

package:com.milink.service

package:com.securespaces.android.sscm.service

package:com.ximi.account

package:com.game.play.gogogo

package:com.sohu.inputmethod.sogou
  1. 找到应用备份包的位置,比如要找com.game.play.gogogo
$ adb shell pm path com.game.play.gogogo

输出结果:

package:/data/app/com.game.play.gogogo-1/base.apk
  1. 提取安装包
$ adb pull /data/app/com.game.play.gogogo-1/base.apk

执行结果:

/data/app/com.game.play.gogogo-1/base.apk: 1 file pulled. 3.9 MB/s (57503627 bytes in 14.164s)

至此,提取成功,可以发送/复制到手机上进行安装了。

附加:

ROOT下的手机就更好提取了。

执行命令:

$ adb shell

shell@android:/ $ su

shell@android:/ # cd data/app

shell@android:/data/app # ls

com.android.camera-2.apk

com.sohu.inputmethod.sogou-2.apk

com.game.play.gogogo-1.apk

那么直接采用上边第三步提取,再安装即可。

当然新版本的路径有了稍许变化,如下:

/data/app/com.game.play.gogogo-1/base.apk (变成了包下的base.apk)

其他搜索命令,仅供参考

$ find -name 名称.apk
说你懂得生之微末,我便做了这壮大与你看,你说再热闹也终需离散,我便做了这一辈子与你看,你说冷暖自知,我便做了这冬花夏雪与你看,你说恋恋旧日好时光,我便做了这描金绣凤的浮世绘与你看。你说应愁高处不胜寒,我便拱手河山,讨你欢。