手机开启全局调试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插件相关推荐

  1. Android 手机开启全局调试xposed插件

    手机开启全局调试ro.debuggable = 1 一般方法就是重刷boot.img ,大部分手机都比较困难. 还有就是命令临时修改,重启手机失效的. 还有magisk 刷的 今天给介绍一个xpose ...

  2. 小刚的Android研究笔记~在未开启USB调试的Android手机绕过锁屏密码

    今天回到家,老爸的小米手机3因为触摸屏失灵导致屏幕自己乱点,手机设置了解锁图案因此被锁死120分钟,而且即使等过去也因为触屏故障无法正确输入,会再次锁120分钟.这让我很头疼,因为老爸手机上因为安全需 ...

  3. Android判断是否已经开启开发者调试模式以及引导用户去开启相应设置

    大家都是有经验的开发人员,直接撸码: 判断当前是否已经开启开发者调试模式: boolean enableAdb = (Settings.Secure.getInt(getContentResolver ...

  4. 为 Android 8.0 强制开启全局圆形图标规范

    原文地址:https://sspai.com/post/41011 看到标题,很多人也许会问:引入了 自适应图标规范 后,在 Android 8.0 上我们已经可以通过一些第三方 Launcher(比 ...

  5. 小米3手机开启root权限+xposed框架安装(亲测,小米系列均可参考)

    小米手机的系统默认版本都是稳定版的,想要开启root权限就要先把系统刷成开发版,一般刷机有卡刷和线刷两种方式: 卡刷是通过下载刷机包,手动操作系统升级: 线刷是利用线刷工具,通过可视的操作界面进行刷机 ...

  6. Android开发-安卓手机真机调试配置教程(以小米/红米手机为例)

    打开手机的设置,点击我的设备. 进入全部参数信息. 下拉找到MIUI版本,多次连续点击,直到进入开发者模式,弹出如图提示. 在设置最上方的搜索框中搜索 开发者选项 ,点击进入开发者选项. 下拉找到&q ...

  7. letvx500版本android,乐视 LetvX500 开启USB调试模式

    我们要将乐视 LetvX500与电脑进行连接,就必须要打开乐视 LetvX500系统的调试模式,不同的系统版本打开调试模式的方法有所不同,在这里我们就谈谈乐视 LetvX500各种系统版本打开USB调 ...

  8. 魅蓝3 官方android系统,魅蓝3 开启USB调试模式

    我们要将魅蓝3与电脑进行连接,就必须要打开魅蓝3系统的调试模式,不同的系统版本打开调试模式的方法有所不同,在这里我们就谈谈魅蓝3各种系统版本打开USB调试模式的方法. 1.针对Android 2.1- ...

  9. 安卓虚拟键盘_安卓手机开启全局手势导航的方法,拯救老设备

    上古时候,手机屏幕很小, 都是带物理键盘的,按键非常皮实. 那时候人们在手机键盘上较劲, 为了输入更精准方便, 高端商务手机还加入了全键盘. 后来随着iPhone引领的触控屏技术的发展 手机屏幕越来越 ...

最新文章

  1. MySQL查询结果复制到新表(更新、插入)
  2. 《分布式操作系统》知识点(29~34)五
  3. 如何让 Mybatis 自动生成代码
  4. 9 HTML5之表单
  5. 聊一聊ThreadLocal
  6. java 通用方法_java – 类型的通用方法
  7. 了解Spring Web应用程序体系结构:经典方法
  8. 信息学奥赛一本通(1169:大整数减法)
  9. 微信iOS 7.0.5版本终于上线:新功能好方便!
  10. 黑客利用智能灯泡窃取用户数据!
  11. 动手学深度学习Pytorch Task05
  12. 学习前端的阶段性总结
  13. ps修改证件照的底色
  14. mysql按月创建分表_MySQL之按月拆分主表并按月分表写入数据提高数据查询速度...
  15. 美国服务器电影网站版权问题,为什么说选择美国服务器做电影网站比较好
  16. 常见英文语法错误案例分享
  17. docker-compose安装kafka
  18. Linux上音频转换工具mpg123
  19. Scikit-Learn 中文文档】数据集加载工具 - 用户指南 | ApacheCN
  20. Erdaicms旅游网站程序微信和手机端分销系统正式上线发布啦

热门文章

  1. 随时牵手 不要随意分手[转帖]
  2. 洞悉旅居新市场,木莲庄酒店集团开拓酒店多元新玩法
  3. java实现数组的奇偶数互换
  4. AM5728 uboot 执行流程
  5. Windows快捷键大全(2020年版)
  6. 图片优化之Base64解决方案
  7. warning: variable ‘a‘ set but not used [-Wunused-but-set-variable]
  8. 数三退一问题||拉手成圈出圈问题
  9. AI产业链的划分,主要可分为基础层、技术层和应用层
  10. 艾司博讯:拼多多直通车自动调价要不要开启