最近一年一直忙于开发严重怀疑自己转行了,学习研究的,很浅薄只为完成某些功能罢了,大佬勿喷。
开发的指纹浏览器是基于chromium
首先准备基本环境
操作系统:ubuntu22.04.4
家里网络太差,我是在公司下载的。
git clone 94fK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6U0K9s2u0G2L8h3W2#2L8g2)9J5k6h3N6G2L8$3N6D9k6i4y4G2N6i4u0U0k6g2)9J5k6h3y4G2L8g2)9J5c8X3y4Z5M7X3!0E0K9i4g2E0i4K6u0r3N6r3!0G2L8s2y4Q4x3V1k6V1k6i4m8G2N6q4)9#2k6Y4c8G2L8$3I4K6i4K6u0W2k6$3W2@1
获取工具depot_tools用来下载chrom源码,并将工具目录放到环境中
获取编译所需的所有代码
fetch --nohooks android
拉取最新的代码,二选一
fetch --no-history --nohooks android
拉取特定版本的代码
gclient sync --with_branch_heads -r 120.0.6099.243
build/install-build-deps.sh --android
gclient runhooks
python推荐使用内置的
export PATH=~/chromium/Chromium_120.0.6099.243/depot_tools/.cipd_bin/3.8/bin:$PATH
可以查看gn的所有选项
gn args --list out/Default
release版本
gn gen out/Release --args='target_os="android" target_cpu="arm64" is_debug=false is_official_build=true enable_nacl=false is_chrome_branded=false use_official_google_api_keys=false ffmpeg_branding="Chrome" proprietary_codecs=true enable_remoting=true treat_warnings_as_errors=false system_webview_package_name = "com.google.android.webview"'
debug版本
gn gen out/Debug --args='target_os="android" target_cpu="arm64" is_debug=true is_official_build=false enable_nacl=false is_chrome_branded=false use_official_google_api_keys=false ffmpeg_branding="Chrome" proprietary_codecs=true enable_remoting=true treat_warnings_as_errors=false'
autoninja -C out/Release system_webview_apk -j8
构建android的webview
autoninja -C out/Release monochrome_public_apk -j8
构建单独的浏览器
以上就是下载源码编译的全过程,下面开始更改调整位置。不同版本位置会有略微差异
代码的基质位置位于/chromium_120.0.6099.243/code/src(函数参数就不写了)
android_webview/glue/java/src/com/android/webview/chromium/WebViewChromium.java(对于打webview.apk是有效的)
loadUrl()
通过修改mWebSettings.setUserAgenString()
third_party/blink/common/device_memory/approximated_device_memory.cc
GetculateAndSetApproximatedDeviceMemory()
通过修改字段approximated_device_memory_gb_
third_party/blink/renderer/core/frame/screen.cc
height()
width()
若要获取pixel来计算分辨率的话,则在Screen()初始化函数中使用GetScreenInfo().device_scale_factor获取
colorDepth()
availHeight()
avaiWidth()
third_party/blink/renderer/core/frame/navigator_ua_data.cc
AddBrandVersion()
AddBrandFullVersion()
SetBrandVersionList()
[培训]科锐逆向工程师培训第53期2025年7月8日开班!
最后于 2025-6-8 16:50
被琳宇编辑
,原因: