定制自己的chromium浏览器-linux版
文档说明: 只记录关键地方; 文档发布时间:2022-08-11
为什么自己构建呢
公开的chromium 不包含
专有视频解码器
比如播放bilibili网站、ixigua网站视频,播放不了
自己定制浏览器,比如开启某些新特性,比如HTTP3 QUIC
强制开启,同时也可以研究浏览器对用户的跟踪
chromium 源码和linux 源码 ,很优秀,值得学习
公开的 chromium 镜像下载地址
阿里云
chromium
镜像
获取最新版的chromium下载地址 github python 脚本
获取最新版的chromium下载地址 gitee python 脚本
官方 chromium 镜像下载地址
第一步:准备 chromium
构建的 官方文档 和 快速下载chromium源码
- www.chromium.org
- chromium.googlesource.com
- 浏览chromium 源码
- 快速下载
chromium
源码 - 如果你因网络原因,不能方便的看chromium 源码,我提供了一个chromium扩展
用于
查看chromium源码的浏览器扩展包
,源码包需要自己git clone
用于查看chromium源码的浏览器扩展包
,已经打包成了extension-v3-test.zip
第二步: 构建linux版 chromium 脚本一: 安装必要依赖
进入已经下载好的chromium 源码目录
还没下载源码,请进这里chromium
源码下载
apt update -y && apt install -y git curl python3 python3-pip python3-dev wget ninja-build ffmpeg sudo file
apt install -y libssl-dev ca-certificates make cmake gcc g++ zip
apt install -y lsb-release locales
apt install -y tcpdump nmap traceroute net-tools dnsutils iproute2 procps iputils-ping rsync
test -f chromium/chromium/src/build/install-build-deps.sh && bash chromium/chromium/src/build/install-build-deps.sh --no-chromeos-fonts --no-arm
第三步:构建linux版 chromium 脚本二:执行构建
__DIR__=$(cd "$(dirname "$0")";pwd)
cd ${__DIR__}
export PATH=${__DIR__}/depot_tools:$PATH
chromium_build_dir=${__DIR__}/chromium/chromium/src/build/Default/
rsync --delete-before --progress --stats -d ${__DIR__}/blank/ $chromium_build_dir
cd ${__DIR__}/chromium/chromium/src/
# 参考文档 https://chromium.googlesource.com/chromium/src/+/main/docs/linux/build_instructions.md#Smaller-builds
gn gen $chromium_build_dir --args='is_debug=false symbol_level=0 enable_nocompile_tests=false target_cpu="x64" target_os="linux" ffmpeg_branding="Chrome" proprietary_codecs=true dcheck_always_on=false is_official_build=true is_component_build=false enable_nacl=false blink_symbol_level=0 v8_symbol_level=0'
ninja -C $chromium_build_dir chrome
第四步: 构建完毕,打包成chrome.zip
__DIR__=$(cd "$(dirname "$0")";pwd)
cd ${__DIR__}
test -d ${__DIR__}/blank/ && rm -rf ${__DIR__}/blank/
mkdir -p ${__DIR__}/blank/
rsync --delete-before --progress --stats -d ${__DIR__}/blank/ ${__DIR__}/Default/
chromium_build_dir=${__DIR__}/chromium/chromium/src/build/Default/
sourcefolder=${__DIR__}/chromium/chromium/src/build/Default/
destinationfolder=${__DIR__}/Default/
thefoldertoexclude=obj
rsync -av --progress $sourcefolder $destinationfolder --exclude obj --exclude gen --exclude thinlto-cache
rm -rf ${__DIR__}/Default/*.runtime_deps
zip -r chromium.zip Default/
第五步: 运行 chromium浏览器
set -exu
__DIR__=$(cd "$(dirname "$0")";pwd)
cd ${__DIR__}
uuid=$(cat /proc/sys/kernel/random/uuid)
dir="/tmp/${uuid}"
if [ ! -d $dir ] ;then
mkdir $dir
fi
export GOOGLE_API_KEY="no"
export GOOGLE_DEFAULT_CLIENT_ID="no"
export GOOGLE_DEFAULT_CLIENT_SECRET="no"
#加载浏览器扩展
extensions=`${__DIR__}/extension-v3-test,${__DIR__}/ReplaceGoogleCDN/extension`
${__DIR__}/Default/chrome \
--user-data-dir=$dir \
--show-app-list \
--start-maximized \
--enable-remote-extensions \
--enable-extensions \
--remote-debugging-port=9222 \
--enable-logging=stderr --v=1 \
--load-extension="$extensions" \
chrome://version/
# 浏览器自动打开调试窗口
# --auto-open-devtools-for-tabs
# 浏览器使用http代理
# --proxy-server="http=127.0.0.1:8016;https=127.0.0.1:8016"
# 浏览器使用socks5代理
# --proxy-server="socks5://127.0.0.1:1080" --host-resolver-rules="MAP * ~NOTFOUND , EXCLUDE 127.0.0.1"
# 浏览器使用pac代理
# --proxy-pac-url="http://localhost:8000/proxy.pac"