跳至主要內容

编译Android系统的步骤


编译Android系统的步骤

  1. 设置环境
source build/envsetup.sh
  1. 加载编译目标
lunch

可以直接回车,选择对应的目标号码

比如说:

aosp@ubuntu:~/android5.1$ lunch

You're building on Linux

Lunch menu... pick a combo:
     1. aosp_arm-eng
     2. aosp_arm64-eng
     3. aosp_mips-eng
     4. aosp_mips64-eng
     5. aosp_x86-eng
     6. aosp_x86_64-eng
     7. aosp_hammerhead-userdebug
     8. aosp_mako-userdebug
     9. aosp_manta-userdebug
     10. mini_emulator_arm64-userdebug
     11. mini_emulator_x86_64-userdebug
     12. m_e_arm-userdebug
     13. mini_emulator_x86-userdebug
     14. mini_emulator_mips-userdebug
     15. aosp_shamu-userdebug
     16. aosp_flo-userdebug
     17. aosp_tilapia-userdebug
     18. aosp_deb-userdebug
     19. aosp_grouper-userdebug
     20. full_fugu-userdebug
     21. aosp_fugu-userdebug
     22. aosp_flounder-userdebug

Which would you like? [aosp_arm-eng] 5
  1. make
make -j16

后面这个任务数,一般是线程数的2倍

如果不加的话,构建系统会自动选择最适合您系统的并行任务计数。

下载 Jdk1.7.x

如果没有注册甲骨文的账号,同学们可以通过网盘下载。 我传到网盘上了。 链接:https://pan.baidu.com/s/1PAAfUdkbwRlzbt72upHHlw 提取码:jj5b

解决JDK的版本问题

把jdk的包拷贝到我们的内部系统里Ubuntu里

进行解压:

tar -xvf jdk-7u80-linux-x64.tar.gz

配置环境变量

视频里的系统的java的地址是:

/home/aosp/devTools/jdk1.7.0_80/bin

配置环境变量步骤

  • 编辑自己Home目录下的.profile文件

  • 追加以下内容

    export JAVA_HOME=/home/aosp/devTools/jdk1.7.0_80/bin
    export PATH=$PATH:$JAVA_HOME
    
  • 要使配置生效,需要source一下

编译输出log

make -j16 2>&1 | tee build.log

问题:unsupported reloc 43 against global symbol stderr

修改 build/core/clang/HOST_x86_common.mk

CLANG_CONFIG_x86_LINUX_HOST_EXTRA_ASFLAGS :=
--gcc-toolchain=$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG) \
--sysroot=$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/sysroot \
-B$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/x86_64-linux/bin \

加上这一段代码:

-B$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/x86_64-linux/bin

加完以后,保存退出,然后

make clean 

其实就是把out目录删除了