目录
环境搭建
https://blog.csdn.net/hool_wei/article/details/125628718
问题总结
全编问题总结
-
/bin/sh: 1: flex: not found
sudo apt-get install flex
-
/u-boot/scripts/fit.sh: line 603: fdtget: command not found
需要安装fdtget
sudo apt-get install device-tree-compiler
-
scripts/extract-cert.c:21:10: fatal error: 'openssl/bio.h' file not found
sudo apt install openssl sudo apt install libssl-dev
-
/usr/bin/env: ‘python’: No such file or directory
sudo apt install python
-
prebuilts/clang/host/linux-x86/clang-3289846/bin/clang.real: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
sudo apt install libncurses5
-
module adbd missing dependencies: libbrotli
通过apt install brotli是不起作用的,github上下载编译安装还是报错。
注意这里是要去替换一下android源码里的/external/brotli
这个库,而非虚拟机。
修改源码过程中问题总结
-
error: Missing nullability on method xxxxxx return [MissingNullability] lint检查 提示“MissingNullability”
问题原因:Android 11 以后谷歌强制开启lint检查,lint检查不过编译会报错
解决方案:加上@Nullable 注解 表明该方法可以返回空 -
新增api编译报错
https://blog.csdn.net/downloadname/article/details/125006111
2. You can update current.txt and/or removed.txt by executing the following command:
按照提示执行命令即可,如果m指令不行,就使用make指令。
修改
- 开启root权限
https://blog.csdn.net/weixin_43245753/article/details/125448467
纠正一下文章中的几处描述不正确的地方:
1)rk3588 andriod12的目录不一定是kernel-5.10,也有可能是kernel-5.11,具体可以看build.sh的脚本打印。
2)base_system.mk位于build/make目录,而非build/core目录。
修改注意点:修改selinux.cpp时不要将StatusFromCmdline方法注释了,否则编译报错,说方法未引用。
模块化编译
frameworks模块化编译
https://blog.csdn.net/lvyaer_1122/article/details/130760135
1.frameworks/base/core/java
下的java源文件修改
frameworks/base/core/java
相关java文件修改,需要编译framework-minus-apex与framework-minus-apex-intdefs模块,而这两个模块属于frameworks/base/Android.bp中定义的,编译指令如下:
mmm frameworks/base/:framework-minus-apex,framework-minus-apex-intdefs
输出路径为out/target/product/xx/system/framework/
如何定位子模块?
找到修改的源文件的最近的Android.bp,检索引用源文件的module或者file_group,只有非default的module才要编译,否则要查找继续查找继承了非default的module;file_group则要找到最邻近的引用的只有非default的module。
0 条评论