手机厂商或者智能模块厂商都是基于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 2.将其目录下的非文件夹文件拷贝到原始镜像的文件夹中 \SLM758W\android9\SLM758E\V24 3.使用QFil进行烧录 选择xml
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/