ubuntu20.04修改编译chromium源码实战
首先,利用vmware搭建ubuntu20.04的虚拟机
由于chromium的源码比较大,在git的时候需要分配数据交换的大小,如果小了就下不下来。所以最好给这台虚拟机分配12G内存以上。存储100G以上。ubuntu的iso文件上ubuntu官网下载即可。如果你当前机器本身就是ubuntu20.04,那么这一步就可以跳过。
构建全局上网不受限的环境
由于chromium源码被墙,想要clone下来需要自备全局上网不受限的环境。
本机做代理,ubuntu设置网络代理为当前机器
在本机中执行ipconfig,可以看见VMnet8这张网卡,就是vmware中NAT模式的网卡。
然后在Ubuntu中设置代理:
其中1080是你的全局不受限上网软件作为代理时监听的端口。
此时你在Ubuntu中测试一下看是否能够访问chromium官方网站
如果此时没有问题。那么你就直接照着官网的操作接着操作就行。你也可以参考下面的内容,是我的实践。
拉取源码必须要在一个网络环境比较好且稳定的地方
安装depot_tools
这个工具是谷歌专门用来便于下载和同步chromium源码的工具(其他的项目我不知道)。
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
然后在当前用户的根目录下,打开 ~/.bashrc 并将depot_tools的bin目录放到path下。也就是写入
export PATH="$PATH:${HOME}/depot_tools"
然后回到目录中,执行
source ~/.bashrc
使配置生效。
获取源码
在当前用户的根目录下(最好别用root用户)创建一个你放源码的文件
mkdir ~/chromium && cd ~/chromium
然后用fetch工具来获取源码,fetch工具是depot_tools中的工具
fetch --nohooks --no-history chromium
如果提示fetch不存在,那么只有可能你的depot_tools没有下载成功或者没有加入到系统path中
这里需要注意的是,该命令因你所处的网络环境,可能会长达数小时,我200M宽带下了三小时。所以获取源码的时候一定要找一个网络环境比较好且稳定,同时你也不会离开。晚上睡觉的时候下载是一个不错的体验。
下载依赖
我们下载下来的源码中,有个src目录,进去之后执行
./build/install-build-deps.sh
如果该命令没有下载大量的(接近1.5G)包,且出现了
E: Could not configure 'libc6:i386'.
E: Could not perform immediate configuration on 'libgcc-s1:i386'. Please see man 5 apt.conf under APT::Immediate-Configure for details. (2)
这样的错误,这个问题可以归咎于ubuntu20.04系统的问题,你需要首先先执行
apt-get dist-upgrade -o APT::Immediate-Configure=0
然后再执行一遍下载依赖的./build/install-build-deps.sh脚本即可。
等到依赖安装完毕,就可以看源码了。
下载clion查看源码
如果你在ubuntu上面没有自己喜欢的看c/c++源码的软件,那么可以使用clion。clion是jetbrains全家桶之一,所以稳定性还是有保证的。值得注意的是:在ubuntu下关闭clion的启动脚本的进程并不能关闭clion本身,有时候clion很流氓,关不掉的时候,只能用 ps 命令查看所有的clion进程,然后全部杀掉。
chromium源码结构
chromium下载下来的代码非常巨大,但是大部分都是测试代码。相关的资料,去官网看开发者文档就行。控制浏览器行为的代码一般是在blink相关的目录下。我就是对blink下的源码进行了修改,定义了符合自己应有场景的函数行为。
编译chromium
首先执行
gclient runhooks
下载hook并执行,完成之后,执行下面的命令即可
gn gen out/Default
# 这一步大概等待10s-60s左右
autoninja -C out/Default chrome
# 初次编译,这一步大约需要十几个小时
编译完成之后,进入到out/Default目录即可。可以看见名为chrome的可执行文件。
ubuntu20.04修改编译chromium源码实战相关推荐
- Ubuntu 16.04下载编译Android11源码
Ubuntu 16.04下载编译Android11源码 Ubuntu 16.04下载编译Android11源码 1. 硬件要求 2. 设置Linux构建环境 1. 安装所需的软件包 2. 安装Open ...
- windows下载编译chromium源码
前言 chromium 源码的下载编译,真的就是如各位前辈说的一样,参考再完整的教程,还是会遇到各种各样的问题.因为每个人的开发环境是不一样的,网络环境也不一样. 一路参考各路大神的教程开始踩坑填坑的 ...
- Ubuntu18.04系统编译android源码环境配置
1. 前言 我们做andorid系统开发,肯定时刻与源码打交到,特别是做新项目时,最重要的事情就是下载源码,然后配置环境编译,假如你的电脑是刚重装系统过,一个全新的开发环境,那么首要解决的事情就是完善 ...
- android 修改编译内核源码 对抗反调试
0×00 写在前面 攻防对立.程序调试与反调试之间的对抗是一个永恒的主题.在安卓逆向工程实践中,通过修改和编译安卓内核源码来对抗反调试是一种常见的方法.但网上关于此类的资料比较少,且都是基于AOSP ...
- android .9编译,在Ubuntu 9.04下编译Android源码
一直都是刷官方的版本,准备自己编译一下刷机. 首先是下载,Android的源码是托管在Linux Kernel的源码站点,所以版本工具是git.关于git的使用和安装请见我的另一篇文章<在Ubu ...
- ubuntu-18.04.4 Android系统源码TP1A(Android 13)下载及编译
继上一篇博客介绍了VMware Workstation15 配置ubuntu-18.04.4,这篇主要介绍安装后环境搭建,Android源码的下载与编译.小编当前下载的是当前最新的代码,是主干分支代码 ...
- chromium源码下载并编译
目前,chromium的源代码已经全部迁移到了git管理,所以本文主要梳理一下下载chromium源代码的过程. 一.概况 chromium现在分为四个大分支: canary:最前沿的版本,每天都发布 ...
- 从零开始,手把手教你如何在Ubuntu下编译VLC-Android源码
前言 公司项目中使用的libvlcjni.so库文件,有点老,对Android 6.0+系统兼容性太差了,当程序运行在Android6.0+系统上时,回弹出警告框,提示libvlcjni.so:tex ...
- ubuntu20.04 编译内核源码5.15.58
现在的内核版本: ok@ok-VirtualBox:~$ uname -a Linux ok-VirtualBox 5.15.0-41-generic #44~20.04.1-Ubuntu SMP F ...
最新文章
- 自动混合精度(AMP)介绍与使用【Pytorch】
- [Eclipse] - 解决导入flask模块出现的Unresolved Import flask问题
- Java-日期 正则表达式
- 28. css样式中px转rem
- cri-o 与 cni的集成分析
- OpenShift 4 之通过直接访问内部的 Image Registry 操作容器镜像
- ctf php文件上传图片格式,CTF-WEB:文件上传
- SpringBoot 2.0 系列003 -- 自定义Parent
- Python之千与千寻豆瓣短评词云秀
- 梯度下降来龙去脉附matlab代码
- 一次订单号重复引起的事故,把我坑惨了!
- QQ邮箱自动登录问题--frame嵌套元素定位
- eemd的r语言序列_EEMD程序,和大家分享
- xml文件怎么转换成wps_word文档怎样转换成xml 怎么将XML文档转成WORD文档
- word 中如何去掉复制的文字的底纹?
- 数据、数据库、数据库管理系统、数据库系统的概念
- 2021年11月推荐阅读的10篇论文
- LeetCode:112(Python)—— 路径总和(简单)
- 软件交付方式有哪些_如何交付有意义的软件
- JVM运行时内存结构学习
热门文章
- 生化危机8Switch Pro手柄按键提示补丁MOD
- 一个想让你承认是Gay的“勒索版”远控木马Swamp分析
- Spring Cloud Nacos整合 Seata 实现分布式事务
- java面试之每天五题
- python可以开发3d游戏吗_用python3从零开始开发一款烧脑射击游戏#3
- 为什么现在的手机越来越重,越来越厚了?
- 2020初网络营销成功案例
- 3DMAX游戏角色头发建模教程
- ubuntu 访问群晖NAS存储硬盘
- python装饰器与闭包_python中闭包和装饰器的理解(关于python中闭包和装饰器解释最好的文章)。...