【香橙派 4 lts rk3399】ubuntu16.04.7 搭建android8.1源码编译环境

412 阅读3分钟

软件配置:

     虚拟机软件: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

samba_install_2.png

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 把注册表删了重新安装