android2.3.1编译
##前言
一直想系统的把android的内容重新捋一遍,今天京东优惠,66入了《Android系统源代码情景分析》
,这书是基于android2.3.1来说明的,为了和方便真机编译与调试,入了nexus s. 好了话不多说,直接上 命令以及error的fix工作.
android2.3.1编译
我的环境:
系统环境为ubuntu 14.04
jdk使用 jdk1.6.0_45
repo init -u https://android.googlesource.com/platform/manifest -b android-2.3.1_r1
repo sync -j4
gcc downgrade:
sudo apt-get install g++-4.4-multilib
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 20 --slave /usr/bin/g++ g++ /usr/bin/g++-4.4
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 20 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8
sudo update-alternatives --config gcc
去google aosp 官网下载对应的driver sh 脚本, 运行生成vendor
$ source build/envsetup.sh
$ lunch
$ full_crespo-userdebug
$ make (这边千万别使用-j, 会引起多线程编译build error)
以下是build时产生的error以及处理:
error:Can't locate Switch.pm in @INC
sudo apt-get install libswitch-perl
dalvik/vm/native/dalvik_system_Zygote.c:191: error: storage size of ‘rlim’ isn’t known
Fix:
diff --git a/vm/native/dalvik_system_Zygote.c b/vm/native/dalvik_system_Zygote.c
index bcc2313..112563a 100644
--- a/vm/native/dalvik_system_Zygote.c
+++ b/vm/native/dalvik_system_Zygote.c
@@ -21,6 +21,7 @@
#include "native/InternalNativePriv.h"
#include <signal.h>
+#include <sys/resource.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <grp.h>
/usr/include/zlib.h:34: fatal error: zconf.h: No such file or directory
Fix:
sudo ln -s /usr/include/x86_64-linux-gnu/zconf.h /usr/include
编译成功后:
去twrp 下载对应的recovery 的 image.
fastboot flash recovery twrp.img
adb reboot bootloader
从bootloader 进入recovery模式,进行双清后,重新进入bootloader,使用一下命令进行刷机.
adb reboot bootloader
fastboot -w flashall
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 450603622@qq.com
文章标题:android2.3.1编译
文章字数:406
本文作者:steinswang
发布时间:2018-08-13, 14:35:48
最后更新:2020-02-03, 11:15:26
原始链接:http://yoursite.com/2018/08/13/android2.3.1-build/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。