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和支付宝的刷脸支付

相关推荐
赵大仁6 天前
在M系列芯片的Mac上使用Uniapp开发的依赖安装指南
前端·windows·macos·ios·小程序·uni-app·安卓
7yewh6 天前
LeetCode 力扣 热题 100道(二十一)接雨水(C++)
开发语言·数据结构·c++·算法·leetcode·安卓
我想睡到自然醒₍˄·͈༝·͈˄*₎◞ ̑9 天前
【Android】EventBus——进行良好的组件通信
android·java·microsoft·android-studio
画个太阳作晴天14 天前
Android13应用在后台录音无声音
android·framework·android-studio·录音
码码哈哈0.014 天前
一个直接看央视频道的软件,可直接安装到TV
安卓
编码追梦人18 天前
安卓底层相机流的传输方式
linux·c++·安卓
大耳猫20 天前
解决Error resolving plugin xxx
kotlin·gradle·android-studio
Never_Satisfied20 天前
非对称任意进制转换器(安卓)
安卓·进制转换
事后不诸葛20 天前
新增白名单赋予应用安装权限
framework·安卓