xposed android debug,Android 手机开启全局调试xposed插件
手机开启全局调试ro.debuggable = 1 一般方法就是重刷boot.img ,大部分手机都比较困难。
还有就是命令临时修改,重启手机失效的。
还有magisk 刷的
今天给介绍一个xposed插件来实现 手机的全局调试
原理,反正是frame java层,管他什么hook就行。
再Zygote fork进程之前hook 修改runtimeFlags ,打开全局调试就可以。具体hook点查找思路,后续整理下发出来。
先说下,hook点为 frameworks/base/core/java/android/os/Process.java 的start方法,第五个参数处理下即可。
public static final ProcessStartResult start(final String processClass,
final String niceName,
int uid, int gid, int[] gids,
int runtimeFlags, int mountExternal,
int targetSdkVersion,
String seInfo,
String abi,
String instructionSet,
String appDataDir,
String invokeWith,
String[] zygoteArgs) {
return zygoteProcess.start(processClass, niceName, uid, gid, gids,
runtimeFlags, mountExternal, targetSdkVersion, seInfo,
abi, instructionSet, appDataDir, invokeWith, zygoteArgs);
}
修改flag,打开当前进程的调试。
if ((runtimeFlags & 1) == 0) {
// 增加开启Android调试选项的标志
flags |= 1;
}
这样,借助xposed,在initZygote 时候hook修改,就完成手机的每一个进程的 调试。
安装好插件,打开重启生效。
整体代码
package com.spc.xdebug;
import android.util.Log;
import android.os.Process;
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.IXposedHookZygoteInit;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage;
public class XDebugable implements IXposedHookLoadPackage, IXposedHookZygoteInit {
private static final int DEBUG_ENABLE_DEBUGGER = 0x1;
private XC_MethodHook debugAppsHook = new XC_MethodHook() {
@Override
protected void beforeHookedMethod(MethodHookParam param)
throws Throwable {
XposedBridge.log("-- beforeHookedMethod :" + param.args[1]);
int id = 5;
int flags = (Integer) param.args[id];
// 修改类android.os.Process的start函数的第6个传入参数
if ((flags & DEBUG_ENABLE_DEBUGGER) == 0) {
// 增加开启Android调试选项的标志
flags |= DEBUG_ENABLE_DEBUGGER;
}
param.args[id] = flags;
if (BuildConfig.DEBUG) {
XposedBridge.log("-- app debugable flags to 1 :" + param.args[1]);
}
}
};
@Override
public void handleLoadPackage(final XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable {
}
// 实现的接口IXposedHookZygoteInit的函数
@Override
public void initZygote(final IXposedHookZygoteInit.StartupParam startupParam) throws Throwable {
// /frameworks/base/core/java/android/os/Process.java
// Hook类android.os.Process的start函数
Log.e("hook ", "initZygote");
XposedBridge.hookAllMethods(Process.class, "start", debugAppsHook);
}
}
注册下此类为xposed模块入口就可以了。
xposed android debug,Android 手机开启全局调试xposed插件相关推荐
- Android 手机开启全局调试xposed插件
手机开启全局调试ro.debuggable = 1 一般方法就是重刷boot.img ,大部分手机都比较困难. 还有就是命令临时修改,重启手机失效的. 还有magisk 刷的 今天给介绍一个xpose ...
- 小刚的Android研究笔记~在未开启USB调试的Android手机绕过锁屏密码
今天回到家,老爸的小米手机3因为触摸屏失灵导致屏幕自己乱点,手机设置了解锁图案因此被锁死120分钟,而且即使等过去也因为触屏故障无法正确输入,会再次锁120分钟.这让我很头疼,因为老爸手机上因为安全需 ...
- Android判断是否已经开启开发者调试模式以及引导用户去开启相应设置
大家都是有经验的开发人员,直接撸码: 判断当前是否已经开启开发者调试模式: boolean enableAdb = (Settings.Secure.getInt(getContentResolver ...
- 为 Android 8.0 强制开启全局圆形图标规范
原文地址:https://sspai.com/post/41011 看到标题,很多人也许会问:引入了 自适应图标规范 后,在 Android 8.0 上我们已经可以通过一些第三方 Launcher(比 ...
- 小米3手机开启root权限+xposed框架安装(亲测,小米系列均可参考)
小米手机的系统默认版本都是稳定版的,想要开启root权限就要先把系统刷成开发版,一般刷机有卡刷和线刷两种方式: 卡刷是通过下载刷机包,手动操作系统升级: 线刷是利用线刷工具,通过可视的操作界面进行刷机 ...
- Android开发-安卓手机真机调试配置教程(以小米/红米手机为例)
打开手机的设置,点击我的设备. 进入全部参数信息. 下拉找到MIUI版本,多次连续点击,直到进入开发者模式,弹出如图提示. 在设置最上方的搜索框中搜索 开发者选项 ,点击进入开发者选项. 下拉找到&q ...
- letvx500版本android,乐视 LetvX500 开启USB调试模式
我们要将乐视 LetvX500与电脑进行连接,就必须要打开乐视 LetvX500系统的调试模式,不同的系统版本打开调试模式的方法有所不同,在这里我们就谈谈乐视 LetvX500各种系统版本打开USB调 ...
- 魅蓝3 官方android系统,魅蓝3 开启USB调试模式
我们要将魅蓝3与电脑进行连接,就必须要打开魅蓝3系统的调试模式,不同的系统版本打开调试模式的方法有所不同,在这里我们就谈谈魅蓝3各种系统版本打开USB调试模式的方法. 1.针对Android 2.1- ...
- 安卓虚拟键盘_安卓手机开启全局手势导航的方法,拯救老设备
上古时候,手机屏幕很小, 都是带物理键盘的,按键非常皮实. 那时候人们在手机键盘上较劲, 为了输入更精准方便, 高端商务手机还加入了全键盘. 后来随着iPhone引领的触控屏技术的发展 手机屏幕越来越 ...
最新文章
- MySQL查询结果复制到新表(更新、插入)
- 《分布式操作系统》知识点(29~34)五
- 如何让 Mybatis 自动生成代码
- 9 HTML5之表单
- 聊一聊ThreadLocal
- java 通用方法_java – 类型的通用方法
- 了解Spring Web应用程序体系结构:经典方法
- 信息学奥赛一本通(1169:大整数减法)
- 微信iOS 7.0.5版本终于上线:新功能好方便!
- 黑客利用智能灯泡窃取用户数据!
- 动手学深度学习Pytorch Task05
- 学习前端的阶段性总结
- ps修改证件照的底色
- mysql按月创建分表_MySQL之按月拆分主表并按月分表写入数据提高数据查询速度...
- 美国服务器电影网站版权问题,为什么说选择美国服务器做电影网站比较好
- 常见英文语法错误案例分享
- docker-compose安装kafka
- Linux上音频转换工具mpg123
- Scikit-Learn 中文文档】数据集加载工具 - 用户指南 | ApacheCN
- Erdaicms旅游网站程序微信和手机端分销系统正式上线发布啦
热门文章
- 随时牵手 不要随意分手[转帖]
- 洞悉旅居新市场,木莲庄酒店集团开拓酒店多元新玩法
- java实现数组的奇偶数互换
- AM5728 uboot 执行流程
- Windows快捷键大全(2020年版)
- 图片优化之Base64解决方案
- warning: variable ‘a‘ set but not used [-Wunused-but-set-variable]
- 数三退一问题||拉手成圈出圈问题
- AI产业链的划分,主要可分为基础层、技术层和应用层
- 艾司博讯:拼多多直通车自动调价要不要开启