android6.0快速编译

二、常用编译命令

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.xxx.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

你可能感兴趣的:(开发环境相关)