提取手机上的所有apk文件

提取手机上的所有已安装应用的apk文件

今天学习了一些dos的命令,又想到上次换手机重下软件特别麻烦,于是有了这个想法。

首先要知道几个基本的adb命令:
显示系统中全部设备: adb devices
列出手机装的所有app的包名: adb shell pm list packages
列出系统应用的所有包名: adb shell pm list packages -s
列出除了系统应用的第三方应用包名:adb shell pm list packages -3
输出apk路径:adb shell pm path
文件传输:adb pull/adb push

还有几个dos的命令
删除文件:del/f/s/q *.txt /s子目录,/f只读,/q不确认
逐行读取txt文件:for /f “delims=,” %i in (D:\下载\1.txt) do echo %i
字符串替换:(例如:set a=ppap set b=%a:a=p%

在测试过程中发现我不会列出的包名和apk路转成变量,于是我想到了把它们存为txt文件,等需要时再读取。以后会弄了回来把程序改一下。整个的分析过程:

1.将包名存为txt文件(我放在了d盘根目录)

adb shell pm list packages -s > D:\7uh5f34fx.txt
::adb shell pm list packages -s可以换成另外两个

2.按行读取这个文件

for /f "delims=," %%i in (D:\7uh5f34fx.txt) do echo %%i

3.对每行包名进行简单处理,比如把
package:com.baidu.netdisk 替换为 com.baidu.netdisk

set pgcom=package:com.baidu.netdisk
set com=%pgcom:package:=%

4.根据包名得到路径,并把路径存在txt里

adb shell pm path !com! > D:\20hf82v27d.txt

5.从txt里读取路径并把package:替换掉(同上)
6.把文件传入电脑,如

adb pull /system/app/OppoLFEHer/OppoLFEHer.apk D:\下载
::这里是存到了d盘的下载目录里

6.删掉多余的txt文件

del/q D:\7uh5f34fx.txt,D:\20hf82v27d.txt

把以上过程放入循环里就是:

@echo off
adb shell pm list packages -s > D:\7uh5f34fx.txt
setlocal ENABLEDELAYEDEXPANSION
set pgcom=1
for /f "delims=," %%i in (D:\7uh5f34fx.txt) do (
	set pgcom=%%i
	set com=!pgcom:package:=!
	adb shell pm path !com! > D:\20hf82v27d.txt
	for /f "delims=," %%i in (D:\20hf82v27d.txt) do (
		set pgdir=%%i
		set dir=!pgdir:package:=!
		)
	adb pull !dir! D:\下载
	)
del/q D:\7uh5f34fx.txt,D:\20hf82v27d.txt
pause

注意延迟环境变量扩展,有些地方的%变成了!
更新:

@echo off
chcp 65001
if exist %~dp0AndroidApp (del/q  %~dp0AndroidApp) else (md AndroidApp) 
adb shell pm list packages -3 > %~dp0AndroidApp\z1.txt
setlocal ENABLEDELAYEDEXPANSION
set pgcom=1
for /f "delims=: tokens=2" %%i in (%~dp0AndroidApp\z1.txt) do (
	set com=%%i
	adb shell pm path !com! > %~dp0AndroidApp\z2.txt
	for /f "delims=: tokens=2" %%l in (%~dp0AndroidApp\z2.txt) do (
		set dir=%%l
		)
	adb pull !dir! %~dp0AndroidApp
	::if exist %~dp0AndroidApp\base.apk (ren %~dp0AndroidApp\base.apk !com!.apk)
    if exist %~dp0AndroidApp\base.apk (
    	aapt dump badging %~dp0AndroidApp\base.apk > %~dp0AndroidApp\z3.txt
    	for /f "tokens=1,2 delims=:" %%l in (%~dp0AndroidApp\z3.txt) do (if %%l==application-label set name=%%m)
        set name=!name:'=!
        ren %~dp0AndroidApp\base.apk !name!.apk
    	echo !name!.apk已保存
	)
)
del/q %~dp0AndroidApp\*.txt
pause

先把手机与电脑用usb调试连接,再开启adb。把以上代码存为后缀为bat的文件,双击运行即可。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
梦幻西游是一款非常受欢迎的手机游戏,而APK拆包提取图片是指通过拆解游戏的安装包(APK文件),来提取其中的图片资源。 首先,我们需要了解APK文件的组成结构。APK文件实际上是一个压缩文件,可以用类似于WinRAR的软件进行解压。解压APK文件后,我们可以找到一系列的文件文件夹。 接下来,我们需要找到游戏内的图片资源文件夹。在梦幻西游的APK文件中,一般会有一个名为"assets"或"res"的文件夹,里面包含了游戏所使用的各种资源,包括图片、音频等文件。我们可以在这个文件夹中找到游戏中的图片资源。 然而,大部分APK文件中的资源文件都是经过特殊加密或打包处理的,无法直接查看。为了提取这些图片,我们还需要使用一些专门的工具。 有一些第三方工具或软件可以用来拆包提取APK文件中的图片。这些工具可以帮助我们解密、解包并提取APK文件中的图片资源。其中一些工具还提供了图形界面,使操作更加简单。 使用这些工具,用户可以选择提取整个APK文件中的图片资源,或者只提取其中的特定图片。提取后的图片将被保存到用户指定的位置,以供进一步使用。 需要注意的是,尽管我们可以提取游戏中的图片资源,但这并不意味着我们有权将这些图片用于商业用途或未经授权的目的。使用提取的图片资源时,应遵守相关的法律法规和游戏的使用条款。 总的来说,要提取梦幻西游APK文件中的图片,我们需要拆解APK文件,并使用一些专门的工具进行解密和提取提取来的图片资源可以用于个人学习或非商业用途。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值