chromium定制浏览器
- chromium源码下载
- get属性
- c或者c++层
- 常见指纹检测指标
chromium源码下载
最新有点时间研究了一些 网上定制chromium 浏览器的方案,大部分都是基于window的,
修改点无非以下监测点。自己本身做Android系统开发,就想着能否做一款基于Android的定制浏览器;
通过查阅网上其他大佬资料。很多都是通过 Selenium 或者playwright 自动化工具修改chromium相关指纹信息。我再思考有再Android中不使用任何自动化框架,就能实现修改chromium的指纹信息呢
我们知道build.prop这个系统属性文件的生成Android——build.prop 解析,每个属性都有一个名称和值,他们都是字符串格式。属性被大量使用在Android系统中,用来记录系统设置或进程之间的信息交换。属性是在整个系统中全局可见的。每个进程可以get/set属性,
java层使用
源码位于/frameworks/base/core/java/android/os/SystemProperties.java中:
get属性
/**
* Get the value for the given key.
* @return an empty string if the key isn't found
* @throws IllegalArgumentException if the key exceeds 32 characters
*/
public static String get(String key) {
if (key.length() > PROP_NAME_MAX) {
throw new IllegalArgumentException("key.length > " + PROP_NAME_MAX);
}
return native_get(key);
}
c或者c++层
private static native String native_get(String key);
private static native void native_set(String key, String def);
使用这种方法完全可以避免CDP一切检测。因为我们就没有使用任何框架。
常见指纹检测指标
指纹项
user_agent指纹
canvas指纹
webgl指纹\webgpu
platform平台
timezone时区
timezone_offset时区偏移量
languages语言
userAgentData、全版本号、内核类型等
platform
header 修改
deviceMemory
hardwareConcurrency
UNMASKED_VENDOR_WEBGL
UNMASKED_RENDERER_WEBGL
GL_VERSION
GL_SupportedExtensions
GL_VENDOR
GL_RENDERER
GL_SHADING_LANGUAGE_VERSION
是否webdriver
是否brave
是否selenium
是否来自于真实键盘
是否来自于真实鼠标
鼠标移动轨迹
键盘拼音输入法模拟输入
cdp检测
webRTC 公网ip4、局域网ip6
screen、屏幕尺寸、分辨率、色彩深度、devicePixelRatio等。
声卡指纹 、
字体列表
触控支持
电池电量等
client_rects
比如修改电量初始电量信息
charging: false
chargingTime: 0
dischargingTime: 17000
level: 0.61
onchargingchange: null
onchargingtimechange: null
ondischargingtimechange: null
onlevelchange: null
通过shell 终端先测试效果,后期集成到改机中。
执行后看一下效果。
结果就是那么丝滑,完全符合我们的效果。过两天继续写