android2.3.1编译

  1. 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" 转载请保留原文链接及作者。

目录