android6 0快速編譯

2021-08-28 03:28:50 字數 3200 閱讀 5943

二、常用編譯命令

make -j8            // 八個執行緒 - 根據cpu幾核幾執行緒

make pl                // 編譯preloader

make lk                // 編譯lk

make kernel            // 編譯kernel

make bootimage        // 打包boot.img(包含kernel、dts、rootfs、init.**.rc、sepolicy下的te許可權檔案)

make snod            // 打包system.img(包含hal,jni,framework)

make                // 全部打包

mmma                

2>&1                // 將2(輸出)重定向輸出到1(輸入)

二、單獨編譯sensor hal層:

1.編譯命令:

source build/envsetup.sh ; lunch full_magc6737m_65_n-eng; mmma vendor/mediatek/proprietary/hardware/sensor  2>&1 | tee mm.log

make snod     // 打包生成新的system.img - 如push則不需要        

2.編譯生成:

z:alps\out\target\product\magc6737m_65_n\system\vendor\lib64\hw\sensors.mt6737m.so        // n

z:alps\out\target\product\magc6737m_65_n\system\lib64\hw\sensors.mt6737m.so                // m

3.push到手機

adb remount

adb push path /system/vendor/lib64/hw/        // n

adb push path /system/lib64/hw/                // m

adb shell

rm -r /data/media/0/mtklog

reboot

三、單獨編譯camera hal層效果檔案:

1.編譯命令:

source build/envsetup.sh ; lunch full_magc6737m_65_n-eng; mmma vendor/mediatek/proprietary/custom/mt6735/hal  2>&1 | tee mm.log        

2.編譯生成:

z:alps\out\target\product\magc6737m_65_c_m0\system\lib\libcameracustom.so

z:alps\out\target\product\magc6737m_65_c_m0\system\lib64\libcameracustom.so

3.push到手機

adb remount

adb push path /system/lib/

adb push path /system/lib64/

adb shell

rm -r /data/media/0/mtklog

reboot

四、單獨編譯camera hal層插值檔案:

1.編譯命令:

source build/envsetup.sh ; lunch full_magc6737m_65_n-eng; make libcam.paramsmgr 2>&1 | tee mm.log        

2.編譯生成:

z:alps\out\target\product\magc6737m_65_c_m0\system\lib\libcam.paramsmgr.so

z:alps\out\target\product\magc6737m_65_c_m0\system\lib64\libcam.paramsmgr.so

3.push到手機

adb remount

adb push path /system/lib/

adb push path /system/lib64/

adb shell

rm -r /data/media/0/mtklog

reboot

五、更換/更新modem,之後

1. 替換modem - 

alps\vendor\mediatek\proprietary\modem\

2. 找到並刪除out/obj/目錄中的modem檔案,刪除

find out/target/product/magc6737m_65_n/ -name modem_1_lwg_n.img        // img的名字具體要看modem資料夾

rm out/target/product/magc6737m_65_n/obj/etc/modem_1_lwg_n.img_intermediates/modem_1_lwg_n.img

3. 重新編譯modem相關,並打包成system.img

source build/envsetup.sh ; lunch full_magc6737m_65_n-user ; 

make update-modem;    // 編譯modem相關

make            // 打包成system.img

五、android編譯生成img檔案分析

1. preloader.img

1.1 memory資訊

2. lk.bin

2.1 lcm資訊

3. boot.img            // 如修改init.***.rc,可以單獨編譯許可權後打包mmm external/sepolicy/; make bootimage

3.1 zimage(linux核心映象)

3.2 ramdisk.img(out/root目錄) : init.rc + init.***.rc + init命令

4. recovery.img

5. logo.bin

6. secro.img

7. tee1.img

8. tee2.img

9. system.img        // 可以單獨編譯乙個庫後打包: make snod

10. cache.img    

11. userdata.img

Android6 0編譯過程

1,購買vpn賬號 2,選擇 url 版本,編譯6.0的原始碼時,好像只能在64位系統上。可用 url 虛擬機器 url 安裝ubuntu sudo apt get install git core gnupg flex bison gperf build essential zip curl zl...

MAC 下編譯Android 6 0原始碼

由於mac的檔案系統預設是不區分大小寫的,所以需要建立乙個區分大小寫的磁碟hdiutil create type sparse fs case sensitive journaled hfs size 200g volumes wd android.dmg我是用了外接硬碟來存放原始碼和編譯,空間比較...

Android 6 0許可權管理

android 6.0在我們原有的androidmanifest.xml宣告許可權的基礎上,又新增了執行時許可權動態檢測,以下許可權都需要在執行時判斷 身體感測器 日曆攝像頭 通訊錄地理位置 麥克風 簡訊儲存空間 if contextcompat.checkselfpermission this,m...