编译安卓上的开源浏览器内核Chromium(ChromeView)源码步骤

目前安卓上的开源浏览器有zicro、TintBrowser,但他们都只是对系统自带的WebView进行了封装,如果需要自定义浏览器的话只能寻找开源的浏览器内核。安卓上开源的浏览器内核主要有Webkit和Chromium,本文将以Mac系统为例,对编译Chromium的安卓版源码步骤进行介绍。

编译步骤

1.下载Ubuntu Server(64位)12.10的镜像(ISO),下载地址是http://releases.ubuntu.com/12.10/,选择64-bit PC (AMD64) server install image

2.下载VirtualBox的虚拟机(只能使用VirtualBox,不能使用VMWare)

3.创建一个虚拟机,并进行以下设置:

  • Name: ChromeWebView
  • Type: Linux
  • Version: Ubuntu 64-bit
  • RAM: 4096Mb(大小可随意,够用即可)
  • Disk: VDI, dynamic, 48Gb(大小可随意,够用即可)

4.修改虚拟机的设置如下:

  • System > Processor > Processor(s): 4 (number of CPU cores on the machine)
  • Audio > uncheck Enable Audio
  • Network > Adapter 1 > Advanced > Adapter Type: virtio-net
  • Network > Adapter 2
  •   check Enable network adapter
  • Attached to > Host-only Adapter
  • Advanced > Adapter Type: virtio-net(若选择完提示无法保存,在VirtualBox的Preferences-网络Network中添加一个Host-only Networks即可)
  • Ports > USB > uncheck Enable USB 2.0 (EHCI) Controller

5.启动虚拟机,选择第一步下载的镜像,开始安装Ubuntu系统。除了以下设置外,其他可以使用默认选项:

  • Hostname: crbuild
  • Full name: crbuild
  • Username: crbuild
  • Password: crbuild
  • Confirm using a weak password
  • Encrypt home directory: no
  • Partitioning: Guided - use entire disk (no LVM or encryption)
  • Software to install: OpenSSH server
若中间提示“无法将 grub-efi 软件包安装到/target/中,如果没有 GRUB 启动引导期,所安装的系统无法启动。”,将该虚拟机删除,重新创建一个即可。应该是中间网络终端引起的。

6.安装完成重启系统之后,设置网络:

  • 在虚拟机终端中登录
  • 输入命令 sudo vim /etc/network/interfaces
  • 将primary network interface所在的整段内容复制一下
  • 将其中的eth0都改成eth1,primary改成secondary
  • 保存文件
  • 在终端中输入命令:
[plain] view plain copy
  1. sudo apt-get install -y avahi-daemon  
  2. sudo reboot  

7.安装SSH
  • 输入 ssh-keygen -t rsa ,生成ssh密钥
  • 一直按回车(密码都为空)
  • 再输入以下命令:
[plain] view plain copy
  1. ssh-copy-id crbuild@crbuild.local  
  2. ssh crbuild@crbuild.local  

如果提示ssh: connect to host crbuild.local port 22: Connection refused,说明未安装openssh客户端和服务器,输入以下命令:
[plain] view plain copy
  1. sudo apt-get install openssh-client  
  2. sudo apt-get install openssh-server  

8.安装JDK6

由于虚拟机中无法运行浏览器,可以在外部系统中下载JDK,直接百度“jdk-6uNN-linux-x64.bin”即可。

将外部的jdk拷贝到虚拟机中,需要在Devices,Share Folders中添加共享文件夹。然后在虚拟机的shell中执行以下命令(前者为刚刚定义的共享文件夹标识符,后者为虚拟机中对应的共享文件夹位置):

[plain] view plain copy
  1. sudo mount -t vboxsf Share /media/Share/  

将jdk拷贝到虚拟机中后,运行以下命令:
[plain] view plain copy
  1. scp /media/Share/jdk-6uNN-linux-x64.bin crbuild@crbuild.local:~/jdk6.bin  

9.设置虚拟机编译的目标平台。
[plain] view plain copy
  1. # ssh crbuild@crbuild.local  
  2. touch ~/.build_arm  
  3. touch ~/.build_x86  

10.设置Chromium的安装位置
[plain] view plain copy
  1. export CHROMIUM_DIR=/mnt/chromium  

11.安装git
[plain] view plain copy
  1. sudo apt-get install git  

12.抓取chromeview代码
[plain] view plain copy
  1. git clone https://github.com/pwnall/chromeview.git  

13.运行chromeview/crbuild目录下的vm-setup.sh脚本
[plain] view plain copy
  1. cd chromeview/crbuild  
  2. sudo ./vm-setup.sh  

14.运行vm-build.sh脚本
[plain] view plain copy
  1. sudo ./vm-build.sh  

注意事项

1.Mac上VirtualBox翻页按键为"fn+shift+方向键"
2.如果在mac上第二次启动虚拟机提示Failed to load VMMR0.r0 (VERR_SUPLIB_WORLD_WRITABLE),可以使用如下命令:
[plain] view plain copy
  1. sudo chmod 755 /Applications  
  2. sudo chmod 755 /Applications/Virtualbox.app  
3.如果在运行脚本的过程中出现“No output for xxx seconds from command: git -c core.deltaBaseCacheLimit=2g clone --no-checkout --progress”,应该是被墙导致的,可以尝试翻墙后再运行脚本。


如果大家觉得对自己有帮助的话,还希望能帮顶一下,谢谢:)
转载请注明出处,谢谢!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值