JDK安装
Android7.1系统编译依赖于Java8 编译之前需安装OpenJDK;
安装:sudo apt-get install openjdk-8-jdk
配置 Java 环境变量,在安装路径下执行如下命令:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
或在工程根目录下 将SDK 原本带有 Open JDK8 的配置脚本,,命名为 javaenv.sh。然后直接执行以下命令,配置 JDK:
source javaenv.sh
jack-server配置
在编译过程可能会遇到如下错误
Jack server already installed in "/home/user/.jack-server"
Communication error with Jack server (1), try 'jack-diagnose' or see Jack server
log
Communication error with Jack server 1. Try 'jack-diagnose'
Communication error with Jack server 1. Try 'jack-diagnose'
此错误是因为同一个网络端口号不能多个用户同时使用,所以需要配置各个使用不同的网络端口号。
jack-server 的两个配置文件(user为对应用户的用户名),决定了它所使用的端口号
/home/user/.jack-server/config.properties
/home/user/.jack-settings
这两个配置文件需要配置两个端口号,分别为服务端端口号,及客户端端口号,
两个配置文件中的端口号要匹配。
jack.server.service.port=8074
jack.server.admin.port=8075
及
SERVER_PORT_SERVICE=8074
SERVER_PORT_ADMIN=8075
配置步骤如下:
一、确保两个配置文件存在,并且权限设置为 0600:
chmod 0600 /home/user/.jack-server/config.properties
chmod 0600 /home/user/.jack-settings
若两个配置文件不存在,请参照以下文本新建这两个配置文件。
a.config.properties 文件示例如下(端口号需按实际修改):
jack.server.max-jars-size=104857600
jack.server.max-service=4
jack.server.service.port=8074
jack.server.max-service.by-mem=1\=2147483648\:2\=3221225472\:3\=4294967296
jack.server.admin.port=8075
jack.server.config.version=2
jack.server.time-out=7200
b.jack-settings 文件示例如下(端口号需按实际修改):
# Server settings
SERVER_HOST=127.0.0.1
SERVER_PORT_SERVICE=8074
SERVER_PORT_ADMIN=8075
# Internal, do not touch
SETTING_VERSION=4
修改端口号,请更改 service port 及 admin port 为其他端口号,两个配置文件里的端口号需要匹配。示例如下:
jack.server.service.port=8074
jack.server.admin.port=8075
SERVER_PORT_SERVICE=8074
SERVER_PORT_ADMIN=8075
重新编译 Android,看是否会报错,若依然报错,请尝试更改其他端口号,直至编译通过。
uboot编译步骤
在工程uboot下执行:
make xxx_defconfig(具体为该工程uboot的配置文件)
./xx.sh(执行文件)
编译完,会生成 trust.img、vx.xx.xxx.bin、uboot.img 三个文件。
kernel编译步骤
如今几乎都是依赖于设备树,执行命令:
cd kernel;
make ARCH=arm xxxxxxx(这个工程依赖的板级设备树文件)
或make ARCH=arm xxxxxxx(这个工程依赖的板级设备树文件) -j12
make的时候可以加"-j 12",这个是多线程编译,速度会快很多
编译完成后,在 kernel 根目录生成 kernel.img,resource.img 两个镜像文件。
Android编译步骤
客户按实际编译环境配置好 JDK 环境变量后,按照以下步骤配置完后,执行 make 即可。
$ source build/envsetup.sh
$ lunch
选择 xxx-userdebug
$ make -j4
完成编译后,执行 SDK 根目录下的 mkimage.sh 脚本生成固件,所有烧写所需的镜像将都会拷贝于 rockdev/Image-xxx 目录。
编译模式
在工程下执行#cat build.sh,查看其编译出来的是什么模式
设备起来后,调试串口是没有root权限的,需要ADB进入,执行
adb root
adb shell
即可获得root权限,也可执行adb push操作等
如下是串口调试打印:
如下是进入adb 后有root权限的