android 6.0.1 源码编译system,RK3288 android6.0.1 内核极其源码编译详细步骤,JDK安装及不同版本切换(通过.sh 脚本可一键执行整个过程)(第二章)...

整个编译过程大致分为四个步骤:

1.安装相应依赖库文件,以及交叉编译工具和配置环境变量;

2.编译u-boot;

3.编译kernel;

4.编译android;

请认真阅读每个步骤上的提示,以及文件放置的相应路径。如果错误,欢迎批评指正,谢谢!

如果执行.sh 脚本出现问题,请按照步骤在终端手动执行命令。

#!/bin/bash

echo =======================================

echo RK3288 Android6.0.1 源码编译

echo =======================================

echo ======如果在windows下编译执行出现‘损坏的编译器’ sed -i 's/\r$//' filename.sh即可恢复正常======

echo ======.sh文件在哪个目录下执行,Android6.0.1 源码编译也在该目录下进行,本脚本默认在Android6.0.1 源码目录下执行======

echo 1.Ubuntu 12.04.5 LTS 下载安装jdk,并配置环境变量,该过程需要手动按enter键(默认下载到目录/usr/lib/jvm/java-7-openjdk-amd64 ,若要永久变量打开 vim /etc/profile进行设定)

sudo apt-get install openjdk-7-jdk

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

source /etc/profile

echo 2.安卓源码目录下有自带的ndk,将其复制到/usr/lib/jvm/ 目录下,添加环境变量即可使用(若要永久变量打开 vim /etc/profile进行设定)

cp -a ndk /usr/lib/jvm

export NDK_HOME=/usr/lib/jvm/ndk

export PATH=$NDK_HOME:$PATH

NDK_HOME=/usr/lib/jvm/ndk

export PATH=$NDK_HOME:$PATH

source /etc/profile

echo 3.测试jdk、ndk是否安装成功

java -version

java

javac

ndk-build -v

echo 4.安装交叉编译工具

sudo apt-get install gcc-arm-linux-gnueabihf lzop libncurses5-dev libssl1.0.0 libssl-dev libc6:i386 zip unzip git-core gnupg flex bison gperf build-essential curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc

echo 5.编译u-boot,先产生.config文件,最后产生RK3288UbootLoader_V2.30.10.bin文件

cd u-boot

make rk3288_defconfig

make

echo 6.编译kernel(生成kernel.img 和 resource.img)

cd ../kernel

make rockchip_defconfig -j4

make rk3288-miniarm.img -j4

echo 7.编译android6.0.1 AOSP(在目录rockdev/Image-rk3288下生成boot.img、pcba_small_misc.img 、recovery.img、misc.img、pcba_whole_misc.img、system.img)

cd ..

source build/envsetup.sh

lunch rk3288-userdebug

make

./mkimage.sh

echo 8.收集img 和 mkupdate (在目录RKTools/linux/Linux_Pack_Firmware/rockdev_rk3288下生成RK3288UbootLoader.bin 和 update.img)

cd RKTools/linux/Linux_Pack_Firmware/rockdev_rk3288

./collectImages.sh && ./mkupdate.sh

echo 9.在windows 下打开 SpiImageTools.exe 加在update.img,会在当前文件夹下产生bin 档(该工具在源码目录下 RKTools\windows)

echo 10.打开Win32diskImager.exe 将bin 档烧写到SD卡中,然后上电启动RK3288

echo ===================================================================================

echo ============= 编译android6.0.1 AOSP 时遇到的问题以及解决方法 ======================

echo ===================================================================================

echo 1)out/host/linux-x86/bin/jack: 行 131: 8399 已杀死 ERROR: Cannot launch Jack server

echo 解决方法:vim $HOME/.jack(该文件在你的用户目录下) 可以把$HOME/.jack中的配置文件中的SERVER=true设成false,不用jack,jack现在还不稳定。

echo 2)out/target/common/JAVA_LIBRARIES/framwork_intermediates/with-lal/classes.dex 错误

echo 解决方法:重新编译即可。

echo 3)out/target/common/obj/JAVA_LIBRARIES/sdk_v19_intermediates/classes.jack] 错误 1

echo 解决方法:如果在虚拟机内,别使用-j 这样会导致内存不够,编译卡住或者出现错误,直接使用make即可。

echo 4)Warning: This may have produced partial or corrupted output. ninja: build stopped: subcommand failed. make: *** [ninja_wrapper] 错误 1

echo 解决方法:打开目录:vi prebuilts/sdk/tools/jack-admin (该目录位于源码目录)

echo 1.找到如下语句:JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -cp $LAUNCHER_JAR $LAUNCHER_NAME"

echo 2.将上述语句修改为:JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx4096m -cp $LAUNCHER_JAR $LAUNCHER_NAME"

echo 主要是添加了-Xmx4096m参数,接下来在源码目录下执行如下命令重启jack-admin服务:

echo $ ./prebuilts/sdk/tools/jack-admin stop-server

echo $ ./prebuilts/sdk/tools/jack-admin start-server

echo 5)the required version is :1.7.x make failed to build some targets

echo 解决方法:android6.0.1 必须使用1.7.x 版本的openjdk

配置图文:

1)执行完上述步骤 7 中的make 后,如果编译正常通过,将会看到如下显示;

b60e57096ce8d029d6aa98ab549c5361.png

2)执行完上述步骤 7 中的 ./mkimage.sh 后,如果编译正常通过,将会看到如下显示;

05145376c3a8a477e891005b654d2495.png

3)执行完上述步骤 8 中的 ./collectImages.sh && ./mkupdate.sh 后,如果编译正常通过,将会看到如下显示;

0be53d7e95b484b73fc95db4982e9f95.png

注意事项:1)android6.0.1 编译必须使用1.7.x 版本的openjdk ,否则会出现错误

9566c4c100a1cf196128356d10e47817.png

2)如果先安装了openjdk8 ,出现错误,再安装openjdk7,安装不上,则从网上下载,将其解压到/usr/lib/jvm 目录下并配置环境变量

745a78ed951de833b855076db22bc11f.png

3) 通过下面命令从jdk7 切换到jdk8

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-7-openjdk-amd64/bin/java 300

sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-7-openjdk-amd64/bin/javac 300

sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/java-7-openjdk-amd64/bin/jar 300

sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/java-7-openjdk-amd64/bin/javah 300

sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/java-7-openjdk-amd64/bin/javap 300

sudo update-alternatives --config java

4)通过 java -version 命令查看当前使用的jdk 版本

3ef141c35f3d54611df2b3bb4dcc3a7a.png

对RK3288 感兴趣的同仁,可以添加我的QQ:978069311 ,大家相互学习!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值