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 模式运行时, ...
随机推荐
- 剑指offer四十二之和为S的两个数字
一.题目 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 二.思路 数列满足递增,设两个头尾两个指针i和j,若ai + ...
- WebBench压力测试工具
Webbench是有名的网站压力测试工具,它是由 Lionbridge公司(http://www.lionbridge.com)开发. Webbech能测试处在相同硬件上,不同服务的性能以及不同硬件上 ...
- 前端通信:ajax设计方案(一)---集成核心请求
报告,我要说话!xp被历史淘汰了,IE6 say goodbye了,太TM开心了,从此不要兼容IE6了,哈哈哈哈哈哈 报告,我要说话!IE这sb为啥不早点被杀掉呢,找工作听说要兼容IE,立马软了,唉唉 ...
- Chapter 3 Phenomenon——6
A low oath made me aware that someone was with me, and the voice was impossible not to recognize. 某人 ...
- Java性能调优:利用JMC进行性能分析
JMC, 即Java任务控制(Java Mission Control)是从Java7(7u40)和 Java8 的商业版本包括一项新的监控和控制特性. JMC 程序 (JDK_HOME\bin目录下 ...
- zabbix邮件内容乱码与邮件内容为附件解决办法
在zabbix的实际使用过程中,在收到邮件预警的时候,我们会发现邮件内容是乱码的,在手机端收到的是附件,而且附件下载后的文件类型是打不开的.这样我们不知道我们是哪个服务器的哪项服务出了问题,接下来我们 ...
- activiti 临时笔记mark
public class TenMinuteTutorial { public static void main(String[] args) { // Create Activiti process ...
- [codeup] 1943 进制转换
题目描述 将一个长度最多为30位数字的十进制非负整数转换为二进制数输出. 输入 多组数据,每行为一个长度不超过30位的十进制非负整数.(注意是10进制数字的个数可能有30个,而非30bits的整数) ...
- WPF Datagrid横向排列
<DataGrid.ItemsPanel> <ItemsPanelTemplate> <StackPanel Orientation="Horizontal&q ...
- (一)面向对象的javascript
javascript是一门典型的动态类语言 一:鸭式辨型(指导我们关注对象的行为,而不关注对象本身). var duck = { duckString: function(){ console.log ...