導航:首頁 > 操作系統 > android修改kernel

android修改kernel

發布時間:2023-07-06 02:49:06

❶ 怎麼修改androidlinux內核

Android 產品中,內核格式是Linux標準的zImage,根文件系統採用ramdisk格式。這兩者在Android下是直接合並在一起取名為boot.img,會放在一個獨立分區當中。這個分區格式是Android自行制定的格式。

Android開發時,最標準的做法是重新編譯於內核和根文件系統,然後調用Android給的命令行文件mkbootimg(out/host/linux-x86/bin/)來打包。

在製作手機ROM時,有時會單獨編譯內核或抽出根文件進行修改內容,比如我只編譯內核,其餘的地方不變。這樣重新安裝巨大的Android開發環境實在不劃算。因此很多boot.img解包工具被人開發出來,這一些工具都是把內核和根文件系統從一個現成的boot.img抽取出來,修發後再次打包還原。

一.常見的解包工具

因為boot.img的格式比較簡單,它主要分為三大塊(有的可能有四塊)

因此很多人開發分析工具,有是linux shell腳本,比如repack-zImage,也有人採用perl,還有C語言編寫的 unbootimg,

我使用的是在源碼位置system/core/mkbootimg/ 下的 mkbootimg。為了簡化,藍點工坊把與mkbootimg中打包工具和解包工具以及所包含的libmincrpty庫抽出來,並且重寫一個Makefile,作為開源項目。
使用者只需要在linux(需安裝gcc,make,一般是標配)或windows(需要安裝mingw)的命令行執行make,即可產生可執行文件mkbootimg ,unpackbootimg。

二.解/打包工具使用

解包工具:unpackbootimg

常見格式
unpackbootimg -i .\tmp\boot.img -o .\out

這一句命令行表示把boot.img解包,所有文件輸出到out目錄下

它會解壓出如下文件:
boot.img-zImage (內核文件)
boot.img-ramdisk.gz (根文件系統打包文件)
boot.img-cmdline (mkbootimg cmdline參數)
boot.img-pagesize (mkbootimg pagesize參數)

boot.img-base (mkbootimg base參數)

打包工具:mkbootimg (Android自帶)

常見的命令格式:
./mkbootimg --cmdline 'no_console_suspend=1 console=null' --kernel zImage --ramdisk boot/boot.img-ramdisk.gz -o boot.img --base 02e00000
這句含義是把內核文件zImage和boot目錄下的根文件壓縮包 boot.img-ramdisk.gz打包成boot.img.
其中cmdline和base的值均來源於unpackbootimg的結果

❷ 安卓手機內核可以替換嗎

可以的,以Virtuous_S4A-2為例
1、從網上下載Virtuous_S4A-2內核。(註:此內核只是作為例子,並不適用於所有機型。你要替換的內核要對應自己的機型以及版本!)
2、然後解壓Virtuous_S4A-2,得到4個文件夾,分別是data,kernel,meta-inf,
system。
3、在進入廚房選擇0進入高級操作菜單,選擇20,boot.img工具
4、選擇S查看一下內核信息,用筆記錄相關信息以便完成後核對數據。特別是基址。
5、復制完文件後,我們回到廚房工具,選擇b,新建boot.img

6、建完後,查看新的boot.img信息。看基址是否一樣。

7、替換內核後,我們也要選擇23把update-script格式轉換為updater-script格式。然後
和上面一樣,打包!簽名!

❸ 如何編譯Android的kernel

1.准備工作: (ubuntu1110 32位)
ubuntu等linuxOS,下載好eclipse,安裝好JDK, 安裝好android的SDK, 在eclipse中成功打開android 手機模擬器即OK。

2.初始化編譯環境 :
關注該網頁上的「installing required packages」,其中有的軟體包因為版本問題而安裝不上,不用管它,之後遇到錯誤再單獨解決。

3.下載內核源碼:
android 2.3 內核 下載需要等待一段時間。

4.下載交叉編譯器:
該步驟有可能耗費大量時間,依據網速不同,幾個小時到幾天不等,或許可以嘗試git clone 後面的地址只下載prebuilt/linux-x86/toolchain

5.設置參數以及編譯:
$ export ARCH=arm
$ export SUBARCH=arm
$ export CROSS_COMPILE=arm-eabi-
$ cd goldfish // 進入下載的源代碼目錄
$ git checkout <commit_from_first_step> //這個步驟我沒有做,不知道幹嘛用的
$ make goldfish_defconfig
$ make

6.報錯信息:
若有報錯說找不到 (arm-eabi-gcc command not found)等等,嘗試使用採用另外一個交叉編譯器。

7.測試:

最後,測試一下剛才編譯的內核:emulator -avd myavd -kernel ~/goldfish/arch/arm/boot/zImageemulator若系統找不到,可以去android SDK中某文件夾找到,加入系統PATH即可。 -avd後面的參數 myavd即為模擬器的名字,這個我是在eclipse中的模擬器管理中新建的一個模擬器,用那個模擬器的名字即可。 -kernel後面的參數就找到剛才編譯出的內核的路徑。
若啟動模擬器失敗,可嘗試關閉後再啟動。第一次啟動模擬器時可能需要等待比較長的時間。

❹ 安卓手機怎麼修改默認打開程序的設置

具體看下面:

1、打開手機,找到設置功能;

4、在選擇你所有打開默認修改文件;

擴展念賣老資料

系統內核的功能配頌

1、Android 是運行於Linux kernel之上,但並不是GNU/Linux。因為在一般GNU/Linux 里支持的功能,Android 大都沒有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以Bionic 取代Glibc、以Skia 取代Cairo、再以opencore取代FFmpeg等等。

2、Android 為了達到商業應用,必須移除被GNU GPL授權證所仔升約束的部份,例如Android將驅動程序移到 Userspace,使得Linux driver 與 Linux kernel徹底分開。

閱讀全文

與android修改kernel相關的資料

熱點內容
cmd命令ip 瀏覽:946
python輸出單引號雙引號 瀏覽:272
腳本編程管理命令 瀏覽:379
小愛音箱pro怎麼自己裝app 瀏覽:118
建立ftp文件夾命令 瀏覽:570
sha1withrsa演算法 瀏覽:453
域名交易系統源碼php 瀏覽:171
求解微分方程數值解的命令有哪些 瀏覽:626
程序員轉時尚傳媒 瀏覽:82
古拳譜pdf 瀏覽:42
一元二次方程無實數根的演算法 瀏覽:352
程序員測試輕松嗎 瀏覽:170
英雄聯盟神魔怎麼綁定伺服器 瀏覽:983
音樂app怎麼換音質 瀏覽:975
python進階客戶流失 瀏覽:280
華為榮耀10伺服器地址 瀏覽:999
javastring相等判斷 瀏覽:413
程序員考研究生學校 瀏覽:935
java卡頓 瀏覽:501
編程軟體怎麼運行zip文件 瀏覽:506