`

从源代码编译Android(CyanogenMod For Hero GSM)【转】

阅读更多

http://www.cnrgb.com/compile-cyanogenmod-for-hero-gsm-android-from-source-code

 

1. 安装Ubuntu。此处略过。

2. 下载安装必要的包:

$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl sun-java5-jdk zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev

3. 安装Eclipse的ADK (Android SDK)插件,此处略过。

4. 安装Java6.0 JDK

$ sudo add-apt-repository “deb http://archive.canonical.com/lucid partner”

$ sudo aptitude update

$ sudo apt-get install sun-java6-jdk

5. 安装repo

$ mkdir -p ~/bin

$ curl http://android.git.kernel.org/repo > ~/bin/repo

$ chmod a+x ~/bin/repo

将~/bin加入环境变量$PATH中

$ gedit ~/.bashrc

最后一行添加export PATH=$PATH: ~/bin

至此,前期准备工作已经完成了,以下要进行源代码的下载。

$ mkdir -p ~/android/system

$ cd ~/android/system/

$ repo init -u git://github.com/CyanogenMod/android.git -b froyo

$ repo sync

现在正在下载的是Froyo分支的源代码,此过程视网速而定,一般需要半天左右的时间。

有不太明白的地方,抓紧时间赶快复习一下吧。

第三步要进行配置,首先,提取手机内的私有配置文件,也可以使用SDK中提取的文件。

1. 将手机通过ADB连接电脑USB

2. 运行以下指令完成提取

$ cd ~/android/system/device/htc/hero/

$ ./extract-files.sh

3. 下载RomManager

$ cd ~/android/system/vendor/cyanogen/

$ ./get-rommanager

$ ./get-google-files -v MDPI

4. 生成编译配置文件

$ cd ~/android/system/

$ cp ./vendor/cyanogen/products/cyanogen_hero.mk ./buildspec.mk

$ . build/envsetup.sh

$ lunch cyanogen_hero-eng

下面要开始编译源代码,方法有两种:

方法一:直接编译生成update.zip

$ make -j`grep ‘processor’ /proc/cpuinfo | wc -l` CYANOGEN_WITH_GOOGLE=true otapackage

$ ./vendor/cyanogen/tools/squisher

执行完毕之后会在~/android/system/out/target/product/hero/下生成一个update.cm-6xxxxx-signed.zip文件,开始刷吧!

方法二:编译生成Individual.img

$ make -j`grep ‘processor’ /proc/cpuinfo | wc -l` CYANOGEN_WITH_GOOGLE=true

刷.img文件可以在fastboot模式下进行。

$ cd ~/android/system/out/target/product/heroc

$ fastboot flashall

好了,全部过程就是这些,很简单吧?你现在也可以自制ROM了。

分享到:
评论
1 楼 w11h22j33 2011-03-26  
Starting with cyanogen mod for nexus one
This is only for system files, the instructions for kernel making will come as soon as i get some time.

Credits (these people helped me build form source the first time and created some awesome wiki at wiki.cyanogenmod.com)
Cyanogen
Maxisma
Chris Soyars
Kmobs
thedudesandroid
rikupw
pershoot
bcrook
and many more if i have missed just tell me


If u want to learn building from source, cyanogenmod is the best place to start with. What u need is UBUNTU/DEBIAN , i would recommend start with ubuntu as i find it the best to start with it. U should have atleast 20gb of storage in ubuntu. U can use a virtual machine or full OS anything which suits u.

To start with nexus one
Making ur computer ready to build
1. sudo aptitude install git-core gnupg sun-java6-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
2. If u have 64 bit version add this (only for 64bit)
sudo aptitude install ia32-libs lib32z1-dev lib32ncurses5-dev gcc-multilib g++-multilib

3. cd ~
4. mkdir bin
5. cd bin
6. echo $PATH

Here i would recommend editing ur .baschrc in your home directory. It is a hidden file so u have to edit it in terminal using command gedit .baschrc
and adding a line to the last line export PATH=$PATH:~/bin

Now u have to setup repo
1. curl http://android.git.kernel.org/repo >~/bin/repo
2. chmod +x ~/bin/repo


This is for obtaining the source
1. Open Terminal
2. cd ~
3. mkdir cm-build
4. repo init -u git://github.com/cyanogen/android.git -b eclair
5. repo sync
Wait for the repo to sync as it is really huge around 2.5 gb

After the sync has completed u have to create the environment
1. cd cm-build
2. . build/envsetup.sh

Builiding ADB - Do it only if u havent already built it. Most probably u havent

make -j3 adb

now add the path of adb directory of adb like u did for bin. adb will be in the out folder in folder cm-build

Now configure your build
select the build u want to make, list using this command
1. sed -n -e "s/^add_lunch_combo//gp" vendor/*/vendorsetup.sh
2. lunch cyanogen_passion-eng

Get properitery files from ur devices- dont skip this step. U need to have adb setup. And if u are unable to get the files ur build will not complete. i will upload a folder with properitery files today with instructions how to place them so if u r unable to get them u can use those files

1. cd ~/cm-build/vendor/google/passion
2. ./extract-files.sh

Now the final step building

make -j3

The -j flag specifies how many threads the compiler should use. Rule is # of processors+1

its gonna take time for the first time u build so just relax somewhere, go eating, watch Movies, use google video

all the files will be in

~/android-cm/out/target/product/passion

u can use fastboot to flash those files and test the build



If u have any problems while building just let me know with the error where it as stopped. using the command make-clean solves most issues but it will make u build from scratch again thus building will take the same time as it took while building the first time as it clears all the prebuilt files


If u find anything to correct in this wiki let me know i will do it

More to come
1. Kernel compiling
2. making update.zip
__________________
Nexus One- Unlocked Bootloader
CM- Latest
1 GB Apps to sd (780 MB USED)
over 400 apps
16 GB Class 6 Micro SD


HTC MAGIC 32A - Black
16GB class 6 Micro SD
ROM- Cyanogen MOD+ Darkstar theme
400+ Apps(now on PC)
1 Click Install Debian, LXDE, GP2X

follow me on twitter @charansingh

相关推荐

    CyanogenMod编译环境的搭建和可刷机文件的编译及打包

    CyanogenMod编译环境的搭建和可刷机文件的编译及打包

    Android中ADW源代码的同步和编译(windows版)

    ### Android中ADW Launcher源代码的同步与编译(Windows版) #### 一、ADW Launcher简介 **ADW Launcher** 是一款广受欢迎的第三方桌面启动器应用,它提供了丰富的自定义选项和高效的性能表现,使得用户可以根据...

    CyanogenMod10 ntfs 与 exfat 自动挂载支持 源代码

    本代码使 Android 系统能够自动挂载 NTFS 与 exFAT...使用的是 CyanogenMod 10.1 的源代码,并在 Samsung GT-I9100 上测试通过。 具体编译说明请参考 http://http://blog.csdn.net/hackpascal/article/details/8850688

    Android 源代码

    Android源代码是开源的操作系统平台的核心,为开发者提供了深入理解其内部工作原理的机会。对于初学者来说,探索Android源代码不仅是提升技术能力的重要途径,也是成为专业开发者的必经之路。下面将详细介绍Android...

    Android源代码

    要理解和修改Android源代码,首先需要搭建一个完整的编译环境,通常包括Git用于版本控制,JDK用于Java代码编译,以及Android Build Tools等。获取源码后,使用“source build/envsetup.sh”初始化环境,然后通过...

    android4.1及2.3源代码下载地址.txt

    在深入探讨Android 4.1(代号Jelly Bean)与Android 2.3(代号Gingerbread)源代码的获取与应用之前,我们首先需要理解这两个版本在Android历史中的地位及其对开发者和用户的意义。 ### Android 4.1(Jelly Bean) ...

    Android 4.3 源代码

    1. **深度定制**:可以根据源代码修改系统行为,打造个性化ROM,例如LineageOS、CyanogenMod等。 2. **性能优化**:通过分析和调整内核及系统服务,提升设备性能,减少资源消耗。 3. **安全研究**:深入理解系统...

    Android 源码编译过程

    在本文中,我们将深入探讨如何编译Android源代码,这是Android开发过程中不可或缺的一部分。通过编译源码,你可以自定义系统、修复问题或为设备创建特定的ROM。以下是详细的步骤,分为准备构建环境、获取源码和编译...

    最新Android源码编译 ROM 资料

    在Android世界中,编译源码意味着从原始代码构建操作系统,这一过程对于开发者来说是深入理解Android系统工作原理的关键步骤。对于HTC One M7这款设备,用户和开发者经常寻求编译ROM,以获取更新的功能、优化性能...

    Samsung Galaxy S: Compile CyanogenMod (Linux)

    1. **Android源码获取**:首先,你需要从Google的AOSP(Android Open Source Project)仓库克隆源代码。这通常通过Git完成,使用`git clone`命令。 2. **环境配置**:确保安装了必要的工具,例如Java JDK、Git、...

    cyanogenmod-android_packages_java_android_

    【标题】"cyanogenmod-android_packages_java_android_" 指向的是一个开源项目,这个项目是针对Android系统的一个定制化音乐播放器应用的源代码。CyanogenMod是一个知名的Android第三方ROM开发团队,他们通常会为...

    android2.2源码下载

    在Android操作系统的发展历程中,Android 2.2(Froyo)是一个重要的里程碑,它带来了许多性能提升...通过下载、解压、编译源码,以及阅读和分析代码,开发者可以进一步提升自己的技能,并为Android生态贡献自己的力量。

    android4.4源码下载

    Android源代码包含了完整的构建系统,可以编译成可执行的系统映像。在源代码根目录下,运行`mm`命令编译单个模块,或者`make`命令编译整个系统。如果你想要模拟器或真机上运行,可以使用`adb`(Android Debug ...

    一步一步---安装软件及下载CM7源代码2

    标题与描述中的关键词“安装软件及下载CM7源代码”指向了在Ubuntu环境下准备和配置环境以编译CyanogenMod 7(简称CM7)Android操作系统的过程。下面将详细阐述这一过程涉及的关键知识点。 ### 设置root账户 - **...

    CyanogenMod launcher2 源码,eclipse可以编译

    CyanogenMod android平台 android 4.0 launcher 2 源码 eclipse可以编译. 经过大量修改: 它支持android 4.0 系统, 它支持android 4.1 系统. 均通过真机测试. 联系我获得技术支持.

    android_build:Android构建系统(cyanogenmod)

    通过“android_build-master”这个压缩包,我们可以获取到CyanogenMod构建系统的源代码,研究和学习如何定制Android系统,或者为新的设备适配CyanogenMod。这需要一定的编程和Android系统知识,但同时也提供了无尽的...

    编译 i9000的cm系统

    标签 "源码" 和 "工具" 暗示了这个过程会涉及到代码的获取和使用各种开发工具,例如Git用于获取源码,以及Android SDK和Build Tools用于编译。 文件名称 "编译cm11.txt" 可能包含有关如何编译CM11的详细步骤,而 ...

    android:CyanogenMod 11

    要开始使用 Android/CyanogenMod,您需要熟悉 。 要使用 CyanogenMod 树初始化本地存储库,请使用如下命令: repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0 然后将 local_manifest.xml 从这...

    CyanogenMod10 ntfs 与 exfat 自动挂载支持

    本代码使 Android 系统能够自动挂载 NTFS 与 exFAT...使用的是 CyanogenMod 10.1 的源代码,并在 Samsung GT-I9100 上测试通过。 具体编译说明请参考 http://http://blog.csdn.net/hackpascal/article/details/8850688

    Android-App:Android应用程序源代码。-Android app source code

    在Android世界中,开发应用程序是基于开放源代码的Android操作系统,这使得开发者能够深入理解其工作原理并进行自定义修改。"Android App: Android应用程序源代码"是一个项目,提供了Android应用的完整源代码,这...

Global site tag (gtag.js) - Google Analytics