魔改chromium——源码拉取及编译

魔改chromium------基础环境搭建

上一节在完成了基础环境搭建之后,这一节内容是将源码拉取到我们本地,为后续修改chromium源码做准备,这节内容非常漫长,速度快慢取决于你的网络和机器配置,如果网络和机器不好的话,编译和拉取代码的时间可能会超过十几个小时,拉取源码过程大约花了40分钟,机器上编译chromium过程花了6个多小时,才编译出chromium浏览器,所以,有一台好的机器和网络非常重要。

设置git全局环境变量

首先在新下载的powershell中执行以下命令,设置一下git全局环境变量,一行一行执行,本地代理端口号改成自己的即可

csharp 复制代码
git config --global http.proxy http://127.0.0.1:10808
git config --global https.proxy http://127.0.0.1:10808
git config --global http.sslVerify false # 禁用 HTTPS 请求的 SSL 证书验证
git config --global core.autocrlf false # 禁用换行符的自动转换
git config --global core.filemode false # 禁用 Git 对文件权限模式(如可执行权限)的检测
git config --global branch.autosetuprebase always # 控制新分支的默认行为,使其在拉取(pull)时自动使用 rebase 而不是 merge

这两个可以选择性开启
git config --global core.fscache true # 启用文件系统缓存功能
git config --global core.preloadindex true # 启用索引预加载功能

设置好了之后,在depot_tools同级目录中新建一个chromium目录

创建boto.cfg和设置boto.cfg

创建boto.cfg文件写入内容,本地代理的端口号proxy_port参数改成自己的就可以

ini 复制代码
[Boto]
proxy = 127.0.0.1
proxy_port = 10808

新增环境变量NO_AUTH BOTO_CONFIG,值为boto.cfg文件路径

拉取源码

设置好了之后,首先将powershell当前目录切换到我们新建的chromium目录,然后执行以下命令,就可以开始拉取源码了,本地代理的端口号记得改成自己的就可以

ruby 复制代码
$env:HTTP_PROXY="http://127.0.0.1:10808"; $env:HTTPS_PROXY="http://127.0.0.1:10808"

fetch --no-history chromium

拉取中的状态,如果你的网络不好,这将会是一个非常漫长的过程,需要耐心等待

拉取完之后会显示这个

拉取完之后,还会自动执行Hooks

当这2个都是百分之百,就说明成功了,下一步就可以执行编译了。

生成配置

在chromium目录下执行以下命令,设置生成配置

scss 复制代码
cd src && gn gen out/Default

编辑配置

执行成功之后,运行一下命令编辑配置

sql 复制代码
gn args out/Default

运行之后他会打开一个txt的文件,这里面就是写后面要编译的条件,这是官方的编译条件配置参考链接www.chromium.org/developers/...

将这些内容粘贴进去,然后运行

ini 复制代码
# 系统
target_os="win"
# 架构
target_cpu="x64"
# 是否开启调试
is_debug=false
# 不允许远程调试
enable_remoting=false
# 使用Chrome官方的编译优化建议
is_official_build=true
# 分散链接编译
is_component_build=false
#不使用官方API秘钥
use_official_google_api_keys=false
#不使用官方API秘钥
google_api_key=false
#不使用官方API秘钥
google_default_client_secret=false
#关闭支持NACL,这是一种Chrome插件,因为安全性,稳定性存在问题,已经很少使用了
enable_nacl=false
#支持H264编码
proprietary_codecs=true
#解码器
ffmpeg_branding="Chrome"
#使用无符号或最少符号实现更快的构建
symbol_level=0
#删除v8符号
v8_symbol_level=0
#删除WebCore符号
blink_symbol_level=0
#Chrome品牌标识和实验性标志
disable_fieldtrial_testing_config=true

之后可能会报这么一个错误

记事本打开chromium目录下的 .gclient 文件

将内容新增到这个位置

修改保存之后,根据前面报错日志中的提示,再运行一次以下命令

复制代码
gclient runhooks

gclient runhooks运行成功之后,再从之前的编辑配置步骤重新执行一下

编译chromium

以上都正常之后,就可以开始编译了,执行以下命令即可,这是一个非常漫长的过程,所以如果你是笔记本,请连接好你的电源,保证你的网络一直是畅通的,保持屏幕常亮,关闭所有杀毒软件的目录扫描,关闭所有会让你电脑息屏的软件

sql 复制代码
autoninja -C out/Default chrome

大约53000多个组件要编译,时间的话,需要几个小时到几十个小时不等,具体看你的机器配置,全程几乎跑满CPU,编译好了之后结果会生成在 chromium目录下的 src/out/Default 目录。然后运行chrome.exe, 正常之后,说明我们编译配置和编译环境是ok的,就可以到下一节膝盖源码的内容了

下一节就是修改chromium源码,实现一些我们想要实现的功能

相关推荐
阿拉斯攀登2 分钟前
MQ消息积压问题排查:消费卡顿、堆积、消费速度优化
后端
阿拉斯攀登7 分钟前
无人售货机库存异步更新方案:解决高并发下单库存卡顿问题
后端
阿拉斯攀登11 分钟前
无人售货机MQ消息丢失、重复消费、超时异常全套兜底方案
后端
做系统的大强14 分钟前
我用中文从零写了一个操作系统(下篇):从45个BUG到165个——假持久化、USB地狱与OS自举
后端
程序员老赵15 分钟前
Docker 部署 Rocky Linux:轻松搭建 RHEL 兼容企业级基础镜像平台
linux·后端·docker
用户61526121321016 分钟前
Java主流框架与源码:Spring Framework
后端
BestHeaker1 小时前
跨企业接口对接:IQDS / CPK 数据解析与协作避坑指南(五)
java·服务器·前端
yume_sibai1 小时前
03-Rust 函数式编程特性(闭包 + Iterator + Option/Result + 链式调用)
开发语言·后端·rust
青花锁2 小时前
OpenAI Function Calling 完全指南:让大模型安全调用你的业务系统
前端·安全·functioncalling
俊昭喜喜里2 小时前
C#中的func<>
java·前端·c#