博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hornor8改user模式为debug模式
阅读量:5077 次
发布时间:2019-06-12

本文共 2532 字,大约阅读时间需要 8 分钟。

在学习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,具体的刷机包为

依赖的工具:

Linux环境:

unpackbootimg 解包

mkbootimg        打包

clone  https://github.com/huaixzk/unpackbootimg 执行make得到以上两个命令

具体步骤如下:

 

sain@Linux ~/ftp $ mkdir boot21. 解包boot.imgsain@Linux ~/ftp $ ./unpackbootimg -i boot.img  -o boot2BOARD_KERNEL_CMDLINE loglevel=4 page_tracker=on slub_min_objects=12 unmovable_isolate1=2:192M,3:224M,4:256M androidboot.selinux=enforcingBOARD_KERNEL_BASE 00478000BOARD_NAME BOARD_PAGE_SIZE 2048BOARD_HASH_TYPE unknownBOARD_KERNEL_OFFSET 00008000BOARD_RAMDISK_OFFSET 07b88000BOARD_SECOND_OFFSET 00e88000BOARD_TAGS_OFFSET 07588000BOARD_OS_VERSION 7.0.0BOARD_OS_PATCH_LEVEL 2018-012. 继续解包boot.img-ramdisk.gzsain@Linux ~/ftp $ cd boot2sain@Linux ~/ftp/boot2 $ mkdir ramdisksain@Linux ~/ftp/boot2 $ cd ramdisk/sain@Linux ~/ftp/boot2/ramdisk $ gzip -dc ../boot.img-ramdisk.gz | cpio -i24153 blocks3.编辑 default.prop 并保存4. 重新生成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.gz5. 重新生成boot.imgcd ..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 2048 --base 00478000  --kernel_offset 00008000 --ramdisk_offset 07b88000 --second_offset 00e88000 --tags_offset 07588000 --os_version 7.0.0 --os_patch_level 2018-01 --output ../aosp/share/boot.img6. 刷机fastboot  flash boot  boot.imgfastboot 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 

 

转载于:https://www.cnblogs.com/hixin/p/9280799.html

你可能感兴趣的文章
图片保存到本机(链接)
查看>>
python读写文件write和flush
查看>>
extjs中model的HasMany和belongTo读取xml数据的用法
查看>>
linux C访问mysql 基础
查看>>
LeetCode N-Queens II
查看>>
JSP作业3-金字塔
查看>>
Generate BKS File( Bouncy Castle KeyStore)
查看>>
obdg反汇编破解crackme
查看>>
Python作业1 登录程序
查看>>
js弹出模态与非模态页面
查看>>
POJ - 3090 gcd水题
查看>>
第四讲 深入介绍信号与槽
查看>>
.gitignore梳理
查看>>
Lucene/Solr搜索引擎开发笔记 - 写作方向调整
查看>>
JavaScript 数据类型小结
查看>>
-webkit-overflow-scrolling:touch iosBug
查看>>
HDU2028:Lowest Common Multiple Plus
查看>>
辞树的QAQ水题(字符串统计,思维)
查看>>
python自动化之路 day5-1 paramiko模块
查看>>
安全证书的问题
查看>>