㈠ 如何patchrom
本帖教程只是經驗之談,不過也有一些素材來自網路,本人對此不負任何責任
這個教程介於入門和進階之間,也就是說比如簡單一點的像:rom的大體結構啊、android的基本原理啊、linux的基本操作啊。這個教程都一概略過。而比較深入的像:apk的修改、開發,源代碼的修改、編寫,smali插樁,移植適配其他非官方機型。這也一概沒有。
本教程僅介紹如何利用MIUI放出的patchrom資源完成編譯MIUI的流程,適用於對自製rom以及linux有一定了解,喜歡miui,喜歡DIY,但不太熟悉如何使用patchrom以及其基本流程的發燒友
如果你對android、linux完全是一個門外漢的話,這個教程對你來說可能會有不少無法理解的地方。而如果你如果已經是大神了,希望多多指點,跟大家交流一下你的經驗。
--------------------------------------------------------------------------------
第一部分:介紹一些基本概念
首先介紹幾個比較基本教程的鏈接
MIUI官方提供的教程:http://www.miui.com/thread-402322-1-1.html
CM官方wiki上的CM編譯教程:http://wiki.cyanogenmod.org/wiki/Category:Build_from_Source
android官方提供的AOSP編譯教程:http://source.android.com/source/initializing.html
要學習利用開源源代碼編譯android rom的話,看完後面兩個基本就夠了,CM、PA這類的rom都可以根據CM的編譯方法來編譯,而AOKP這類的rom可以根據AOSP的編譯方法來編譯
大部分開源rom在他們的github上也會寫上相關的編譯流程以及主要的命令,比如PA除了用CM的編譯方法手動輸入每條命令來編譯,也可以直接運行他們寫好的build.sh來進行編譯,基本上還是以實際文件和github上寫明的流程為准
而MIUI當然跟這兩種的編譯方法都不一樣,因為MIUI不是利用android源代碼編譯出來的,而是反編譯現成的rom,修改相關smali來適配各種機型的,所以MIUI自己配置了一套編譯平台,這也就是patchrom項目
都知道,android是基於linux內核的,而且谷歌也並沒有提供適用於windows平台進行編譯的相關代碼和工具,所以要從源代碼編譯android是需要一個linux環境的
雖然谷歌同樣也支持在蘋果的mac系統上編譯,但一方面mac的環境配置較為復雜,另一方面mac用戶不如pc用戶多,要裝mac也遠不如裝linux方便,所以搞這個的,大部分人都是使用的linux
而基於linux內核的操作系統其實有很多,這些不同的linux系統也叫Linux發行版,最主流最常見最通用的一個版本,就是ubuntu(我個人是opensuse黨,也在opensuse上編譯過CM、MIUI,不過opensuse相對更復雜,而ubuntu現成的軟體也更多更方便一點,所以這個教程里是使用的64位ubuntu 12.10來介紹的),而因此也有很多基於ubuntu修改的Linux發行版,比如深度的Linux Deepin和雨林木風的StartOS,所以相對來說,不論是原版ubuntu還是Linux Deepin和StartOS都比較適合剛接觸linux的新手使用
以下所有輸入命令的行為全是在「終端」程序中進行的,下文可能會有多處省略,所以你看到輸命令可別問輸在哪。
-----------------------------------------------------------------------
第二部分:編譯環境的搭建
我本來是使用的12.04,64位桌面版,後來12.10出來了,就順著更新上來了,因為我這里運營商強制上網得用他的撥號軟體,所以我是在虛擬機里搭建的,其實我是推薦直接裝在真機上,這樣性能更好,編譯速度也更快
ubuntu版本的選擇、下載、安裝、更換源、系統更新等等,我就不介紹了,網上教程一堆一堆的
在裝好了ubuntu之後,我們就要開始android rom編譯的環境配置了,大致的說一下,需要下載的文件總共有五步。
㈡ android源碼編譯後如何製作成rom
SDK是開發包,不是完整源代碼吧。你可能需要在Linux上repo完整4.3源代碼(25G左右,精簡後8個多G)。如果手機內核不是3.0以上可能還要重新編譯更新內核(Android4.3貌似一定要3.0以上內核版本)。其實我也不知道如何製作Rom,但略懂下載編譯Android源代碼和內核源代碼,也想知道如何從源代碼製作rom,希望能與樓主交流!
㈢ 怎樣將安卓源代碼製作成rom
這個有點復雜,建議上專業網站上看看...
㈣ 如何利用安卓源代碼開發ROM
你要從安卓,java
c++,硬體,底層一步一步做起。這是一個很復雜的過程,一個人的精力想要把源碼製作出比較出色的rom是相當困難的。所以現在好多rom的開發團隊成立了,比較突出的有miui,CM等,個人通過源碼開發的rom,速度很慢,沒有時間做較深入的優化。如果你真要開發rom,可以把基礎學好了,加入開發團隊,去開發rom也是不錯的
㈤ 怎樣從源碼編譯rom
本帖最後由 pigjohn 於 2014-2-10 20:24 編輯
一、你需要:
1.linux系統環境
教程使用ubuntu 12.04(LTS)
硬碟安裝或虛擬機安裝應該都ok。
2.電腦配置不要太差
二、搭建編譯環境:
1.java安裝配置
1) 刪除舊版本java
ctrl+alt+t 打開終端。
sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*
sudo apt-get purge sun-java
復制代碼
2) 安裝java 1.6
添加軟體源,打開終端輸入
sudo add-apt-repository ppa:webupd8team/java
復制代碼
下載安裝,打開終端輸入
sudo apt-get update && sudo apt-get install oracle-java6-installer
復制代碼
跟隨屏幕提示,你需要接受使用條款。
安裝完成後,終端輸入java -version,你會看到java版本信息。類似
java version 「1.6.0_37″
Java(TM) SE Runtime Environment (build 1.6.0_37-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01, mixed mode)
復制代碼
2.安裝依賴軟體
sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev zlib1g-dev:i386 libc6-dev lib32ncurses5-dev \
ia32-libs x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 \
lib32z-dev libgl1-mesa-dev g++-multilib mingw32 \
tofrodos python-markdown libxml2-utils xsltproc readline-common \
libreadline6-dev libreadline6 lib32readline-gplv2-dev libncurses5-dev \
lib32readline5 lib32readline6 libreadline-dev libreadline6-dev:i386 \
libreadline6:i386 bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev lib32bz2-dev \
libsdl1.2-dev libesd0-dev squashfs-tools pngcrush schedtool libwxgtk2.6-dev
復制代碼
等待安裝配置完成
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
復制代碼
三、源碼下載
1.repo腳本下載
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl [url]https://dl-ssl.google.com/dl/googlesource/git-repo/repo[/url] > ~/bin/repo
$ chmod a+x ~/bin/repo
復制代碼
2.初始化repo同步
mkdir ~/cm11
cd ~/cm11
repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
復制代碼
你需要按提示輸入用戶名和郵箱。
3.9003device源碼
cd ~/cm11/.repo
mkdir local_manifests && cd local_manifests
gedit roomservice.xml
復制代碼
粘貼以下內容
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="dhiru1602/android_device_samsung_galaxysl" path="device/samsung/galaxysl" remote="github" revision="cm-11.0" />
<project name="dhiru1602/android_vendor_samsung_galaxysl" path="vendor/samsung/galaxysl" remote="github" revision="cm-11.0" />
<project name="dhiru1602/android_kernel_samsung_latona" path="kernel/samsung/latona" remote="github" revision="cm-11.0" />
<project name="CyanogenMod/android_packages_apps_SamsungServiceMode" path="packages/apps/SamsungServiceMode" remote="github" revision="cm-11.0"/>
</manifest>
復制代碼
保存。
4.同步源碼
cd ~/cm11
repo sync -j8
復制代碼
源碼有好幾個G,同步時間長短取決於你的網路速度。
四、編譯
1.編譯之前同步最新源碼
repo sync
復制代碼
2.初始化環境
. build/envsetup.sh
復制代碼
3.編譯
brunch galaxysl
復制代碼
接著喝杯茶,編譯時間長短取決於你的電腦配置。
不出意外,你會最終得到~/cm11/out/target/proct/galaxysl/cm-11-XXXXX-UNOFFICIAL-galaxysl.zip
五、刷機測試
以上就是編譯cm11的過程。
對於其他rom,類似。
mokee:
mkdir ~/mokee && cd ~/mokee
repo init -u https://github.com/MoKee/android.git -b kk_mkt
㈥ 安卓android源代碼和rom,求高手解答!!!
rom中的文件一般都是編譯後的二進制文件,一般不會有源文件,.c是c語言源文件,所以應該是看不到的
㈦ 如何把Android源碼編譯成手機的Rom(我有4.3sdk和unyaffs)
SDK是開發包,不是完整源代碼吧。你可能需要在Linux上repo完整4.3源代碼(25G左右,精簡後8個多G)。如果手機內核不是3.0以上可能還要重新編譯更新內核(Android4.3貌似一定要3.0以上內核版本)。其實我也不知道如何製作Rom,但略懂下載編譯Android源代碼和內核源代碼,也想知道如何從源代碼製作rom,希望能與樓主交流!
㈧ 如何自己編譯android系統並製作刷機包
android系統製作刷機包方法:
【一】:下載安裝最新版ROM助手(市場中有很多類似的製作工具,關鍵要求操作簡單,功能強大),安裝程序非常簡單,只需在一隻蘑菇首頁內直接下載,並解壓到自己的電腦安裝即可。
【二】:如果已經下載了與機型匹配的ROM刷機包,那麼現在可以直接打開ROM助手了,接下來繪制專屬個性的完美刷機包就從這里開始吧。
【三】:打開軟體後,它會自動升級到最新版本,另外打開主界面後,會直觀簡明的顯示出它的所有功能,例如:性能優化,系統精簡,預裝APK,簽名打包等等。提醒大家,不要貪心哦,要根據自己的需求點擊需要操作的功能,如系統精簡,然後進入操作界面,所有功能全部修改一遍也無妨,反正都是一鍵操作,省時省力。
㈨ 如何編譯一個可以燒寫進手機中的ROM,Android安卓開發者
首先.還是跟其它文章講的一樣.先下載ANDORID的源碼.在下源碼之前.請看下面第一步
----------
增加代碼,下真機配置
1
vim .repo/local_manifest.xml
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project path="kernel" name="kernel/msm" revision="refs/heads/android-msm-2.6.29"/>
<project path="hardware/htc/dream" name="platform/hardware/htc/dream" revision="master"/>
</manifest>
增加上面這段代碼,為一個配置.告訴伺服器.我們下的代碼.是要裝進真機的.
(就為了多下載一個KERNEL下來。。還有下載DREAM的真機配置參數..)
小哈在這里折騰了很久.很久..非常久..回憶起來內牛滿面
-----
下相關的代碼
2.
repo sync
-----
3.
vim env_rc
加入:
export EMU=/home/coconut/cupcake/out/host/linux-x86/bin
export ARCH=arm
export CROSS_COMPILE=arm-eabi-
export PATH=$PATH:/home/coconut/cupcake/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin:${EMU}
source env_rc
4.
編譯內核及無線網路驅動
$ cd $ANDROID/kernel
$ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- msm_defconfig # 設定默認的msm配置
#編譯內核
make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
#編譯無線網路驅動
cd $ANDROID/system/wlan/ti/sta_dk_4_0_4_32
make ARCH=arm CROSS_COMPILE=$ANDROID/prebuilt/linux-86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- KERNEL_DIR=$ANDROID/kernel
//內核拷到目錄下
$ cp $ANDROID/kernel/arch/arm/boot/zImage $ANDROID/vendor/htc/dream-open/kernel
$ cp $ANDROID/system/wlan/ti/sta_dk_4_0_4_32/wlan.ko $ANDROID/vendor/htc/dream-open/wlan.ko
5.
在HTC網站(developer.htc.com/adp.html)
下載名為signed-dream_devphone_userdebug-ota-14721.zip的包,並把它放在$ANDROID目錄下
$ cd $ANDROID
$ source build/envsetup.sh
$ lunch aosp_dream_us-eng # 指明機型
這樣編譯出來.就會在OUT下出來一個DREAM_OPEN的目錄.裡面就有相關的鏡像文件了.
$ cd vendor/htc/dream-open
$ ./unzip-files.sh # 解壓htc相關驅動
$ cd $ANDROID
$ vi buildspec.mk # 新建配置文件
----
Vim htc_dream.mk
vim /oracle/android/src/vendor/htc/dream-open/htc_dream.mk
在頭部增加
PRODUCT_PACKAGES := \
Calculator \
Email \
ImProvider \
SdkSetup \
VoiceDialer
完成。
回到根目錄
cd /oracle/android/src
vim buildspec.mk
加入( 2010.7.7 不需要加入):
#TARGET_PRODUCT:=htc_dream
#TARGET_PREBUILT_KERNEL:=kernel/arch/arm/boot/zImage
增加:
CUSTOM_LOCALES:=zh_CN
然後:
其中增加環境:
ubuntu 8.10 , sudo apt-get libelf-dev
make clean
// 保證PC有 1280 內存, 加上 1000 SWAP空間..虛擬機也是如此.
然後開始編譯 BOOT.IMG SYSTEM.IMG USERDATA.IMG:
make -j2
接下來
mmm -B $ANDROID/packages/apps/Luancher/ snod
cd out/target/proct/dream-open/
//先測試:
emulator -system . -kernel ~/cupcake/prebuilt/android-arm/kernel/kernel-qemu -data userdata.img
因為出來了BOOT.IMG.這個是真機的..所以不能用BOOT做為內核.要用模擬器來做內核.
//然後開始燒機
fastboot flash boot boot.img
fastboot flash system system.img
fastboot flash userdata userdata.img
fastboot reboot
㈩ 如何再Ubuntu Android模擬器中運行自己編譯好的ROM
你可以先按照我這個文章的方法,安裝Ubuntu 系統中的Android環境。
http://wenku..com/view/5408ed6b0b1c59eef8c7b428.html
確保模擬器可以運行
再把你對應的rom文件,如:target\proct\generic\system.img 復制到模擬器對應的rom目錄下,如:android-sdk\system-images\android-15\armeabi-v7a,覆蓋同名的文件,覆蓋之前記得先備份你之前的文件,方便你要用原始的模擬器。