1. 程式人生 > >下載並編譯Chrome瀏覽器For Android

下載並編譯Chrome瀏覽器For Android

最近因為公司專案,需要對Chrome的某一模組進行修改後,相容公司的Android裝置,現記錄下Chrome的原始碼下載過程,作為筆記。

1. 準備Ubuntu系統,最好是物理機上安裝,因為Chrome首次編譯耗時較長,對硬體要求較高。我使用的Ubuntu版本為14.04.1。

2. 下載Chrome原始碼要翻牆,這個可以通過更換hosts解決(修改hosts後,在下載其中的第三方庫程式碼時還是會有問題,這時需要設定代理,後面會講到),從laod.cn上下載linux可用的hosts檔案,替換到/etc/hosts。注意備份原檔案。網址如下:

     https://laod.cn/hosts/2017-google-hosts.html

3. 根據谷歌官方安裝步驟的操作步驟下載:下述命令僅供參考,具體情況根據連結。


        3.1     git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
        3.2     export PATH="$PATH:/path/to/depot_tools"
        3.3     mkdir ~/chromium && cd ~/chromium
        3.4     fetch --nohooks android
        3.5     cd src
        3.6     If you have an existing Linux checkout, you can add Android support by appending target_os = ['android'] to your .gclient file (in the directory above src):
                    [ echo "target_os = [ 'android' ]" >> ../.gclient ]
                gclient sync
        3.7     build/install-build-deps-android.sh

         在3.7安裝依賴package是可能會報錯,此時需要更換apt源,可參考另一篇文章修改apt源
        3.8     gclient runhooks

4.  在執行fetch --nohooks android時,一般在最後會有如下third-party無法下載。
            src/third-party/pdfium
            src/third-party/skia
            src/third-party/swiftshader
            src/third-party/webrtc
            src/third-party/android_tools/ndk
     解決方法:
     通過http/https代理:
               4.1  sudo apt-get install python-gevent python-pip
                       sudo pip install shadowsocks
                4.2  建立shadow.json:
                        {
                            "server":"xxxxxx",
                            "server_port":xxxx,
                            "local_port":10808,
                            "password":"xxxx",
                            "timeout":600,
                            "method":"aes-256-cfb"
                        }

        local_port為自定義,加密方法根據實際情況填寫。
                4.3 sslocal -c /path/to/shadowsocks.json
                       或開機自啟動:
                        vim /etc/rc.local
                        sudo sslocal -c /path/to/shadowsocks.json
               4.4 新開一個終端:
                        sudo apt-get install privoxy
                        vim /etc/privoxy/config
                            761行: listen-address 127.0.0.1:8118
                            1336行: forward-socks5 / 127.0.0.1:10808 .
                                注意不要漏掉最後的"."
                        sudo service privoxy restart
                        export http_proxy='http://127.0.0.1:8118'
                        export https_proxy='https://127.0.0.1:8118'
                        git config --global http.proxy 'socks5://127.0.0.1:10808'
                        git config --global https.proxy 'socks5://127.0.0.1:10808'

                        (git取消代理) git config --global --unset http.proxy
                5.  在src/目錄執行gclient sync即可

更新程式碼步驟:根據經驗總結的步驟,如遇到奇怪問題,建議按照下載步驟重新下載。
    1.  如上述設定代理後執行gclient sync,此步驟會更新所有依賴。
    2.  cd src;git fetch origin