1. # 修改系统 ro.debuggable

    # ①. 首先尝试直接修改系统的 ro.debuggable ,原因很简单,修改系统的值,就不用针对单个 app 设置了,下面列出几种方法
    • # 方法一:注入 init 进程,修改内存中 ro.debuggable 的值,这个也是之前惯常的做法,通过大佬写的 mprop 工具可以修改内存中所有的属性值,只需要按照操作步骤, cmd 敲七八行即可,还有人出了一键式的 bat 脚本。下载工具 mprop : https://github.com/wpvsyou/mprop
      adb push mprop /data/local/tmp 	# 将下载的 mprop 放入 /data/local/tmp 当中
      adb shell
      su
      cd /data/local/tmp/
      chmod 777 mprop 	# 添加可执行权限
      ./mprop ro.debuggable 1	 # 修改 ro.debuggable 的值为 1
      getprop ro.debuggable	 # 查看 ro.debuggable 的值,此时应该返回 1
      adb kill-server	 # 重启 adb 进程

      此方法因为是修改内存中的值,所以重启会失效。

    • # 方法二:大佬的一键式脚本 (只支持 windows),下载链接:https://bbs.pediy.com/thread-223294.htm, 直接命令行执行 run.bat ,出现以下界面就 ok

      此方法因为是修改内存中的值,所以重启会失效。

    • # 方法三: magisk 提供的修改指令,现在大部分手机的 root 应该都会使用 magisk 实现,代码也不多,挺方便。
      adb shell #adb 进入命令行模式
      su #切换至超级用户
      magisk resetprop ro.debuggable 1
      stop
      start 		# 一定要通过该方式重启

      此方法因为是修改内存中的值,所以重启会失效。

    • # 方法四: MagiskHide Props Config 模块修改(永久有效), 要求 Magisk 版本在 19 以上,且安装了 Busybox 模块。关于 busybox 安装可以百度教程

      MagiskHide Props Config 下载链接:https://github.com/Magisk-Modules-Repo/MagiskHidePropsConf/releases ,不要下载最新版,最新版我没找到 ro.debuggable 的设置,大佬可以研究研究,我用的 5.4.1

      adb push MagiskHidePropsConf-v5.4.1.zip /sdcard/Download # 下载的 zip 推送到手机的下载目录下

      打开 magisk -> 模块 -> 从本地安装 -> 选择推送的 zip 包 -> 等待安装完成 -> 重启

      然后进入 adb shell 设置, su 开启 root 权限,输入 props

      输入菜单中是 Edit MagiskHide props 的序号,版本不同可能目录会不一样,然后进入二级目录,再输入 ro.debuggable 的序号,输入两次 y ,等待重启即可。

      Enter your desired option: 3		# 输入 3
      MagiskHide Props Config v5.4.1
      by Didgeridoohan @ XDA Developers
      =====================================
       MagiskHide props
       Select an option below:
      =====================================
      Change some of the sensitive props set by MagiskHide.
      1 - ro.debuggable
      2 - ro.secure
      3 - ro.build.type
      4 - ro.build.tags
      5 - ro.bootmode
      6 - ro.boot.mode
      a - Change all props
      b - Go back to main menu
      e - Exit
      Pick several options at once by
      separating inputs with a comma.
      Example: 1,3,4
      See the module readme or the
      support thread @ XDA for details.
      Enter your desired option: 1	# 根据上面菜单输入 1 
      MagiskHide Props Config v5.4.1
      by Didgeridoohan @ XDA Developers
      =====================================
       ro.debuggable
      =====================================
      Currently set to 0.
      You currently have the safe value set.
      Are you sure you want to change it to 1?
      Enter y(es), n(o) or e(xit): y	# 当前是 0,是否改成 1,输入 yes 或 y
      Working. Please wait...
      MagiskHide Props Config v5.4.1
      by Didgeridoohan @ XDA Developers
      =====================================
       Reboot - ro.debuggable
      =====================================
      Reboot for changes to take effect.
      Do you want to reboot now (y/n)?
      Enter y(es), n(o) or e(xit): y 	# 是否重启,输入 yes 或 y
      Rebooting...

      重启后进入 adb shell , 查看 ro.debuggable

      查看ro.debuggable值

      推荐此方法,重启依然有效

    • # 方法五:使用 xposed 插件, buildprop

      git 地址:https://github.com/jecelyin/buildprop (只有源码需要自己编译,或者下这个编译好的:度盘链接

      需要安装 xposed 框架(或者 edxp , lsp ),安装成功打开插件,按下图设置好且 xp 框架中启用即可。

      使用 xp 框架的可以使用这个插件

    • # 方法六:通过修改 boot.img ,然后重新刷入,比较折腾的一种,感兴趣的可以看原文章:https://bbs.pediy.com/thread-197334.htm

      不推荐,虽然也可以一劳永逸,但是比较折腾,刷机操作失误还容易变砖

    # ②. 修改 app 为可调试

    ​ 厂商出于安全的考虑,发行版的 App 都会将 debuggable 设置为 false , 所以要修改为 true ,才可以调试。因为并不推荐这种做法,所以只列一下流程

    • 反编译 app ,可以参考之前 apktool 的文章: Apktool 的安装及使用

    • 打开反编译的 app ,在 application 中添加 android:debuggable="true" ,然后保存

      添加debugable=true属性

    • 重打包 apk , 还是利用 apktool

    • 生成证书

      keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -validity 10000
      # -genkey	意味着执行的是生成数字证书操作,
      # -v	表示将生成证书的详细信息打印出来,显示在 dos 窗口中; 
      # -keystore debug.keystore 	表示生成的数字证书的文件名为 “debug.keystore”;
      # -alias androiddebugkey  	表示证书的别名为 “androiddebugkey”,可以与 Keystore 一样;
      # -keyalg RSA 	表示生成密钥文件所采用的算法为 RSA;
      # -validity 10000 	表示该数字证书的有效期为 10000 天,意味着 10000 天之后该证书将失效
    • 删除重打包 apk 的签名文件,文件名为 META-INF

    • apk 重签名,根据刚才的证书

      jarsigner -verbose -keystore debug.keystore -storepass android -keypass android -signedjar sign.apk  temp.apk androiddebugkey
      # -verbose	显示出签名详细信息
      # -keystore	 debug.keystore 签名证书文件。
      # -storepass 证书口令,生成证书时填的 
      #-keypass 证书密码,生成证书填的
      # -signedjar signed.apk	表示签名后生成的 APK 名称,
      # temp.apk 表示未签名的 APK,
      # androiddebugkey 表示 debug.keystore 的别名
    • 安装重签名的 sign.apk ,就可以调试了

    你想研究 App 的通讯协议和加密字段,这已经足够让人焦头烂额,你可能会遇到繁杂的代码、诡异的反抓包, So 层的加密…… 而如果你对 App 进行重打包,那就要面对 App 额外的保护措施,比如重打包失败,签名验证等。因为重打包这个操作主要是开发盗版 App 和破解版 App 做的事,这对厂商来说更加难以忍受,只是修改一个 debuggable 字段就要揽上这么多事,显然吃力不讨好。

    参考文章:

    https://bbs.pediy.com/thread-197334.htm

    https://www.cnblogs.com/lsgxeva/p/13490827.html

    https://blog.csdn.net/jinmie0193/article/details/111355867

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

渣渣文 微信支付

微信支付

渣渣文 支付宝

支付宝