aosp集成证书和过root检测

本章讲述aosp定制系统的两个用处

集成证书

我们安装charles证书的时候在安卓7以上是无法安装到系统目录的,需要借助movecert模块,当然这需要root,如果可以在刷系统的时候把证书集成到安卓系统里,那不就不用movecert模块了吗

导出charles根证书

安装openssl

网址:Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions

从这个目录cmd进去

openssl x509 -subject_hash_old -in 证书文件路径 执行这个命令

接着把证书由1.pem重命名成9a43b994.0 前面的数字是由上面计算得到的,而系统证书都是.0结尾的,所以重命名成9a43b994.0

接着把证书复制到aosp目录下的system/ca-certificates/files,里面全是系统证书,接着

source build/envsetup.sh

lunch

选择编号

make -j16

由于前一次编译过了,所以这次编译很快,刷入手机后可以看到已经集成好了charles证书了

root过检测

首先介绍adb相关的知识

adb构成

client端,在电脑上,负责发送adb命令

daemon守护进程adbd,在手机上,负责接收和执行adb命令

server端,在电脑上,负责管理client和daemon之间的通信

adb工作原理

client端将命令发送给server端

server端会将命令发送给daemon端

daemon端进行执行

将执行结果,返回给server端

server端将结果再返回给client端

android编译的时候可以选择编译选项 eng,userdebug,user,很多App检测运行环境是否正常的检测点之一就是检测当前运行的系统属于哪个编译选项。eng、userdebug都是属于风险设备考虑范畴

eng:工程师用的开发测试环境,方便开发调试各种软硬件之间的交互、性能等等,有root和调试权限

userdubug:user版本发布之前的开发调试版本 有root和调试权限

user:正常的手机就是user版本的 无root和调试权限

为什么推荐编译user版本的呢,因为userdubug里有太多特征可以检测到有root权限,那我们怎么既使用uesr版本又同时具有root权限呢?

这里就要先介绍关于adbd降权的操作了,我们知道,root后的手机adb shell进来是$符,通过su可以给adbd提权到root权限,userdebug和user在执行adb shell之后默认都给与root权限,同时都有降权的动作,但是userdebug可以通过su执行升权的操作,而user版本没有su这个东西,所以我们可以在adb shell之后的降权操作进行修改,不让他降权不就可以达到adb shell之后就是root权限吗?

怎么操作呢?

首先开启user模式,默认是没有user版本的编译选项的

pixel4 android10 可以在aosp/device/google/coral/AndroidProducts.mk文件下加上一句aosp_flame-user \,不同的机型和版本略有差别

接下来就是找到adb 降权的位置进行修改即可

首先关闭seleniux,进入aosp/system/core/init/selinux.cpp这个文件,找到IsEnforcing这个函数,直接return false

接下来在降权的位置同理直接return false,在aosp/system/core/adb/daemon/main.cpp这个文件中的should_drop_privileges函数中

做完这些adb shell之后就是直接root权限的,但是还有一些指纹没有修改.

aosp/build/tools/buildinfo.sh文件下 修改ro.build.tags=release-keys

bin/aosp/build/tools/buildinfo_common.sh文件下 修改ro.system.build.tags=release-keys

aosp/build/tools/buildinfo.sh文件下 修改

ro.build.tags=release-keys

ro.build.display.id=QD1A.190821.011 release-keys

ro.build.description=aosp_flame-user 10 QD1A.190821.011 eng.ylh.20221206.080222 release-keys

bin/aosp/build/tools/buildinfo_common.sh文件下 修改

ro.system.build.tags=release-keys

ro.system.build.fingerprint=Android/aosp_flame/flame:10/QD1A.190821.011/ylh01082102:user/release-keys

注意,由于这里是编译的user版本,换了型号需要重新编译

source build/envsetup.sh

make clobber //重新编译

lunch

刷机

sudo adb reboot bootloader

cd ~/bin/aosp

source build/envsetup.sh

sudo ANDROID_PRODUCT_OUT=/home/ylh/bin/aosp/out/target/product/taimen fastboot flashall -w

修改这些指纹可以绕过绝大部分的app的root检测了,比如银行类app和支付宝的刷脸支付

相关推荐
hello world smile1 天前
Flutter常用命令整理
android·flutter·移动开发·android studio·安卓
潘帕斯的雄鹰3 天前
【1个月速成Java】基于Android平台开发个人记账app学习日记——第4天,注册登录逻辑代码
java·学习·安卓·自定义安卓app图标
PleaSure乐事4 天前
AndroidStudio通过Bundle进行数据传递
android·java·android studio·android-studio·移动应用开发
孑么6 天前
GDPU Andriod移动应用 Fragment碎片与简易版的新闻应用
android·xml·java·kotlin·gradle·android-studio
jingling5558 天前
Android系统架构
android·arm开发·系统架构·安卓
西红柿计算机毕设9 天前
基于安卓Android的健康饮食系统APP(源码+文档+部署+讲解)
大数据·数据库·vue.js·spring boot·python·android-studio
qiuqiushuibx11 天前
安卓基础001
安卓
天神哥哥啊11 天前
AndroidStudio部署多渠道打包环境(一)
android·游戏·android-studio
第三女神程忆难12 天前
Android Kotlin 高阶函数详解及其在协程中的应用
android·开发语言·kotlin·移动开发·安卓·高阶函数·1024程序员节
天神哥哥啊13 天前
git清理本地.git文件夹下的缓存
android·git·游戏·unity·android-studio