精華區beta AndroidDev 關於我們 聯絡資訊
官網其實更新蠻慢的,有些資訊已經過時了 (且過時的離譜...) 小弟為了想要放編譯原始碼的文章進精華區,所以自己寫一篇吧 編這東西很容易失敗,就拿錯誤訊息喂狗或上來問吧,祝順利 :) 以下,正文開始 ====================================== 環境為 Ubuntu 10.04 在下載原始碼之前,必須先把一些工具給裝好 首先先把 sun-jdk 的來源加進去,否則會找不到這個套件 $ sudo add-apt-repository \ "deb http://archive.canonical.com/ lucid partner" $ sudo aptitude install \ git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev \ libwxgtk2.6-dev squashfs-tools build-essential zip curl \ libncurses5-dev zlib1g-dev sun-java6-jdk pngcrush x64 的要多安裝一些庫,才能相容 $ sudo aptitude install \ g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev \ gcc-4.3-multilib g++-4.3-multilib 該原始碼的管理程式是 git,Google 將他包裝一層成新的工具 repo $ curl http://android.git.kernel.org/repo > repo $ chmod +x repo 把抓下來的 repo 放到你的 $PATH 裡面 (不知道 $PATH 的請左轉 Linux 板) 好,前置工作結束,接著開始下載原始碼 $ mkdir mydroid $ cd mydroid $ repo init -u git://android.git.kernel.org/platform/manifest.git (如果想指定 branch 版本,就在後面加上 -b version_name) (例如: repo init -u git://... -b gingerbread) $ repo sync 好,現在開始抓原始碼了,可以起來去上個廁所,喝杯咖啡 這需要花點時間,等結束之後,開始編譯 (這更久,我第一次體會到什麼叫做大專案...) $ make 編譯完,可以看到多一個資料夾 out/ ,裡面會放編出來的東西 恭喜你,本文的前半部到此結束 想開 emulator 來玩的話,猜猜他在 out/ 資料夾下的哪邊吧 :D ====================================== 有人有疑問了,我想燒進手機玩,可是網站沒寫怎麼燒阿!? 所以這就是這篇文下半部的內容了 由於 Google 官方開發的手機是 Nexus 系列,目前只有兩隻 (One, S) 因此剛剛抓下來的原始碼能燒的也只有這兩隻 (如果想燒進別的手機,請找非官方的,例 CyanogenMod) 將剛剛編好的東西直接燒進去就可以了嗎?當然不是 每隻手機都有自己 device-specific 檔案,例如驅動 所以我們要調一下設定,首先回到剛剛的資料夾 $ cd mydroid $ source build/envsetup.sh 如果剛剛沒有先編好一次,現在請先編出 adb $ make adb 接著運行 adb $ ./out/host/linux-x86/bin/adb root 插上您的手機,將一些 device-specific 檔案抓到電腦來 $ ./device/{htc,samsung}/{passion,crespo}/extract-files.sh 前置作業到此完成,接著選擇你要編的 target $ lunch 這時候有看到幾個選項,其中有兩個 3. full_passion-userdebug <= for Nexus One 4. full_crespo-userdebug <= for Nexus S 選好之後,再 make 一次 $ make 編好之後,最後一步,將相關映像檔燒進手機 先要確定好手機是連上電腦的, 也有解鎖,進入 fastboot 模式 (不知道怎麼進的請左轉 Android 板) 先檢查裝置是否連上 $ ./out/host/linux-x86/bin/adb device 確定已連上,且已經在 fastboot 模式開好機了,開始燒錄 $ ./out/host/linux-x86/bin/fastboot flash system \ out/target/product/{passion,crespo}/system.img $ ./out/host/linux-x86/bin/fastboot flash boot \ out/target/product/{passion,crespo}/boot.img $ ./out/host/linux-x86/bin/fastboot flash recovery \ out/target/product/{passion,crespo}/recovery.img $ ./out/host/linux-x86/bin/fastboot flash userdata \ out/target/product/{passion,crespo}/userdata.img $ ./out/host/linux-x86/bin/fastboot reboot 走到這一步,恭喜您,大功告成 本文也功德圓滿,在此結束 謝謝您的閱讀 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.36.167.13
nowar100:收錄至 z-3-3-1 01/14 01:37
coolkevin:android官方網站不是說只有支援Java5嗎 01/14 02:04
coolkevin:如果使用Java6編出來的image, 會不會導致有些功能異常? 01/14 02:05
nowar100:這就是我說"過時的離譜"的點... 01/14 02:05
coolkevin:所以實際上用Java6也是沒問題囉:O 01/14 02:08
nowar100:我自己在 Ubuntu x64 下已經成功編完了 :) 01/14 02:10
coolkevin:我有在32bit上的fedora編過image 01/14 09:49
coolkevin:可以用emulator跑, 不過不知道裝apk進去 01/14 09:50
coolkevin:不知會不會有其他問題,目前只有裝幾個來測試而已 01/14 09:50
囧,少寫幾個步驟,趕快補上 ※ 編輯: nowar100 來自: 114.24.192.60 (01/14 13:32)