手机厂商或者智能模块厂商都是基于Android系统源码基础上进行二次开发,即AOSP(Android Open Source Project),开发人员涉及Framework、APP、底层驱动以及通信BP侧等,这就需要我们了解Android系统的架构设计、编译、刷机验证等知识。
 
AOSP编译命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 cd  LA.UM.7.6/git branch -a git checkout -b SLM758W_meig_custom origin/SLM758W_meig_custom source  build/envsetup.shlunch  42 make -j8 2>&1 | tee build.log  rm -rf out/ 在整体编译时部分依赖测试不会进行编译,所以使用使用mmm时会提示依赖出错,此时应该用mmma进行编译 mm 构建模块在当前文件夹,不构建依赖 mmm 构建模块指定路径,不构建依赖 mma 构建模块在当前文件夹并构建依赖 mmma 构建模块在当前文件夹并构建依赖 make <module name> make SystemUI 其他编译命令: make aboot	              make bootimage make systemimage make userdataimage make recoveryimage mmm packages/apps/Contacts 1.编译环境配置不正常; 2.编译的代码有语法或逻辑错误; 3.编译过程中服务器中断。 1.配置对应编译环境; 2.根据error提示修改代码; 3.重新连接服务器重新编译或者继续编译,若想清除之前编译的信息则使用指令:make clean 
修改验证方式 
修改APK应用 
 
1 2 3 4 5 6 7 8 9 在packages中的应用如果修改后都可以单独编译。先执行  $ source  build/envsetup.sh  $ mmm packages/providers/ContactsProvider/ $ make snod  注:通过mmm packages/providers/ContactsProvider/ 编译后的apk在 out/target/product/generic/system/app  这时候通过 adb install out/target/product/generic/system/app/xxx.apk 安装你刚修改过的apk就可以在模拟器上看到你修改的效果了。 
修改framework 
 
1 2 3 4 5 如果在Contacts.java中修改了,必须重新编译下framework。先执行  $ source  build/envsetup.sh  $ make PRODUCT-sdk-sdk  
高通烧录工具QFIL 1.编译结果目录:\192.168.0.227\home1\fangjian\LA.UM.7.6\out\target\product\msm8953_64
Linux&Git命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 mkdir 7.0 ls cd  ..df -h free -h top git status device/ git diff  device/qcom/msm8937_32/system.prop git diff  device/qcom/msm8937_32/system.prop > patch git log  --oneline -20 
验证ADB命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 adb devices adb shell adb reboot adb logcat -b all > test.log adb shell dumpsys activity | grep Resume adb pull /sdcard/Pictures/xx.png ./ adb install C:\Users\Admin\Desktop\MusicTests.apk adb install -r adb install -t adb shell getprop persist.sys.strict_op_enable adb shell setprop persist.sys.strict_op_enable true  adb shell setenforce 0 adb shell setenforce 1 adb shell getenforce adb root  adb remount adb push out/target/product/generic/system/app/xxx.apk /system/app/ adb reboot C:\Users\Admin>adb shell msm8937_32:/  msm8937_32:/  adb disable-verity adb reboot adb reboot bootloader fastboot flash system system.img  fastboot devices  fastboot reboot  fastboot reboot-bootloader  fastboot flashall  fastboot erase partition  adb root  adb shell cd  data/data/cd  com.android.providers.media/ls 
AOSP编译服务器设置 1 2 3 4 5 6 7 8 9 10 11 12 13 ssh-keygen -t rsa cat ~/.ssh/id_rsa.pub vim ~/.ssh/config Host * KexAlgorithms +diffie-hellman-group1-sha1 git clone  ssh://fangjian@192.168.0.240:29418/LA.UM.7.6 && scp -p -P 29418 fangjian@192.168.0.240:hooks/commit-msg LA.UM.7.6/.git/hooks/