未Root安卓设备反编译framework.jar获取adb命令编号步骤
未Root设备获取package服务调用编号的详细步骤
针对vivo等品牌预装软件无法用常规ADB卸载/禁用的情况,要获取adb shell service call package [编号]里的对应编号,可按以下步骤操作(全程无需Root):
1. 准备必要工具
- 电脑安装ADB工具包:下载对应你电脑系统的ADB压缩包,解压到任意文件夹,记住该路径
- 安装Java运行环境(JRE):反编译工具依赖Java,直接下载对应版本安装即可
- 反编译工具选jadx:图形界面操作简单,下载解压后就能直接用
2. 用ADB备份系统framework文件
未Root设备无法直接提取系统内的framework.jar,需通过备份方式获取:
- 开启手机开发者选项:进入「设置」→「关于手机」,连续点击5-7次「版本号」,直到提示开启开发者模式;返回设置主界面,找到「开发者选项」并打开「USB调试」
- 用USB线连接手机与电脑,在电脑打开命令提示符(Windows)或终端(Mac/Linux),输入
cd [ADB工具所在文件夹路径]切换到ADB目录 - 执行备份命令:
adb backup -noapk com.android.framework - 手机弹出备份确认窗口,不要设置密码,直接点击「备份我的数据」,备份完成后电脑会生成
backup.ab文件
3. 从备份文件提取framework.jar
- 下载abe.jar工具(Java版备份解压工具),放到与
backup.ab同一文件夹 - 在命令提示符/终端执行:
java -jar abe.jar unpack backup.ab backup.tar,将.ab格式备份转为.tar压缩包 - 解压
backup.tar,在解压后的文件中找到system/framework/framework.jar,单独复制该文件
4. 反编译查找方法编号
- 打开jadx工具,点击「File」→「Open」,选中刚才复制的framework.jar
- 在左侧搜索框输入
IPackageManager,找到该接口类 - 展开接口方法列表,找到名为
setApplicationEnabledSetting的方法(参数为字符串类型包名、两个int类型参数,与目标命令参数对应) - 数这个方法在接口方法列表里的位置(从1开始计数),这个数字就是你需要的编号(比如示例中的134)
5. 验证命令
将编号替换到命令中,比如要禁用com.vivo.hiboard,执行:adb shell service call package [你的编号] s16 com.vivo.hiboard i32 0 i32 0,执行后去手机「设置」→「应用与权限」→「应用管理」查看对应软件是否已被禁用
内容的提问来源于stack exchange,提问作者rsh
相关产品推荐
相关产品推荐

