recovey制作,转

recovery 移植学习

moto的手机实在不给力,我的手机也没大神们做recovery等,无聊的就打算自己做,找了很多教程,也算懂了一些,虽然最终也没成功,但仍学到了很多,再次将我遇到的一些问题简单说下。

主要参考了http://hi.baidu.com/juicewb/item/bb711fb3c3efcce84fc7fdf1及文章里提出的几篇文章。

我是在ubuntu 12.10 64位 系统来做这个的,建立好环境http://source.android.com/source/initializing.html

1.在下载安卓的源码

$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo

此命令有时候会连接不上,不懂怎么回事,这时就可以用以下命令,也是可以用的

curl ”http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo” >~/bin/repo 

同步源码 repo sync -j16 ,的确速度快很多,下载ics源码大约只用了两个多小时,比我的预料快很多。

2.下载完源码,进入源码目录,执行

./build/envsetup.sh

3.执行 make -j4 otatools,下面问题就多了,

chen@chen-virtual-machine:~/cm$ make
cc: 错误: unrecognized command line option ‘-mfloat-abi=softfp’
cc: 错误: unrecognized command line option ‘-mfpu=neon’
cc: 错误: unrecognized command line option ‘-mthumb-interwork’
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.0.4
TARGET_PRODUCT=full
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=IMM76L
============================================
Checking build tools versions...
grep: build/target/board/generic/recovery.fstab: 没有那个文件或目录
build/core/java.mk:20: *** dalvik/dexgen: Invalid LOCAL_SDK_VERSION '4' Choices are: current 。 停止。

这是由于gcc版本引起的,我换了旧版本的gcc没有出现这个问题。

最后出现的问题是由于我的源码是直接拿过来的,重新同步prebuilt ,问题解决。

"rm -rf prebuilt ; repo sync -l prebuilt"

自己同步源文件的时候不会出现这个问题。

继续执行 make -j4 otatools,

中间若遇到cc错误的问题,均是gcc版本等问题引起。换gcc版本可以解决。

4.之后生成out目录,在out/host/linux-x86/bin中有后面要用的工具。

要将bin加入环境变量。

gedit ~/.bashrc
在文本最后添加:
export PATH=$PATH: ~/android/system/out/host/linux-x86/bin
保存退出,执行下面命令,让刚加的环境变量生效:
source ~/.bashrc

我按照上述操作,没有成功,我把环境变量添加在profile。

5.提取官方boot.img。放到了~/ad/目录
执行

./build/tools/device/mkvendor.sh zte n880e ~/android/boot.img
命令参考:
./build/tools/device/mkvendor.sh device_manufacturer_name device_name /your/path/to/the/boot.img

这都没有问题,在device之下会产生你的机型。

修改机型下面的recovery.fstab,我是直接从官方recovery.img中提取的

6.执行./build/envsetup.sh && lunch full_n880e-eng

这时候问题又来了,

1)提示 lunch"未安装"

2)提示 full_n880e-eng不存在,

第二个问题g了好久,才隐约知道问题所在,只能是自己太笨了。

上述问题执行source build/envsetup.sh 问题就解决了。

下面直接执行 lunch full_n880e-eng

7.最后执行

make -j4 recoveryimage

原文地址:https://www.cnblogs.com/xby1993/p/2821228.html