android 系统的生成,CyanogenMod源码下载和编译 CM7
来源:互联网 发布:opencv java 图片切割 编辑:程序博客网 时间:2024/04/29 23:11
最新android源码的下载
repo init -u git://github.com/CyanogenMod/android.git -b jellybean
CyanogenMod的环境的搭建和可刷机文件的编译及打包
http://wenku.baidu.com/view/393dab697e21af45b307a879.html
//////////////////////////////////////////////////////////////////
http://www.cnblogs.com/qianxudetianxia/archive/2011/09/27/2193590.html
///////=============
这里着重说下Android 2.3以上需要借助JAVA6,安装Java6,我推荐如下安装:
$ sudo add-apt-repository
"deb http://archive.canonical.com/ lucid partner"
$ sudo add-apt-repository
"deb-src http://archive.canonical.com/ubuntu lucid partner"
$ sudo apt-
get
update
$ sudo apt-
get
install sun-java6-jdk
如果这一步不成功将会导致后面出错,如果失败按下面方法即可:
解决方法:
1. sudo gedit
2. 打开 /ect/apt/sources.list
3. 添加一行
deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse
4. 保存关闭gedit
5. 运行 sudo apt-get update
6.再运行sudo apt-get install sun-java6-jdk
//////=============
2.安装repo
参考repo的安装
////////=================
3.ubuntu中环境的配置
JDK前面已经说了,其他的软件列表如下:
$sudo apt-
get
install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev sun-java6-jdk pngcrush schedtool
///////=================
4.下载CyanogenMod源码
//从用户根目录下开始
//创建CyanogenMod文件夹来放置后面所有的代码
$mkdir CyanogenMod
//获取gingerbread的分支源代码
$repo init -u git:
//github.com/CyanogenMod/android.git -b gingerbread
//同步服务器代码到本地,-j16据网友反应是多开网络连接,从而能提高下载速度
$repo sync -j16
////////////====================
在CyanogenMod/device目录下有很多款手机的对应版本:
$cd CyanogenMod/device/htc/liberty
$./extract-files.sh
第二步:生成编译脚本文件
$cd ~/CyanogenMod/vendor/cyanogen
$./
get
-rommanager
$./extract-google-files
//复制编译脚本文件到CyanogenMod目录下,后面编译整个系统用的就是这个文件
$cp ~/CyanogenMod/vendor/cyanogen/products/cyanogen_lieberty.mk ~/CyanogenMod/buildspec.mk
第三步:编译脚本
回到CyanogenMod目录下,执行脚本。
//初始化脚本,这个是后面的重要基础步骤
$source build/envsetup.sh
//选择编译的产品
//这个命令需要一小会儿时间,但是又没提示,耐性等待一下
$lunch cyanogen_liberty-eng
//开始编译
$make -j4 CYANOGEN_WITH_GOOGLE=
true
otapackage
第四步:生产刷机zip包。
./vendor/cyanogen/tools/squisher
/////==============
有了以上的环境后,我们就可以大展手脚,深度定制ROM, 做自己的操作系统,自己的CyanogenMod,自己的MIUI,自己的Android系统。
举个最简单的例子:
我 们换一下默认menu菜单的选中背景图,我们进入CyanogenMod/frameworks/base/core/res/res/mdpi目录下 (因为htc liberty的分辨率是480x320),找到图片highlight_pressed.png,替换为绿色的背景:
//回到根目录
$cd
//切换到管理员权限
$sudo -s
//进入CyanogenMod目录,并初始化脚本文件
$cd CyanogenMod
$source build/envsetup.h
//选择产品
$lunch cyanogen_liberty-eng
//进入资源编译目录(或者它的子目录也可以)
$cd frameworks/
base
/core/res
//开始编译framework-res.apk
$mm
在CyanogenMod/out/target/product/liberty/system/framework目录下生成了一个framework-res.apk文件,就是我们修改Menu选中项图片后新打的资源包。
现在我们需要把这个资源包更新到手机中。
USB连上手机后,一切正常的话(adb当然也是事前要装好的哦),打开终端:
//使其可写
$adb remount
//替换手机中资源包
$adb push ~/CyanogenMod/
out
/target/product/liberty/system/framework/framework-res.apk /system/framework/
//重启手机后生效
$adb reboot
重启后,进入桌面,我们点击Menu,选择一项:
修改资源包,可以修改样式,显示图片,调整布局等等。
你也可以直接修改framework代码,在framework/base/core /java目录下,修改对应的类,比如逻辑处理,样式重绘等等,然后同上面类似编译,把生成的framework.jar替换掉手机的/system /framework下的framework.jar,重启手机即可看到效果。
你也可以添加系统应用,删除系统应用等等,这里特别提到一点,系统应用可以通过如下命令删除(具有root权限):
$adb remount
$adb shell
#cd system/app
//用rm删除系统FM应用
#rm FM.apk
有了这些基础知识,我相信我们后面的深度定制ROM一定非常精彩!
7.小结
本文以CyanogenMod源码编译总结了Android改造系统的一个基本环境,是我们之后ROM系统定制,优化的基础,是android深入学习的必会技能,特此分享,共勉!
===================================================================================================
本来想下载Android官方源代码,没想到android.git.kernel.org维护,不能访问,非常遗憾,并因此还郁闷了几天。
后来转投MIUI,没找到它的源码,不知道它的"超过40万人社区开发团队"是什么意思,求解具体开发人员几何,都是谁?
后来一想,竟然忘记了CyanogenMod这茬,这可是的的确确的开源啊,我的手机一直也在用CyanogenMod系统的,感觉确实不错。
1.准备
我得环境如下,
VirtualBox 4.1.2.r73507
Ubuntu11.10 Beta2(32位)
下载CyanogenMod的gingerbread分支
Ubuntu的环境配置大家可以参考我前面写的《Android拓展系列(3)--Android源码下载》,也可以参考http://source.android.com/。
这里着重说下Android 2.3以上需要借助JAVA6,安装Java6,我推荐如下安装:
$ sudo add-apt-repository
"deb http://archive.canonical.com/ lucid partner"
$ sudo add-apt-repository
"deb-src http://archive.canonical.com/ubuntu lucid partner"
$ sudo apt-
get
update
$ sudo apt-
get
install sun-java6-jdk
其中第二句可能会出错,不过没关系,跳过即可。
2.安装repo
因为android.git官方已经不能访问,所以我这里提供一个repo文件的下载地址,免的大家到处搜索:http://115.com/file/cl15goo2#repo
把repo拷贝到ubuntu根目录下得bin下
操作方法:
$mkdir bin
//下载的repo脚本拷贝本地bin文件夹下
//设置本地repo的可执行权限
$chmod a+x ~/bin/repo
$alias repo=
"~/bin/repo"
//这里我用特意用别名,大家也可以按常规方法把repo的路径添加到PATH中
3.ubuntu中环境的配置
JDK前面已经说了,其他的软件列表如下:
$sudo apt-
get
install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev sun-java6-jdk pngcrush schedtool
这些软件都安装好之后我们开始下载CyanogenMod源码。
4.下载CyanogenMod源码
//从用户根目录下开始
//创建CyanogenMod文件夹来放置后面所有的代码
$mkdir CyanogenMod
//获取gingerbread的分支源代码
$repo init -u git:
//github.com/CyanogenMod/android.git -b gingerbread
//同步服务器代码到本地,-j16据网友反应是多开网络连接,从而能提高下载速度
$repo sync -j16
这个过程非常的漫长,大家慢慢的等吧,本人是晚上睡觉的时候下载,第二天早上醒来就Done了。
5.编译源码
在CyanogenMod/device目录下有很多款手机的对应版本:
里面有个htc,本人是htc G9,也就是Liberty,我们点击看看:
我的liberty静静的优雅的舒服的躺在那里。
所以本人决定编译一个我手头上的liberty对应的系统版本,编译完成后我们直接刷机。
第一步:读取手机上的一些私有配置文件
$cd CyanogenMod/device/htc/liberty
$./extract-files.sh
图示如下:
第二步:生成编译脚本文件
$cd ~/CyanogenMod/vendor/cyanogen
$./
get
-rommanager
$./extract-google-files
//复制编译脚本文件到CyanogenMod目录下,后面编译整个系统用的就是这个文件
$cp ~/CyanogenMod/vendor/cyanogen/products/cyanogen_lieberty.mk ~/CyanogenMod/buildspec.mk
贴上进行时图片:
第三步:编译脚本
回到CyanogenMod目录下,执行脚本。
//初始化脚本,这个是后面的重要基础步骤
$source build/envsetup.sh
//选择编译的产品
//这个命令需要一小会儿时间,但是又没提示,耐性等待一下
$lunch cyanogen_liberty-eng
//开始编译
$make -j4 CYANOGEN_WITH_GOOGLE=
true
otapackage
这个过程也是相当的漫长,还好一般情况下我们只是第一次需要项目整个编译,后面只需要编译某个模块。
可惜完成的时候我忘记截图了,可惜不能上图了。
在 编译的过程中,我们有一点要特别注意,虚拟机的内存不要太小,本人刚开始分配虚拟机512M内存,一会儿就出错,重新编译又一会儿出错,如此重复,而且还 导致某个文件被破坏掉了(values-cs/strings.xml中某行少一个右尖括号,这个我百思不得其解),后来我把虚拟机内存调到1024M就 一直编译通过了。
第四步:生产刷机zip包。
./vendor/cyanogen/tools/squisher
有图为赏:
用这个zip包,我刷到我手机上,一切正常。
6.定制ROM
有了以上的环境后,我们就可以大展手脚,深度定制ROM, 做自己的操作系统,自己的CyanogenMod,自己的MIUI,自己的Android系统。
举个最简单的例子:
我 们换一下默认menu菜单的选中背景图,我们进入CyanogenMod/frameworks/base/core/res/res/mdpi目录下 (因为htc liberty的分辨率是480x320),找到图片highlight_pressed.png,替换为绿色的背景:
那么修改资源文件后,我们需要重新编译framework-res.apk:
//回到根目录
$cd
//切换到管理员权限
$sudo -s
//进入CyanogenMod目录,并初始化脚本文件
$cd CyanogenMod
$source build/envsetup.h
//选择产品
$lunch cyanogen_liberty-eng
//进入资源编译目录(或者它的子目录也可以)
$cd frameworks/
base
/core/res
//开始编译framework-res.apk
$mm
编译完成,示意图如下:
在CyanogenMod/out/target/product/liberty/system/framework目录下生成了一个framework-res.apk文件,就是我们修改Menu选中项图片后新打的资源包。
现在我们需要把这个资源包更新到手机中。
USB连上手机后,一切正常的话(adb当然也是事前要装好的哦),打开终端:
//使其可写
$adb remount
//替换手机中资源包
$adb push ~/CyanogenMod/
out
/target/product/liberty/system/framework/framework-res.apk /system/framework/
//重启手机后生效
$adb reboot
重启后,进入桌面,我们点击Menu,选择一项:
修改资源包,可以修改样式,显示图片,调整布局等等。
你也可以直接修改framework代码,在framework/base/core /java目录下,修改对应的类,比如逻辑处理,样式重绘等等,然后同上面类似编译,把生成的framework.jar替换掉手机的/system /framework下的framework.jar,重启手机即可看到效果。
你也可以添加系统应用,删除系统应用等等,这里特别提到一点,系统应用可以通过如下命令删除(具有root权限):
$adb remount
$adb shell
#cd system/app
//用rm删除系统FM应用
#rm FM.apk
有了这些基础知识,我相信我们后面的深度定制ROM一定非常精彩!
7.小结
本文以CyanogenMod源码编译总结了Android改造系统的一个基本环境,是我们之后ROM系统定制,优化的基础,是android深入学习的必会技能,特此分享,共勉!
//////////////////////////////////////////////22222222222222222222222222222/////////////////////////////////////////////////
准备编译环境
- 注意: 编译环境只需要搭建一次,如果你之前搭好环境了,就直接跳到 从设备获取必须文件.
安装ADB指令
- 安装 Android SDK.
安装编译必须的组件包
安装编译ROM必须用到的一些组件包:
32位&64位系统都必须安装以下组件包:
git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev sun-java6-jdk pngcrush schedtool
64位系统还需要安装一下组件包:
g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib
- 提示: 安装的时候可能会提示部分组件包被新的包代替,没有关系的。
- 提示: 如果是Ubuntu 10.10, 你必须通过以下命令增加一个合作源才可以安装sun-java6-jdk:
add-apt-repository "deb http://archive.canonical.com/ maverick partner"
创建目录
你必须先创建一些必须的目录来同步CM源码
输入以下命令建立bin目录用来存放repo等工具:
mkdir -p ~/bin
建立android/system目录来放置CM源码,这里的android和system都是可以按照个人需要改变的。比如cm/cm7、cm/cm9等等。
mkdir -p ~/android/system
安装Repo功能
通过一下命令安装 "repo" 工具:
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo ~/bin/repo
- chmod a+x ~/bin/repo
- 提示: 你可能需要重启电脑才能生效。
接下来对repo设置你要获取的源码分支:
- cd ~/android/system/
- repo init -u git://github.com/CyanogenMod/android.git -b gingerbread
- repo sync -j16
从设备获取必须文件
- NOTE: 这个步骤每台手机机器只要操作一次即可,不用每次编译都执行,之前执行过的话,直接跳转到下载RomManager这个步骤.
You will need to have a {{{Device}}} with a working copy of CyanogenMod install and ADB working on the computer. This script will copy the proprietary files from the device.
Connect the device to the computer and ensure that ADB is working properly.
- cd ~/android/system/device/{{{vendor}}}/{{{device}}}/
- ./extract-files.sh
- NOTE: If some hardware isn't working, like camcorder or FM radio, you will need to find the updated prop blobs.
下载RomManager
- 注意: 这个步骤仅仅是为了更新RomManager,如果你不想更新到最新版本,可以直接跳到 编译CM源码(CyanogenMod).
但是,要注意的是,RomManager是必须的,没有RomManager可能会出现编译不通过。
执行以下命令就可以了:
- ~/android/system/vendor/cyanogen/get-rommanager
编译CM源码(CyanogenMod)
更新源码
首先更新一下源码:
- cd ~/android/system/
- repo sync
确定机型 & 编译
确定你要编译的机型代号.
- . build/envsetup.sh && brunch 机器代码
检查源码
First, check for updates in the source:
- cd ~/android/system/
- repo sync
刷机测试
- 在~/android/system/out/target/product/机器代码文件夹下可以找到编译好的ROM包,名称一般类似update.cm-XXXXX-signed.zip.
Android SDK Emulator: Compile CyanogenMod (Linux)
How to compile CyanogenMod for the Android Emulator.
This how-to was written for Ubuntu 10.04 & Ubuntu 10.10, Android Emulator r08, CyanogenMod 7.x (Gingerbread), on 2 February 2011.
Contents
[hide]- 1 Prepare the Build Environment
- 1.1 Install the ADB
- 1.2 Install the Build Packages
- 1.3 Create the Directories
- 1.4 Install the Repository
- 2 Download RomManager
- 3 Building CyanogenMod
- 3.1 Check for updates
- 3.2 Configure Build
- 3.3 Compile
- 4 Install
Prepare the Build Environment
Install the ADB
Install the Build Packages
Install using the package manager of your choice:
For 32-bit & 64-bit systems:
git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev sun-java6-jdk pngcrush schedtools
NOTE:
FOR OPENSUSE : bison flex gperf schedtool squashfs libesd-devel build libSDL-devel gcc-c++ java-1_6_0-sun java-1_6_0-sun-devel
For 64-bit only systems:
g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib
Note: On Ubuntu 10.10, and variants, you need to enable the parter repository to install sun-java6-jdk:
add-apt-repository "deb http://archive.canonical.com/ maverick partner"
Create the Directories
You will need to set up some directories in your build environment.
To create them:
mkdir -p ~/bin
mkdir -p ~/android/system
Install the Repository
Enter the following to download make executable the "repo" binary:
chmod a+x ~/bin/repo
Now enter the following to initialize the repository:
cd ~/android/system/
repo sync -j16
<project path="device/advent/vega" name="CyanogenMod/android_device_advent_vega" /> <project path="device/common" name="CyanogenMod/android_device_common" /> <project path="device/zte/blade" name="CyanogenMod/android_device_zte_blade" />
……
<project path="device/zte/v9" name="CyanogenMod/android_device_zte_v9" />-->
Download RomManager
Download ROM Manager which is needed by the build:
cd ~/android/system/vendor/cyanogen/
./get-rommanager
Building CyanogenMod
Check for updates
First, check for updates in the source:
cd ~/android/system/
repo sync
Configure Build
Now, your environment must be configured to build specifically for the Android Emulator. To set up your build environment:
. build/envsetup.sh
lunch cyanogen_generic-eng
Compile
Next, we will build the actual ROM.
mka
Install
- Create a folder called android-9-cyanogen on Your/Android-SDK/platforms/
- Copy the contents of Your/Android-SDK/platforms/android-9 into Your/Android-SDK/platforms/android-9-cyanogen
- Copy the ramdisk.img system.img and userdata.img file from ~/android/system/out/target/product/generic toYour/Android-SDK/platforms/android-9-cyanogen/images/
- Run the Android AVD Manager and select the second Android 2.3 target.
- android 系统的生成,CyanogenMod源码下载和编译 CM7
- CyanogenMod源码下载和编译 CM7
- android CyanogenMod源码下载和编译
- CyanogenMod源码下载和编译
- CyanogenMod源码下载和编译
- CyanogenMod源码下载和编译(Android ROM定制基础篇)
- CyanogenMod源码下载和编译(Android ROM定制基础篇)
- CyanogenMod源码下载和编译(Android ROM定制基础篇)
- CyanogenMod源码下载和编译(Android ROM定制基础篇)
- CyanogenMod源码下载和编译(Android ROM定制基础篇)
- 【Android ROM定制】CyanogenMod源码下载和编译
- CyanogenMod源码下载和编译(Android ROM定制基础篇)
- CyanogenMod源码下载和编译(Android ROM定制基础篇)
- CyanogenMod源码下载和编译(Android ROM定制基础篇)
- CyanogenMod 10.1源码下载和编译
- CM7源码的同步、编译和异常处理教程
- CM7源码的同步、编译和异常处理教程
- Android拓展系列(5)--CyanogenMod源码下载和编译(Android ROM定制基础篇)
- 主板故障排除法
- cximage+png图片处理(中)
- git linux
- memcached全面剖析–3.memcached的删除机制和发展方向
- 【QTP学习笔记 1 】下拉框数据随机选择,日期输入,如何获取动态的对话框
- android 系统的生成,CyanogenMod源码下载和编译 CM7
- 陶仁贤学习笔记6(天空环境、阳光效果)
- [php内核bug]动态链接方式编译的扩展, 扩展全局空间dtor导致core dump
- Android通过共享用户ID来实现多Activity进程共享
- ajax的原理和应用
- 禁用CvNamedWindow中的关闭按钮
- 基于会话的报告分析
- cximage+png图片处理
- C# Winform如何使用配置文件