編譯安卓上的開源瀏覽器內核Chromium(ChromeView)源碼步驟

目前安卓上的開源瀏覽器有zicro、TintBrowser,但他們都隻是對系統自帶的WebView進行瞭封裝,如果需要自定義瀏覽器的話隻能尋找開源的瀏覽器內核。安卓上開源的瀏覽器內核主要有Webkit和Chromium,本文將以Mac系統為例,對編譯Chromium的安卓版源碼步驟進行介紹。

 

編譯步驟

1.下載Ubuntu Server(64位)12.10的鏡像(ISO),下載地址是https://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] 

sudo apt-get install -y avahi-daemon  

sudo reboot  

 

7.安裝SSH

輸入 ssh-keygen -t rsa ,生成ssh密鑰

一直按回車(密碼都為空)

再輸入以下命令:

[plain]  

ssh-copy-id crbuild@crbuild.local  

ssh crbuild@crbuild.local  

 

如果提示ssh: connect to host crbuild.local port 22: Connection refused,說明未安裝openssh客戶端和服務器,輸入以下命令:

[plain] 

sudo apt-get install openssh-client  

sudo apt-get install openssh-server  

 

8.安裝JDK6

由於虛擬機中無法運行瀏覽器,可以在外部系統中下載JDK,直接百度“jdk-6uNN-linux-x64.bin”即可。

 

將外部的jdk拷貝到虛擬機中,需要在Devices,Share Folders中添加共享文件夾。然後在虛擬機的shell中執行以下命令(前者為剛剛定義的共享文件夾標識符,後者為虛擬機中對應的共享文件夾位置):

[plain]  

sudo mount -t vboxsf Share /media/Share/  

 

將jdk拷貝到虛擬機中後,運行以下命令:

[plain]  

scp /media/Share/jdk-6uNN-linux-x64.bin crbuild@crbuild.local:~/jdk6.bin  

 

9.設置虛擬機編譯的目標平臺。

[plain] 

# ssh crbuild@crbuild.local  

touch ~/.build_arm  

touch ~/.build_x86  

 

10.設置Chromium的安裝位置

[plain] 

export CHROMIUM_DIR=/mnt/chromium  

 

11.安裝git

[plain] 

sudo apt-get install git  

 

12.抓取chromeview代碼

[plain]  

git clone https://github.com/pwnall/chromeview.git  

 

13.運行chromeview/crbuild目錄下的vm-setup.sh腳本

[plain]  

cd chromeview/crbuild  

sudo ./vm-setup.sh  

 

14.運行vm-build.sh腳本

[plain]  

sudo ./vm-build.sh  

註意事項

1.Mac上VirtualBox翻頁按鍵為"fn+shift+方向鍵"

2.如果在mac上第二次啟動虛擬機提示Failed to load VMMR0.r0 (VERR_SUPLIB_WORLD_WRITABLE),可以使用如下命令:

[plain]  

sudo chmod 755 /Applications  

sudo chmod 755 /Applications/Virtualbox.app  

3.如果在運行腳本的過程中出現“No output for xxx seconds from command: git -c core.deltaBaseCacheLimit=2g clone –no-checkout –progress”,應該是被墻導致的,可以嘗試翻墻後再運行腳本。

 

發佈留言