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

相关推荐
qq_214803293 天前
ArcGIS坐标偏移终极解决方案:Runtime与GDB互转无偏移实践
python·arcgis·安卓
Calebbbbb8 天前
AOSP环境配置和编译
安卓·安全架构·aosp
2501_9400940210 天前
山寨掌机 开源掌机游戏整合包 Emuelec整合包128G 一键导入整合游戏包
游戏·安卓·开源软件·软件
好奇心害死薛猫10 天前
Android的Magisk模块推荐
安卓
suki_lynn11 天前
跨境业务为什么越来越依赖云手机?
智能手机·云计算·安卓
私人珍藏库13 天前
[Android] 小白学做菜3.1.5
app·安卓·做菜
AALoveTouch15 天前
大麦APP抢票:抓包分析与SO库Hook破盾
安卓
2501_9400940216 天前
mig烧录卡资源 Mig-Switch游戏合集 烧录卡 1.75T
android·游戏·安卓·switch
清空mega18 天前
第二章 Android常见界面布局
android-studio