Fedora 里编译源码的方法

假设使用~/android目录存放Android源代码.

$ mkdir ~/android
$ cd ~/android
$ curl -s https://dl-ssl.google.com/dl/googlesource/git-repo/repo > repo
$ chmod a+x repo

repo只是用于下载的脚本,然后可以进行真正的初始化:

  • AOSP:
    $ ./repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
  • CM:
    $ ./repo init -u git://github.com/CyanogenMod/android.git -b ics
  • AOKP:
    $ ./repo init -u git://github.com/AOKP/platform_manifest.git -b ics

这时我们得到~/android里的 .repo目录,这里面存放了所有的版本信息

但这时没有源代码,使用下面的命令下载源代码

$ ./repo sync
这会消耗大量的时间,因为需要下载大概4, 5G的版本信息,

安装所依赖的主机端软件环境

# yum install gcc gcc-c++ gperf flex bison glibc-devel.{x86_64,i686} zlib-devel.{x86_64,i686} ncurses-devel.i686 libsx-devel perl-Switch readline-devel.i386 libstdc++.i686 libX11-devel.i686 libXrender.i686 libXrandr.i686
# yum install java-1.6.0-openjdk java-1.6.0-openjdk-devel

如果要编译 CM还需要:

# yum install schedtool pngcrush

解决编译问题

  1. 验证java配置:
    # alternatives –config java
  2. 降级GNU Make
    # yum downgrade make –nogpgcheck –releasever=13
  3. 修改 external/webkit/Source/WebCore/make-hash-tool.pl 脚本
    $ curl -s”https://raw.github.com/gist/2841798/c3aba177e4d14e6dbacc5d8321d25850dce61b35/make-hash-tools.pl” >external/webkit/Source/WebCore/make-hash-tool.pl
  4. 修改 build/core/main.mk 用来支持OpenJDK
    删除下面三行,(大概位于 120行左右):
    ifneq ($(shell java -version 2>&1 | grep -i openjdk),)
    java_version :=
    endif

配置编译

$ source build/envsetup.sh
$ lunch

如果是编译CM, 需要额外下载 ROM Manager:

$ ./vendor/cyanogen/get-rommanager

编译

$ make otapackage

这时会生成校验过的update.zip文件,位于out/target/product/*/.

$ find out/target/product/* -maxdepth 1 -type f -name”*.zip”
  • 可以通过recovery分区进行重烧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值