Android Chromium编译
前言
最近关注了一下Chrome浏览器,发现已经内置支持H265编码了。想我以前做过Android Chromium v84的H265支持,整个过程非常麻烦,从下载源码到编译处处是坑。今天看到Chromium已经功能更完善,想着不如编一个最新版本,准边记录一下编译过程,为后来者提供一点便利。
准备工作
谷歌已经提供了完备的编译教程, 按照它的流程下来是能编译成功的。
先说一下我的编译环境,虚拟机环境 Ubuntu 23(官方推荐的是18 20 22,但是亲测23也可以编译成功)。
首先下载代码需要代理,我用的是
如果用的是其他软件,请自行搜索虚拟机怎么使用主机代理。
开启后打开Allow Lan,允许同一个局域网下的其他设备访问代理,记下这个端口号(7890)。
然后在终端中输入ipconfig
,找到VMware Network Adapter VMnet8
,记下这个IP(192.168.149.1)
接着打开Ubuntu的网络设置,
下载工具
接着就可以下载谷歌官方的工具depot_tools
在~/
下创建目录chrome
,mkdir ~/chrome&& cd ~/chrome
进入chrome
后执行命令git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
然后将这个路径加入到PATH
里:export PATH="$PATH:/path/to/depot_tools"
拉取代码
接下来就可以获取代码了,如果按照官方文档下载的话,可能要下载非常大的代码量,我编译时由于只想使用最新版,所以在下载命令里加入了--no-history
,这样下载时间会缩短很多。完整命令如下:
mkdir chromium && cd chromium
fetch --nohooks --no-history android
这里多说一句,如果你没带--no-history
命令,拉取完代码后~/chrome/chromium
下会生成一个src
目录,使用
gti fetch origin --tags
git tag
可以查看tag,并且选择自己想要的tag检出,比如git checkout 97.0.4962.93
。
下载完代码后,进入src
目录
cd src
然后安装编译chromium所需要的依赖包
build/install-build-deps.sh --android
安装完之后需要再次同步代码,但是由于我们使用了代理,同步时候会报错,需要先执行一步:
在随便一个目录下创建.boto
文件,在文件里输入:
[Boto]
proxy=192.168.149.1
proxy_port=7890
然后设置export NO_AUTH_BOTO_CONFIG=/path/to/.boto
现在就可以执行gclient sync
同步代码了。
编译
最后就可以编译代码了
执行gn args out/Default
这时会打开文本编辑框,输入内容:
target_os = "android"
target_cpu = "arm64"
# 不把警告作为错误,不然很有可能报错
treat_warnings_as_errors = false
输入完后保存退出即可。
最后的最后,执行命令autoninja -C out/Default chrome_public_apk
,就可以开始愉快的编译了。整个过程非常长,大概3、4个小时。
编译完成后,在out/Default/apks/
下就可以得到我们的Chromium.apk了,竟然有将近1G,可怕。
运行一下