hi,粉丝朋友们:
闲鱼50块钱淘到了一个开源平板,注意这个平板是有源码的,可以进行相关的编译修改。哈哈哈,马哥这边就体验了一下50块钱平板是否可以拿来做framework呢?
哈哈,说好就开干了,拿到了相关资料,发现居然是aosp 5.0的源码。。。。啥上古神器,不过好歹50块钱,也有aosp源码,还有kernel等还是非常值得,这里进行相关源码的编译,不过高版本ubuntu编译这个android 5.0的源码还是有点坑坑洼洼,记录如下:
编译kernel和uboot部分
相关手把手视频讲解如下:https://www.bilibili.com/video/BV1SF411U73z/
可以看视频联系马哥哈获取更多android framework知识
1安装mkimage
sudo apt-get install u-boot-tools
2 awk regenerate rootfs cpio
11282 blocks
12029 blocks
awk: line 2: function strtonum never defined
awk: line 2: function strtonum never defined
解决方法:
sudo apt-get install gawk
编译android部分
3 hide方法需要,make update-api
直接进行make update-api
4、安装openjdk7
安装包:java-7-openjdk-amd64.tar.gz
(下载地址链接: https://pan.baidu.com/s/1TWr9apWgCaRz6RzFiG33Lw?pwd=d1nq 提取码: d1nq)
使用方法
-
拷贝至服务器/个人电脑
-
解包
mkdir /opt/jdk/
sudo tar -zxvf java-7-openjdk-amd64.tar.gz -C /opt/jdk/ -
配置编译环境
JAVA_HOME=/opt/jdk/java-7-openjdk-amd64
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
$ java -version
java version “1.7.0_121”
OpenJDK Runtime Environment (IcedTea 2.6.8) (7u121-2.6.8-1ubuntu0.12.04.3)
OpenJDK 64-Bit Server VM (build 24.121-b00, mixed mode)
4、出现ld相关错误
编译时候出现如下类是错误
libnativehelper/JNIHelp.cpp:310: error: unsupported reloc 43
根据如上报错信息看到,根源是由于ld报错
解决办法:
把当前系统的ld拷贝到源码的prebuild下
cp /usr/bin/ld.gold prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6/x86_64-linux/bin/ld
最后上一个成功的截图: