導航:首頁 > 源碼編譯 > 安卓手機固件編譯

安卓手機固件編譯

發布時間:2022-05-12 21:17:56

『壹』 如何單獨編譯安卓系統源碼指定模塊

android源碼目錄下的build/envsetup.sh文件,描述編譯的命令

- m: Makes from the top of the tree.

- mm: Builds all of the moles in the current directory.

- mmm: Builds all of the moles in the supplied directories.

要想使用這些命令,首先需要在android源碼根目錄執行. build/envsetup.sh 腳本設置環境

m:編譯所有的模塊

mm:編譯當前目錄下的模塊,當前目錄下要有Android.mk文件

mmm:編譯指定路徑下的模塊,指定路徑下要有Android.mk文件

下面舉個例子說明,假設我要編譯android下的\hardware\libhardware_legacy\power模塊,當前目錄為源碼根目錄,方法如下:

1、. build/envsetup.sh

2、mmm hardware/libhardware_legacy/power/

編譯完後 運行 make snod

會重新將你改過的模塊打入到system.img中

『貳』 網上的那些給android手機刷機的「cm固件」是什麼意思

這個是我在網上收來的材料 上面很詳細的說明CM固件的由來 希望對你有用

CM系列固是網友們非常喜歡的安卓手機固件,但是CM與谷歌的Android又是什麼關系呢。

眾所周知,谷歌的Android是開源的,最早共享出源代碼的時候,Android系統版本才發展到2.1與2.2的過渡時期,由於2.2版本中加入了JIT技術,可以大大提高安卓手機的運行效率,因此廣大機友都對其給予厚望,但是谷歌共享的源代碼僅能用於Nexus One這一款手機上,並不適合所有機型。因此CM應運而生。

CM的全稱是CyanogenMod,他是一個Android愛好者組成的團隊,他們通過Google共享的Android源代碼,經過內核部分的修改和GPL協議開發出來了CM系列固件。CyanogenMod官方開發小組受於人數的制約,僅開發部分主流機型的CM系列固件,不過CyanogenMod官方開設了論壇,民間的高手也參與進來開發和維護CM系列固件,不斷加入更多的機型支持,和CM系列固件維護。包括國內網友修改優化的各種固件,大多都是從CM固件中修改而來的。

如果沒有CM團隊,那麼或許眾多老款Android手機都只能停留在Android 1.6或2.1版本,很多全新功能都體驗不到。也可以這樣說,沒有CyanogenMod

的全稱是CyanogenMod,是一個基於開源Android系統,供某些手機使用的二級市場固件。它提供一些在官方Android系統或手機廠商沒有提供的功能 ,例如:支持Free Lossless Audio Codec - FLAC (無損音頻壓縮編碼)音頻格式的音樂,多點觸控, 從SD外置存儲器運行程序,壓縮緩存,大量APN的名單,重新啟動功能,Wi-Fi無線網路支持,藍牙,USB網路分享等。CyanogenMod也是第一個使用BFS作任務管理器的操作系統。也許上面的解釋太過專業,簡單來說,CM安卓系統就是一款基於安卓系統,進行修改定製的第三方系統。同時,CyanogenMod聲稱提供比官方固件版本更高性能和更可靠的系統固件。

根據CM系統的代號分類為:

CM5是Android 2.1的ROM

CM6是Android 2.2的ROM

CM7是Android 2.3的ROM

CM8是Android3.0的ROM

CM9是Android 4.0的ROM

CM10是Android 4.1的ROM

Cyanogen團隊是目前全球最大的Android第三方編譯團隊,由於該團隊曾先於google公司為很多手機,率先定製出穩定的1.6ROM而名聲大噪。CM的ROM以開源、開放、穩定著稱,目前仍有許多刷機發燒友使用其第三方定製ROM。

固件

目前(2012年)固件(firmware)一般存儲於設備中的電可擦除只讀存儲器EEPROM(Electrically Erasable Programmable ROM)或FLASH晶元中,一般可由用戶通過特定的刷新程序進行升級的程序。一般來說,擔任著一個數碼產品最基礎、最底層工作的軟體才可以稱之為固件,比如計算機主板上的基本輸入/輸出系統BIOS(Basic Input/output System),在以前其實更多的專業人士叫它固件。

通常這些硬體內所保存的程序是無法被用戶直接讀出或修改的。在以前,一般情況下是沒有必要對固件進行升級操作的,即使在固件內發現了嚴重的Bug也必須由專業人員帶著寫好程序的晶元把原來機器上的更換下來。早期固件晶元一般採用了ROM設計,它的Firmware代碼是在生產過程中固化的,用任何手段都無法修改。

隨著技術的不斷發展,修改固件以適應不斷更新的硬體環境成了用戶們的迫切要求,所以,可重復寫入的可編程可擦除只讀存儲器EPROM(Erasable Programmable ROM),EEPROM和flash出現了。這些晶元是可以重復刷寫的,讓固件得以修改和升級。

『叄』 如何自己編譯android系統並製作刷機包

android系統製作刷機包方法:

【一】:下載安裝最新版ROM助手(市場中有很多類似的製作工具,關鍵要求操作簡單,功能強大),安裝程序非常簡單,只需在一隻蘑菇首頁內直接下載,並解壓到自己的電腦安裝即可。

【二】:如果已經下載了與機型匹配的ROM刷機包,那麼現在可以直接打開ROM助手了,接下來繪制專屬個性的完美刷機包就從這里開始吧。

【三】:打開軟體後,它會自動升級到最新版本,另外打開主界面後,會直觀簡明的顯示出它的所有功能,例如:性能優化,系統精簡,預裝APK,簽名打包等等。提醒大家,不要貪心哦,要根據自己的需求點擊需要操作的功能,如系統精簡,然後進入操作界面,所有功能全部修改一遍也無妨,反正都是一鍵操作,省時省力。

『肆』 安卓系統(android)怎樣才能成功編譯安裝『make』命令

tar.gz(bz或bz2等) 一、安裝1、打開一個SHELL,即終端2、用cd 命令進入源代碼壓縮包所在的目錄3、根據壓縮包類型解壓縮文件(*代表壓縮包名稱) tar -zxvf ****.tar.gztar -jxvf ****.tar.bz(或bz2)4、用CD命令進入解壓縮後的目錄5、輸入編譯文件命令:./configure(有的壓縮包已經 編譯過,這一步可以省去) 6、然後是命令:make 7、再是安裝文件命令:make install8、安裝完畢如果安裝了busybox命令就要這樣用: busybox+空格+命令

『伍』 如何編譯一個精簡的Android系統

本次試驗使用的android源碼是4.2,編譯的架構是mini-mips。

一、所做的工作
1、修改build/target/proct/mini.mk,去掉一些不必要的模塊(例如Phone、DownloadManager等)
2、修改SystemServer.java,屏蔽一些service,讓系統能夠啟動起來(例如,Location Manager、Telephony Registry)
3、修改dalvik/vm/native/dalvik_system_Zygote.cpp,注釋掉因為檢查不到外部存儲而導致dalvik abort的地方 (這是googel的一個bug,在2013年1月份已解決,如果用這以後的代碼不用修改此處)
4、修改WindowManagerService.java,把發送BOOT_TIMEOUT消息的時間改為0(之前為30秒)

二、系統優化後的效果(驗證工作均在mips模擬器上進行)
1、節省運行內存,下面是全編譯與mini編譯的內存使用狀態的對比
1)full build
MemTotal: 499360 kB
MemFree: 242064 kB
2)mini build
MemTotal: 499360 kB
MemFree: 395192 kB

2、縮短開機啟動時間
在虛擬機上的啟動時間
1)full build-29秒
2)mini build-14秒

3、只啟動home程序,其餘的應用程序均被移除

三、保留android的開發環境
1、adb,ddms,apkinstall等,都能正常工作
2、在eclipse中編寫的android應用程序能夠運行在該mini-android之上

四、開機自動啟動指定應用程序
本次測試使用Gallery.apk應用程序,修改其源碼後可以實現隨系統的啟動而自動啟動的功能。

『陸』 我的手機上編譯時間是11月10日,安卓更新時間是10月1日,這是什麼意思

編譯時間是手機系統軟體版本編譯完成的時間,新手機的系統編譯時間通常會早於手機出廠和購買時間的。

『柒』 有手機的源代碼,如何編譯安卓4.4的系統

代碼編譯…
恐怕這個不是隨隨便便在這里幾句話就能說明白的…
首先要下載安卓4.4的內核,
然後要把廠商的手機源代碼編譯進去,
還要自己寫腳本,
很多都是很技術的活。
lz確定能hold住么?

『捌』 Android系統如何運行動態編譯的程序

把常用的應用程序編譯到img文件中,就成了系統的一部分,用戶不必自己安裝,當然也卸載不了;
同時也可以刪減系統自帶的應用程序,精簡系統;
1.\build\target\proct 目錄下generic.mk文件:
Java代碼 收藏代碼
PRODUCT_PACKAGES := \
AccountAndSyncSettings \
DeskClock \
AlarmProvider \
Bluetooth \
Calculator \
Calendar \
Camera \
testMid \
CertInstaller \
DrmProvider \
Email \
Gallery3D \
LatinIME \
Launcher2 \
Mms \
Music \
我們添加一個testMid \ 應用名稱。
2.把testMid包放入
\packages\apps 目錄下,修改android.mk文件。
Java代碼 收藏代碼
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME := testMid
LOCAL_CERTIFICATE := platform

include $(BUILD_PACKAGE)
註:LOCAL_PACKAGE_NAME := testMid (包名必須和generic.mk中添加的相同)
編譯源碼,可以看到在
\out\target\proct\smdkv210\system\app
目錄下生存了testMid.apk了。這時system.img也包含了此應用。
-------------------------------------------------------------------
特殊情況:有時,應用需要包含jar包,這時的app導入源碼時會出現問題:
MODULE.TARGET.JAVA_LIBRARIES.libarity already defined by ... stop
由於 LOCAL_STATIC_JAVA_LIBRARIES := libarity 會引發錯誤信息。
目前解決方法是:
\build\core 目錄下修改base_rules.mk
注釋掉錯誤信息:
ifdef $(mole_id)
#$(error $(LOCAL_PATH): $(mole_id) already defined by $($(mole_id)))
endif
$(mole_id) := $(LOCAL_PATH)
--重新編譯,這時可以通過了。
(2)、刪除原廠(Telchips)帶源碼的應用程序,如DTV_DVBT
在/device/telechips/m801/device.mk
注釋掉相應語句:
# PRODUCT_PACKAGES += \
# SampleDVBTPlayer \
同時,在/out/target/proct/m801/system/app 找到相應的.APK包,並刪除

『玖』 Android編譯和運行在手機上使用的系統源碼版本各是什麼版本

如果app是和android系統一起進行編譯,如果想讓app的源碼保持一套,卻能夠同時在android4.1和android4.2下進行編譯。如果app源碼與android系統的版本無關,那麼,不存在問題。
但,如果app的實現代碼與所依賴的framework的版本強相關,譬如,Location相關的API,在android4.1和android4.2上的差異比較大。應用如果是採用4.2的API來實現的,在配合android4.1系統編譯時就會報錯。此時,可以採用在Android.mk文件中,根據PLATFORM_SDK_VERSION的值,在編譯時決定要編入哪些Java文件,源碼中同時保留針對android4.1和android4.2的特有實現。
源碼目錄為:

『拾』 如何在Android系統源碼的環境下用make來編譯

第一個方法簡單點,不過需要在Android系統源碼的環境下用make來編譯:
1. 在應用程序的AndroidManifest.xml中的manifest節點中加入
android:sharedUserId="android.uid.system"這個屬性。
2. 修改Android.mk文件,加入LOCAL_CERTIFICATE := platform這一行
3. 使用mm命令來編譯,生成的apk就有修改系統時間的許可權了。

閱讀全文

與安卓手機固件編譯相關的資料

熱點內容
gre詞彙精選pdf 瀏覽:666
榮耀20i照片加密 瀏覽:633
phpshtml 瀏覽:206
高中生玩樂隊能解壓嗎 瀏覽:882
物理伺服器如何租用 瀏覽:99
戰地1是什麼伺服器 瀏覽:957
用友軟體伺服器地址設置 瀏覽:443
逃跑吧少年如何掃碼登錄安卓手機 瀏覽:744
開山工廠壓縮空氣管道 瀏覽:838
java線程佔用內存 瀏覽:488
解壓動畫修指甲游戲 瀏覽:488
m型壓縮機 瀏覽:138
店鋪電腦收銀系統資料庫加密 瀏覽:888
python27mac下載 瀏覽:276
程序員為啥叫程序員 瀏覽:105
編譯原理龍書第二章習題 瀏覽:66
離心式壓縮機試車方案 瀏覽:489
板的演算法例題 瀏覽:621
逗拍視頻壓縮設置 瀏覽:406
身份證加密哪幾位 瀏覽:444