软件配置:
虚拟机软件:virtualbox6.1
虚拟机系统:ubuntu16.04.7LTS
源码:香橙派官方的android8.1源码
硬件配置:
宿主机:window10 ps :win11 请退回去 因为rk3399 的原厂驱动不支持 这样你无法进入loader
虚拟机至少配置 12g(越多越好)
虚拟机磁盘空间 300g(越多越好)
编译安卓的要求是12g,你要还想测试那你最好准备个16G不然你会被恶心死,至于多恶心自行体会吧。
前序:
首先放弃14.04这玩意吧 官方推荐是14.04 这玩意 你用离线包 去装jdk-8 依赖也没了 装了1天硬是没安装成功,最后还是乖乖的滚回16.04上
1.0.1:
#ver > 15.04 直接安装jdk-8
sudo apt-get update
sudo apt-get install openjdk-8-jdk
1.0.2 :
#安装基本依赖
sudo apt-get install git gnupg flex bison gperf libsdl1.2-dev \
libesd-java libwxgtk3.0-dev squashfs-tools build-essential zip curl \
libncurses5-dev zlib1g-dev pngcrush schedtool libxml2 libxml2-utils \
xsltproc lzop libc6-dev schedtool g++-multilib lib32z1-dev lib32ncurses5-dev \
lib32readline-dev gcc-multilib libswitch-perl libssl-dev unzip zip
1.0.3:
#运行以下命令来更新默认的 Java 版本:
sudo update-alternatives --config java
sudo update-alternatives --config javac
1.0.4: #确认java路径
ls /usr/lib/jvm/java-8-openjdk-amd64
# 出现这 ASSEMBLY_EXCEPTION bin docs include jre lib man src.zip THIRD_PARTY_README 说明是ok
1.0.5 #使用下面的命令导出 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
1.0.6
sudo apt-get update
sudo apt-get install u-boot-t
1.0.7:(可选)
#安装samba 我是virtual的 所以用其他的请自行查
(0)关闭虚拟机
(1)选择 **设置** > **网络** > **网卡2**。
(2)在 **网卡2** 中选择 **启动网络连接**,连接方式选择 **仅主机(Host-Only)网络**。
(3)单击 **确认** 完成设置。
(4)设置完成后打开虚拟机,输入下列命令:ifconfig
sudo apt-get update
sudo apt-get install samba cifs-utils samba-common
sudo mkdir -p /home/share/samba
sudo chmod 777 -R /home/share/samba
sudo gedit /etc/samba/smb.conf
在文件尾部加入下列字段,然后保存退出:
[share]
path = /home/share/samba
available = yes
browseable = yes
public = no
writable = yes
sudo smbpasswd -a user
sudo service smbd restart
打开我的电脑 添加网络位置->下一步->\\{ifconfig的ip}\share 填入账号密码 就能访问了
1.0.8 至此 环境搭建完毕 可以把源码下载到共享文件夹内
开始编译:
#编译u-boot
test@test:~$ cd RK3399-Android8.1/
test@test:~/RK3399-Android8.1$ ./make.sh -B
成功返回:
pack input u-boot.bin pack file
size: 682652 crc = 0xc21153c6
pack uboot.img success!
#编译内核
./make.sh -K
成功返回:
Image: resource.img (with rk3399-orangepi-4-lts.dtb logo.bmp logo_kernel.bmp) is ready
Image: boot.img (with Image resource.img) is read
#编译安卓
./make.sh -A
成功返回:
Creating journal (16384 blocks): done Writing superblocks and filesystem accounting
information: done ...... [100% 129/129] Install system fs image:
out/target/product/rk3399_mid/system.img
错误总结:
编译的问题:
1:# [JACK错误 SSL error when connecting to the Jack server. Try 'jack-diagnose']
sudo gedit /etc/java-8-openjdk/security/java.security
#把TLSv1, TLSv1.1,删除后保存
jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA,
回到sdk的文件夹下
cd prebuilts/sdk/tools/
./jack-admin kill-server
./jack-admin start-server
2:# [arch/arm64/boot/Image.lz4] Error 1
原因:缺少LZ4这种压缩解法
解决方法:
sudo apt-get update
sudo apt-get install liblz4-tool
重新编译通过。
虚拟机报错:
1:至少是2核心
解决: 设置->系统->处理器 把处理器数量拖到2
2:网卡2设置仅主机网络 无界面名称默认选项。
解决: 卸载虚拟机 使用cclen 把注册表删了重新安装