本站长期提供ROM下载,可以定制多国语言刷机包和和刷机方案。点击这里给我发消息

编译教程学习笔记

博主备忘笔记 半夏月 930℃ 0评论

以下为本人学习笔记,个人整理学习之用,难免疏漏,大牛们看到了关了就可以了。

1.以超级用户创建新配置文件/etc/udev/rules.d/51-android.rules
$ sudo su
$ gedit /etc/udev/rules.d/51-android.rules

2.把下面的代码复制进去
# adb protocol on passion (Nexus One)
SUBSYSTEM==”usb”, ATTR{idVendor}==”18d1″, ATTR{idProduct}==”4e12″, MODE=”0600″, OWNER=”<username>”
# fastboot protocol on passion (Nexus One)
SUBSYSTEM==”usb”, ATTR{idVendor}==”0bb4″, ATTR{idProduct}==”0fff”, MODE=”0600″, OWNER=”<username>”
# adb protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM==”usb”, ATTR{idVendor}==”18d1″, ATTR{idProduct}==”4e22″, MODE=”0600″, OWNER=”<username>”
# fastboot protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM==”usb”, ATTR{idVendor}==”18d1″, ATTR{idProduct}==”4e20″, MODE=”0600″, OWNER=”<username>”
# adb protocol on stingray/wingray (Xoom)
SUBSYSTEM==”usb”, ATTR{idVendor}==”22b8″, ATTR{idProduct}==”70a9″, MODE=”0600″, OWNER=”<username>”
# fastboot protocol on stingray/wingray (Xoom)
SUBSYSTEM==”usb”, ATTR{idVendor}==”18d1″, ATTR{idProduct}==”708c”, MODE=”0600″, OWNER=”<username>”
# adb protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM==”usb”, ATTR{idVendor}==”04e8″, ATTR{idProduct}==”6860″, MODE=”0600″, OWNER=”<username>”
# fastboot protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM==”usb”, ATTR{idVendor}==”18d1″, ATTR{idProduct}==”4e30″, MODE=”0600″, OWNER=”<username>”
# adb protocol on panda (PandaBoard)
SUBSYSTEM==”usb”, ATTR{idVendor}==”0451″, ATTR{idProduct}==”d101″, MODE=”0600″, OWNER=”<username>”
# fastboot protocol on panda (PandaBoard)
SUBSYSTEM==”usb”, ATTR{idVendor}==”0451″, ATTR{idProduct}==”d022″, MODE=”0600″, OWNER=”<username>”

3.把以上内容的username改为用户名,比如我的就是cdy

配置ccache
ccache(“compiler cache”的缩写)是一个编译器缓存,该工具会高速缓存编译生成的信息,并在编译的特定部分使用高速缓存的信息, 比如头文件,这样就节省了通常使用cpp解析这些信息所需要的时间。如果您编译清单2中的文件,假定foobar.h中包含对其他头文件的引用,ccache会用那个文件的 cpp-parsed版本来取代include声明。ccache只是将最终的文本拷贝到文件中,使得它可以立即被编译,而不是真正去读取、理解并解释其内容。

这一步是可选的。我在编译的时候没有配置ccache,最后的编译时间用了尼玛至少六个小时以上,虽然目前我还没有尝试过配置ccache后的编译速度,这里还是建议读者配置一下,以节省编译时间,不要像我这么悲催。配置方法如下:
打开用户目录下的.bashrc,将下面语句添加到文件后面并保存退出:
$ gedit .bashrc
然后复制export USE_CCACHE=1到文件最后
默认情况下cache(缓存)会保存在~/.ccache目录下,如果主目录位于NFS或其他非本地文件系统上,也要将下面语句添加到.bashrc中,之后保存并退出:
export CCACHE_DIR=home/ximen

安装gcc与g++
$sudo apt-get install gcc-4.4
$sudo apt-get install g++-4.4
按照步骤安装gcc后
$ exit
退出到根目录 比如我的就是ximen@cdy
$cd cm10.1
$cd device
$mkdir htc
$cd htc
$git clone https://github.com/nexx/cyanogen_device_htc_saga.git -b saga

就开始同步decice了
注意:https://github.com/nexx/cyanogen_device_htc_saga.git 是在github上搜索的 比如我的机器所G12 就是 saga device
在saga目录下链接手机
adb shell
./extract-files.sh
这个是sh文件有可能是b开头的,不知道的话ls看看
从手机里拖需要的驱动等东西
如果这步出错
$ adb devices
提示???????????? no permissions
就是没有权限
$cd ~/
退回到根目录
$ cd tools/
$ sudo ./adb kill-server
$ sudo ./adb start-server
$ chmod -R 777 /home/ximen/tools
$ sudo ./adb devices
如果提示成功
List of devices attached
SH1AATJ05597 device
继续进入saga目录执行
./extract-files.sh
然后退回到cm10目录,用envsetup.sh脚本初始化安装环境。可用以下代码:
$ source build/envsetup.sh
或者$. build/envsetup.sh
source的意思就是. 执行的意思

注意.后面有一个空格。
之后,选择要编译的目标:($lunch 可以查看要编译的机型)
$lunch full_saga-eng
$ make

编译完成后,可以在源码目录的out/target/product/generic/目录下看到编译好的ramdisk.img、system.img和userdata.img了
编译错误要重新编译的话,回到cm10目录$ make clean 然后在重新开始编译

错误:没有同步内核
去github上搜 saga common
进入htc目录
$ git clone https://github.com/kylon/AndroMod-kernel.git

AndroMod-kernel这个文件就是内核

 

教程源自http://www.banxiayue.com/ubuntu1204android403.html

转载请注明:半夏月 » 编译教程学习笔记

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽