android4 4核心編譯(附原始碼)

2021-07-24 14:32:41 字數 1731 閱讀 4126

編譯環境如下圖所示

git checkout remotes/origin/android-msm-hemmerhead-3.4 //根據實際的項行進設定

2.設定環境

1 終端進入原android原始碼目錄設定編譯環境:

cd android-src/android4.4

source build/envsetup.sh

lunch 選擇12,編譯hemmerhead

export android_src_path=/home/(你的原始碼的位置)/android4.4

export path=$android_src_path/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin:$path

export arch=arm

export subarch=arm

export cross_compile=arm-eabi-

3 切換到kernel核心原始碼所在目錄,進行編譯:

cd ../kernel-hammerhead/msm

make hammerhead_defconfig

make

編譯完成後bin檔案在 arch/arm/boot/zimage-dtb目錄下

重新生成boot.img

export target_prebuilt_kernel=$your_kernel_path/arch/arm/boot/zimage-dtb

編譯成功後可以看到下面的輸出:

objcopy arch/arm/boot/zimage

kernel: arch/arm/boot/zimage is ready

cat arch/arm/boot/zimage-dtb

kernel: arch/arm/boot/zimage-dtb is ready

編譯完核心後,核心生成的路徑為:kernel/msm/arch/arm/boot目錄下的zimage-dtb檔案(nexus 5是這個檔案,nexus 4是zimage檔案,請注意別弄錯了

),把該檔案複製到原始碼下的device/lge/hammerhead-kernel夾下(注意:nexus 4則為mako-kernel資料夾),覆蓋掉同名檔案。

編譯核心:make bootimage

4.將生成的核心燒寫至手機

adb reboot bootloader

fastboot flash boot boot.img

5.碰到的一些問題

can't use 'defined(@array)' (maybe you should just omit the defined()?) at kernel/timeconst.pl line 373.

解決方法:把

kernel/timeconst.pl 檔案中 373行的

if (!defined(@val))

改為if (!@val) 

後,編譯成功。

Android 4 4 原始碼編譯記錄

編譯安卓原始碼遇到很多坑,這裡記錄一下,網上大多都是零零散散,大神請繞過此部落格 1.安裝jdk,這邊注意4.4的原始碼只能是jdk 1.6,而且不能是openjdk,怎麼配置網上有,這裡不重複了 2.安裝必須的編譯環境,整理了下,命令為 sudo apt get install flex biso...

android 4 4 讀寫問題

android 4.4 kitkat之後的版本不再支援使用者對外置sdcard secondary storage 的寫入等操作,自4.4開始,google引入saf框架 storage access framework 總的說是對許可權有了更加多的控制 但是可以遵循google要求,調整應用外卡的...

android 4 4刪除簡訊

public void deletesms null,null,null if null c c.movetofirst while c.movetonext catch exception e 但通過列印可以看到上述 的result是等於0的,即沒有刪除掉簡訊。檢查使用者設定許可權的函式是 che...