android 源码编译

Posted 蚂蚁穴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 源码编译相关的知识,希望对你有一定的参考价值。

    今天终于下载android 源码成功,现在记录下编译方法,以备后续之需
    1.更新配置jdk
        

        sudo apt-get update:更新软件
        sudo apt-get install openjdk-7-jdk:更新jdk


    2.设置java版本
     

        $ sudo update-alternatives --config java
        $ sudo update-alternatives --config javac

        提示说只有一个版本,不需要进行设置

    3.执行命令

        sudo apt-get install bison g++-multilib git gperf libxml2-utils make python-networkx zlib1g-dev:i386 zip

遇到如下错误提示
       

下列软件包有未满足的依赖关系:
        g++-multilib : 依赖: cpp (>= 4:4.8.2-1ubuntu6) 但是它将不会被安装
        依赖: gcc-multilib (>= 4:4.8.2-1ubuntu6) 但是它将不会被安装
        依赖: g++ (>= 4:4.8.2-1ubuntu6) 但是它将不会被安装
        依赖: g++-4.8-multilib (>= 4.8.2-5~) 但是它将不会被安装
        E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

        进行如下的方法解决此问题
       

        sudo apt-get install g++-multilib(ok)
        sudo apt-get install  bison git gperf libxml2-utils make python-networkx zlib1g-dev:i386 zip(ok)



    4.更新gcc,ok

sudo apt-get install gcc 


    5.在.bashrc中添加如下内容
      

 export USE_CCACHE=1


    6.运行如下命令
       

prebuilts/misc/linux-x86/ccache/ccache -M 50G


        这个命令看起来像是设置缓存区域大小的.

    7.设置环境
       

source build/envsetup.sh


    8.选择target
      

 lunch

        这个应该是选择编译的模式的,如root还是eng
        这个我选择的是一

    9.进行编译
      

 make -j4


    编译报错
   

prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.8/bin/arm-linux-androideabi-strip:out/target/product/generic/symbols/system/lib/libwebviewchromium.so: File format not recognized


    网上查找对策
    似乎网上说的是跟一个swap有关,进行如下设置
   

    1)sudo dd if=/dev/zero of=/opt/swap1 bs=1024 count=1024000
    2) sudo mkswap /opt/swap1
    3) sudo swapon /opt/swap1
    4) sudo vim /etc/fstab


        增加如下内容
     

  /opt/swap1 swap swap defaults 0 0


    用同样的方法,增加swap2
    进行了上面的设置,方法编译结果还是错误的。继续查找方法

原来,只需要把源码的out目录删除,然后重新编译就行了
    如果你想要结束swap分区,然后重新设置分区大小,可以使用如下命令
  

 sudo /sbin/swapoff /opt/swap2 

 



以上是关于android 源码编译的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向Android 逆向通用工具开发 ( Android 平台运行的 cmd 程序类型 | Android 平台运行的 cmd 程序编译选项 | 编译 cmd 可执行程序 )(代码片段

Android 插件化VirtualApp 源码分析 ( 目前的 API 现状 | 安装应用源码分析 | 安装按钮执行的操作 | 返回到 HomeActivity 执行的操作 )(代码片段

Android 逆向整体加固脱壳 ( DEX 优化流程分析 | DexPrepare.cpp 中 dvmOptimizeDexFile() 方法分析 | /bin/dexopt 源码分析 )(代码片段

错误记录Android Studio 编译报错 ( Could not determine java version from ‘11.0.8‘. | Android Studio 降级 )(代码片段

错误记录Android Studio 编译报错 ( Could not determine java version from ‘11.0.8‘. | Android Studio 降级 )(代码片段

Android源码编译