hornor8改user模式为debug模式
在学习Android软件安全的过程中,经常要用到Android的动态调试。但是呢,一般的Android应用在发布的时候都是发布版的不能直接被调试,为了能使Android应用能够支持调试就需要对Android应用进行解包以及打包加android:debuggable="true"属性处理,比较烦的是有时候一些Android应用加了对抗的处理,并不能顺利打包处理,这就纠结了。
@根据android的官方文档,如果要调试一个App里面的dex代码,必须满足以下两个条件中的任何一个:
1.App的AndroidManifest.xm中Application标签必选包含属性android:debuggable="true";
2./default.prop中ro.debuggable的值为1。
由于正常的软件发布时都不会把android:debuggable设置为true,所以要达成条件1)需要对app进行重新打包,这不仅每次分析一个App都重复操作,而且很多软件会对自身进行校验,重打包后执行会被检测到,所以想办法满足第2)个条件是个一劳永逸的办法,我实际使用的方法就是满足第二个条件。由于default.prop是保存在boot.img的ramdisk中,这部分每次重新启动都会重新从rom中加载,所以要到目的必须修改boot.img中的ramdisk并重新刷到设备中。我测试使用的设备为Hornor8,具体的刷机包为
https://cn.club.vmall.com/thread-15621449-1-1-4007.html
依赖的工具:
Linux环境:
unpackbootimg 解包
mkbootimg 打包
clone https://github.com/huaixzk/unpackbootimg 执行make得到以上两个命令
具体步骤如下:
sain@Linux ~/ftp $ mkdir boot2 . 解包boot.img
sain@Linux ~/ftp $ ./unpackbootimg -i boot.img -o boot2
BOARD_KERNEL_CMDLINE loglevel= page_tracker=on slub_min_objects= unmovable_isolate1=:192M,:224M,:256M androidboot.selinux=enforcing
BOARD_KERNEL_BASE
BOARD_NAME
BOARD_PAGE_SIZE
BOARD_HASH_TYPE unknown
BOARD_KERNEL_OFFSET
BOARD_RAMDISK_OFFSET 07b88000
BOARD_SECOND_OFFSET 00e88000
BOARD_TAGS_OFFSET
BOARD_OS_VERSION 7.0.
BOARD_OS_PATCH_LEVEL - . 继续解包boot.img-ramdisk.gz
sain@Linux ~/ftp $ cd boot2
sain@Linux ~/ftp/boot2 $ mkdir ramdisk
sain@Linux ~/ftp/boot2 $ cd ramdisk/
sain@Linux ~/ftp/boot2/ramdisk $ gzip -dc ../boot.img-ramdisk.gz | cpio -i
blocks
.
编辑 default.prop 并保存 . 重新生成boot.img-ramdisk.gz, 这里改了个名
cd ..
sain@Linux ~/ftp/boot2 $ /home/sain/aosp/a2h_dev_prd/out/host/linux-x86/bin/mkbootfs ramdisk | gzip > ramdisk-new.gz . 重新生成boot.img
cd ..
sain@Linux ~/ftp $ ./mkbootimg --kernel boot2/boot.img-zImage --ramdisk boot2/ramdisk-new.gz --cmdline "oglevel=4 page_tracker=on slub_min_objects=12 unmovable_isolate1=2:192M,3:224M,4:256M androidboot.selinux=permissive" --pagesize --base --kernel_offset --ramdisk_offset 07b88000 --second_offset 00e88000 --tags_offset --os_version 7.0. --os_patch_level - --output ../aosp/share/boot.img . 刷机
fastboot flash boot boot.img
fastboot reboot
default.prop需要修改两处
ro.secure=0
security.perf_harden=1
ro.adb.secure=1
ro.allow.mock.location=0
ro.debuggable=1
注意ro.adb.secure=1这里不要修改,保持默认, 因为我们并不是真正的userdebug模式
否则adb 认证谈框不出来, 就完全用不了adb
sudo adb root
error: device unauthorized.
This adbd's $ADB_VENDOR_KEYS is not set; try 'adb kill-server' if that seems wrong.
Otherwise check for a confirmation dialog on your device.
有机会再研究下如何root
hornor8改user模式为debug模式的更多相关文章
- Windows下Nexus 5 改user模式为debug模式
博客链接:http://blog.csdn.net/qq1084283172/article/details/52337241 在学习Android软件安全的过程中,经常要用到Android的动态调试 ...
- Ubuntu下修改Nexus 5的boot.img--改user模式为debug模式
博客地址:http://blog.csdn.net/qq1084283172/article/details/52422205 在学习Android逆向的时候,总会用到Android的调试模式.一般情 ...
- 手机改 user模式为debug模式
logcat 是Android中一个命令行工具,可用于监控手机应用程序的log信息.网上相关的教学很多,这里只想把自己折腾 2 部手机(一个是三星S4 I9500 港水,Android 5.01,一个 ...
- VS2013的Release模式 和 debug 模式
在有的情况下,我们可能不能直接利用Debug模式进行程序调试,那么如何在Release模式下进行程序调试呢? 一.将项目属性设置为Release,生成--->配置管理器: 二.按Alt+F7,弹 ...
- 【C++】Debug模式和Release模式的区别
VS中的程序有两种编译模式:Debug模式和Release模式. Debug通常称为调试版本,通过一系列编译选项的配合,编译结果通常包含调试信息,而且不做任何优化,以为开发人员提供强大的应用程序调试能 ...
- 以Debug模式启动JBoss
JBoss服务器的启动方法: 假设JBoss的安装目录为$JBOSS_HOME,Windows以及Linux环境下的Debug模式的启动方法分别为:Windows环境:找到Windows下的JBoss ...
- Intellij IDEA debug模式下项目启动慢/无法启动的事件解决过程记录
项目无法启动了 简单的介绍一下事件过程:周一的早上,收到前端同事抛过来的一个任务,说是一个接口无法正常返回数据,于是就让他把参数发过来,我想试着在本地重现一下并且将问题修复掉,这种情况肯定是要通过de ...
- cocoapod引入FLEX,debug模式正常,Release报错library not found for -lXXX
cocoapod引入FLEX,debug模式正常,Release报错library not found for -lXXX, 因为podfile是这么写的: pod 'FLEX', '~> 2. ...
- 引入 Tinker 之后如何在 Debug 模式下开启 Instant Run
在<Tinker + Bugly + Jenkins 爬坑之路>一文中讲了在接入 Tinker 之后,Jenkins 中的一些坑,由此,热修复算告一段落,但是,在直接 Run 模式运行时, ...
随机推荐
- (转) centos 7.0 nginx 1.7.9成功安装过程
centos 7.0根目录 的目录构成 [root@localhost /]# lsbin dev home lib64 mnt proc run srv tmp varboot etc lib me ...
- Win7 Eclipse调试Centos Hadoop2.2-Mapreduce(转)
一. 自己搭建开发环境 今天自己搭建了一套Centos5.3 + Hadoop2.2 + Hbase0.96.1.1的开发环境,Win7 Eclipse调试MapReduce成功.可能是版本比较高的原 ...
- HUE配置文件hue.ini 的database模块详解(包含qlite、mysql、 psql、和oracle)(图文详解)(分HA集群和非HA集群)
不多说,直接上干货! Hue配置文件里,提及到,提供有postgresql_psycopg2, mysql, sqlite3 or oracle. 注意:Hue本身用到的是sqlite3. 在哪里呢, ...
- linux安装unzip及使用
安装完linux ,发现没有UNZIP,没办法,重新安装. 1.获取unzip源码 sudo wget http://downloads.sourceforge.net/infozip/unzip55 ...
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(一):Kitty 系统介绍
在线演示 演示地址:http://139.196.87.48:9002/kitty 用户名:admin 密码:admin 温馨提示: 有在演示环境删除数据的童鞋们,如果可以的话,麻烦动动小指,右键头像 ...
- C++对象的内存布局以及虚函数表和虚基表
C++对象的内存布局以及虚函数表和虚基表 本文为整理文章, 参考: http://blog.csdn.net/haoel/article/details/3081328 http://blog.csd ...
- Nokogiri爬虫教程
Parsing HTML with Nokogiri http://ruby.bastardsbook.com/chapters/html-parsing/ Inspecting a Webpage' ...
- 【转】Js获取当前日期时间及其它操作
Js获取当前日期时间及其它操作 原文地址:http://www.cnblogs.com/carekee/articles/1678041.html var myDate = new Date();my ...
- c#与IronPython Clojure-clr的调用
一,python 安装ironpython http://ironpython.net/ 新建控制台程序,引入 IronPython,Microsoft.Scripting 新建xxx.py文件 va ...
- js 背景自动切换
//首页自动更换背景特效开始============================================ var curIndex = 0; //时间间隔(单位毫秒),每秒钟显示一张,数组 ...