问下cyanogenmod设置 settings怎么设置比较好。。。。。。

CyanogenMod 11.0 M9 发布,Android 系统修改版_Linux新闻_Linux公社-Linux系统门户网站
你好,游客
CyanogenMod 11.0 M9 发布,Android 系统修改版
来源:oschina.net &
作者:Linux
CyanogenMod 11.0 M9 ,此版本标志着首次发布 Xperia Z2 &sirius&, Xperia Z2 Tablets &castor& 和 HTC One &m8& ,维护者将会每月都进行更新。
改进记录:
* 主题支持额外的 UI 元素* Bug 修复:Heads Up Notifications* 锁屏 & 当使用安全键盘时允许快速双击进入睡眠状态* 触屏 & 提升性能* Safe Headset Volume & prompt when interfering with 3rd party device (Jawbone, Square, etc)* Center clock support* Quick Settings & respect locale changes on additional tiles* Proximity Wake-Up support & prevent accidental wake-up of device by checking to see if proximity sensor is blocked (eg. Device is in a bag or pocket).* Spam notification filtering & Set notifications to auto-ignore based on content (perfect for those pesky games that want you to &Save 20% on our new game&). Long-press offending notificati manage in Privacy settings.* Settings Search & Additional improvements and highlighting* Data Usage Info & Add support for CDMA devices without sim cards* Bluetooth & Add additional A2DP profiles* Bluetooth & Disable AVRCP 1.5 by default (fixes various car unit compatibility)* Email & Fix saving attachments to storage for POP3 accounts* Translations (Thanks CM Crowdin Team!)* Account for Play Services induced wake-locks* Fix encryption on some LG Devices* Dialer & add support for Korean and Chinese to smart-dialer
CyanogenMod(发音:/sa?.'&n.o?.d??n.m?d/)是一个基于系统,供某些手机使用的固件。它提供一些在官方Android系统或手机厂商没有提供的功能,像是:支持 FLAC 音频格式、程序可从SD外置存储器运行、高速缓存压缩(Compcache)、大量的APN名单、重新启动功能、Wi-Fi无线网络支持、蓝牙及USB网络分享&&等。CyanogenMod 也是第一个使用 BFS 作工作管理的操作系统。
CyanogenMod 的详细介绍:CyanogenMod 的下载地址:
本文永久更新链接地址:
相关资讯 & & &
& (03月17日)
& (11/25/:21)
& (07月26日)
& (01月21日)
& (11/12/:23)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款最好用的第三方ROM CyanogenMod 13使用技巧-ROM下载之家官网
当前位置: && &- &
最好用的第三方ROM CyanogenMod 13使用技巧
  【】作为被公认为最好用的第三方ROM,CyanogenMod已经历经了多个版本终于来到了CM13时代,这让很多被品牌厂商抛弃的适配手机纷纷吃上了Android
6.0,虽然CyanogenMod的大名在机友圈中口口相传,但是很多机友还是不知道一些关于CM13的小技巧,小编下面就来为大家总结普及一下吧。
  CyanogenMod解释
  为了方便解释依然祭出不算很伟大的度娘,百度百科如下解释:(对次毫无兴趣的可以跳过)CyanogenMod(发音:[sa?’aen?d??n
m?d],简称CM):Cyanogen团队是目前全球最大的Android第三方编译团队,其发布的Android
2.1内核CM5系列ROM被广泛使用,促进了用户从Android 1.6到Android
2.1版本的第三方升级。这个小组曾经先于Google公司为很多手机率先定制出稳定的Android 1.6 ROM。
  CyanogenMod系列有CM4(Android 1.6)、CM5(Android 2.1)、CM6(Android
2.2)、CM7(Android 2.3)、CM8(Android
3.X【因为Google并没有开放这一代系统的源代码,所以跳过了开发】)、CM9(Android 4.0)、CM10(Android
4.1)、CM10.1(Android 4.2)、CM10.2(Android 4.3)、CM11 (Android 4.4)、CM12 (Android
5.0)、CM12.1(Android 5.1)、CM13 (Android 6.0)。
  CyanogenMod 是一个免费、基于社区构建的 Android OS 的修改和改进版本。
  CM使用方法技巧小合集
  1:开启二级菜单底部字母栏
  在国内大多数厂家都只有主界面的今天,CM13依旧保留了Android的二级菜单,并且为用户罗列了三种排列方法,其中最为推荐的就是按照App名称的首字母的排列方式,手指只需滑动位于屏幕下方的字母就可以快速找到App,非常方便,且动画过度的流畅自然。
  CM13系统首次使用时默认的排序是抽屉式的,对于国内用户而言可能会有点不习惯,但想要改变其方式也非常简单,只需要在主屏幕下长按空白图标,选择设置-快速滚动类型-横向即可,之后将快速滚动勾选,底部的字母栏就会出现在程序列表当中。
  2:打开多窗口操作
  有些游戏发烧友为了在一台手机上开多个窗口而使用分屏软件进行分屏,不过安卓6.0已经考虑到这种需求,在系统中就预加了这个功能,通过安装一个应用就能激活开发者选项中的分屏功能。CM13自然也将这项备受欢迎的功能继承下来了。
  想开启这个功能只需依次打开设置-开发者选项-多窗口模式,之后就可以打开CM13自带的分屏,开启后只需要在最近任务栏里面点击应用标题旁边的黑框就能设置分屏了,值得注意的时分屏的为相近的两个正在运行的程序。
  3:设置受保护的应用
  指纹识别现如今在智能手机上已经非常普遍了,上至几千元的高端手机,下至千元机都加入了指纹识别,不得不说指纹识别对于用户的隐私保护还是非常有效的,除了解锁屏幕以外,指纹识别还能加密应用呦。(由于此功能需要ROM开发者的额外支持,我无法保证此功能可以正常使用)
  在CM13系统中,我们就可以隐藏自己的重要应用,即使手机借给朋友也不怕尴尬,具体操作为进入之后设置密码然后勾选应用,所勾选的应用会在系统桌面及抽屉中隐藏,如果想启动必须在受保护的应用界面启动。
  4:扩展触控键功能
  传统的Android三颗按键仅仅拥有多任务、返回、桌面的功能,而我们zuk支持高大上的U-Touch
2.0,但Android作为开放系统,当然少不了自定义功能了,在CM13系统中用户就可以根据自己的使用习惯给这三颗按键(zuk需要开启了虚拟按键)添加更多功能。
  打开设置后进入按钮选项,可以看到自定义选项包括“Home按键”与“应用按键”,这两个按键都分别可以定义双击、短按、长按,通过识别不同的动作完成操作。
  5:双击电源键按钮
  同样的电源键也有不同的使用方法,用户可以开启双击激活相机的功能,这样在熄屏状态下也能轻松抓拍照片了。
  6:控制栏实时显示指南针
  打个Uber之后司机告诉你方向时,经常使用南北这样的次定位,但对于来自南方的小编来说,简直是分不清楚方向,每次和司机都需要长篇大论的讨论一番位置。有了CM13快捷开启指南针方向后,事情就变得简单多了。想要开启这个功能只需通知栏下拉,之后点击编辑瓷块能够在通知栏里附加一个小型指南针,随时随地看风水。
  CM相关设置小合集
  1、长按电源键+音量-=截图
  2、设置-隐私-呼叫黑名单列表-右上角齿轮:
  3、设置-开发者选项-高级重启
  能够在电源键菜单中增加软重启(hot
reboot)、恢复模式(recovery)、引导模式(bootloader),这样在设置了xposed之后直接软重启会更快,软重启掉电也更少
  4、设置-开发者选项-root授权(人尽皆知我就不说了)
  5、设置-情景模式
  能够设定在连接到某个WiFi之后(如家里的WiFi)自动解除屏幕密码锁,重写音量和亮度等(也可以设置蓝牙作为触发器)
  6、设置-右上角放大镜
  能够在设置中快捷搜索想进入的设置项
  7、设置-ROM Extra Settings
  下面三个选项依次是:边缘触控、灭屏后自动关闭后台、谷歌WiFi检测(把勾去掉则不显示惊叹号)
  8、设置-移动数据网络
  能够设置流量上限,不过CM13流量统计得有点不准,只能做个参考
  9、通知栏下拉-编辑瓷块
  10、通知栏下拉-勿扰模式
  11、时钟-下面三个点-小部件设置-天气面板
  12、设置-应用-右上齿轮-应用所需权限
  13、设置-隐私-隐私防护-右上齿轮-高级
  管理自启动权限、root授权等等,系统应用也能修改
  14、设置-显示-livedisplay
  护眼模式,通知栏下拉里面的那个关闭也是护眼模式开关,自定的话就是根据时间来调节,能够自定义色温
  15、设置-显示-扩展桌面
  能够设置在应用中的沉浸(就是全屏隐藏状态栏)
  16、设置-显示-LCD密度
  调节DPI,可以调整屏幕分辨率的大小,有些应用把DPI调小之后更好看什么的…
  17、设置-关于手机-狂点编译日期可以打开演示模式,此模式下,信号、WiFi、电池全部满格,主要是用来录视频或者是截图
  CM13的一些小技巧小编到这里就算是全部介绍完了。想必老鸟们对这些功能已经是轻车熟路了,当然咱们是为了造福那些初次接触CM13的同学,所以高手们就轻喷啦。
热门刷机包top10
热门刷机教程top10
热门ROM资讯top10
热门手机刷机包
热门刷机包top10
热门刷机教程top10
热门ROM资讯top10
热门手机刷机包
刷机包下载【转载】如何把CyanogenMod 移植到到自己的android设备上 - 【Linux与安卓】 - 电子工程世界-论坛
后使用快捷导航没有帐号?
查看: 7269|回复: 2
【转载】如何把CyanogenMod 移植到到自己的android设备上
在线时间130 小时
威望3732分
芯币3826枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 3732, 距离下一级还需 2268 积分
五彩晶圆(中级), 积分 3732, 距离下一级还需 2268 积分
前言& && && && &今年已经到了四月,不少工作任务与Android相关,于是准备开始开题学习Android。Android已经火热了几年,现在开始看,网上的文章汗牛充栋,想必是乏新可陈。我错过Android总是有缘因的,3年前开始,从moblin、Maemo、到MeeGo,误入Linux终端的领域,还没有来得及感叹一下自己的“新事业”,MeeGo于Nokia犹如被斩下的断臂,和被放弃保帅的车马,只留下特立独行的绝版神机诺基亚N9,在风中做“不跟随(N9的广告语)”的姿态。作为世间的饮食男女,MeeGo可以“不跟随”,我却不能不跟随,当年从事MeeGo的人大多转到了Android平台,我也赶紧爬上Android的大船,并祈祷这艘大船从此顺风顺水一路平安。然一份工作,若无足够钱物驱使,必要做得有趣(俗人本无所求,无非名利),对本人来说,只好看看怎么把事情做成有趣一些开心一些。
工欲善其事,必先利其器
1、基础环境
使用的环境:ubuntu 11.04环境,测试的Android机器 华为:C8500。
官方参考文档:
官方文档列出开发需要下列的软件包以及下载来源:
Python 2.5 -- 2.7,&&python.org.
GNU Make 3.81 -- 3.82,&&gnu.org
JDK 6 if you wish to build G JDK 5 for Froyo or older. You can download both from .这里安装的是JDK6
Git 1.7 or newer.&&.
官方文档说11.10的运行以下的安装命令如下:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
&&zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev \
&&libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown \
&&libxml2-utils xsltproc
网上有一安装的指引给出另一个安装命令
$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&&
由于懒得逐个包去甄别,上述两条命令我都运行和安装了。
注意:sun-java6-jdk是无法安装的,可以自己下载,请参考:
2、关于 USB 访问权限
Android的开发和调试使用的最主要连接设备的命令 adb和fastboot都需要使用USB连接,从文档上知道,Ubuntu下面USB的访问权限可能会出问题,解决的方法文档也列明了。
我的经验是如果访问不了连接的USB设备了,再查阅资料处理。为了以备以后查阅,记录下来如下:
针对摩托罗拉的设备,使用root文件创建/lib/udev/rules.d/11-android.rules,生成下列的配置到文件中。#号为注释符号,下列配置,第一行针对一种设备,第二行针对所有摩托罗拉设备。
#SUBSYSTEM==&usb&, ATTRS{idVendor}==&22b8&, ATTRS{idProduct}==&41db&,MODE=&0666,OWNER=&shallon&
SUBSYSTEM==&usb&, ATTRS{idVendor}==&22b8&, MODE=&0666&, OWNER=&shallon&&&#All Motorola
其中的idVendor和idProduct的值怎么来呢?用USB线连接设备,然后运行lsusb可以看到设备的这两个值,例如,下文显示摩托罗拉的ME811的相关配置值就是22b8和41db。
Bus 001 Device 082: ID 22b8:41db Motorola PCS Droid/Milestone (Debug mode)
Bus 001 Device 083: ID 046d:c018 Logitech, Inc. Optical Wheel Mouse
3、安装reporepo是一种更好的用git的一种工具环境。下面命令中repo安装到用户home目录的bin目录下。
$ mkdir ~/bin
$ PATH=~/bin:$PATH
& ~/bin/repo
$ chmod a+x ~/bin/repo
4、下载安装Android 源码 如果不打算编译Android源码,可以跳过。在WORKING_DIRECTORY上下载源代码,使用repo init命令指定下载源代码的版本,-b 参数指定版本号,如果不指定,则是最近的一个版本。
repo sync则是下载/同步代码的命令。
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
$ repo init -u
$ repo init -u
-b android-4.0.1_r1
$ repo sync
4.a、下载 cyanogenmod 的源码可以生成自定义的 Android RomCyanogenMod 致力于生成第三方的非官方的 Android 的 Rom ,目前比较火爆的小米手机的MIUI就是CyanogenMod的衍生产品。下面的命令获取 gingerbread 的版本的源代码。如果不打算尝试这些工作可以跳过此步。
$ mkdir -p ~/cyanogenmod
$ repo init -u git:///CyanogenMod/android.git -b gingerbread&&
$ repo sync -j16&&
n这里是16,表示同时打开的网络链接数,开启多个网络连接来下载,用以提升的下载的速度。
5、下载开发编译用的Android SDK
参考的官方文档:
5.1下载eclipse开发环境,推荐安装“Eclipse Classic”版本,介质下载的地址: 不用eclipse者可以略过
5.2下载Android SDK,介质安装的地址:
5.3下载安装eclipse 的ADT plug-in,ADT是 Android Development Tools的缩写。
详细的安装方法
5.4安装相关的工具包开发包。
安装的方法,可以从eclipse的IDE界面启动Android SDK Manager, Window & Android SDK Manager,或者在Android SDK的根目录运行android命令。
下列的开发包必须要安装:“SDK Tools”,“SDK Platform-tools”,“Android platforms(选择一个或者多个)”
6、测试Android SDK的主要开发工具
使用USB线连接一台测试的Android设备,运行adb 的两个命令
~/android/sdk/android-sdk-linux/platform-tools$ ./adb devices
List of devices attached
0A3AABB70502A00A device
~/android/sdk/android-sdk-linux/platform-tools$ ./adb shell 连接上设备,能够看到设备上的文件系统,证明adb的工具运作正常。
adb的工具很重要,主要用来调测设备。如果设备被“root”(系统被破解,开放了设备的管理员权限),连接上设备之后,能进行安装、删除软件,远程上传/下载文件,以及查看系统的日志等操作。如果设备没有“root”,则可以用的操作少很多。
6.2 fastboot
fastboot则是用来刷机的,主要用到的操作如下:
& & fastboot flash userdata userdata.img
& & fastboot flash system system.img
& & fastboot flash boot boot.img
& & fastboot reboot
6.3 SDK上的Android模拟器
~/android/sdk/android-sdk-linux/tools$ ./emulator ,显示命令存在,但是报错了,不要紧,这里运行一下只是看看是否正常安装了。
这三个工具的用法,请听下回分解
原文博客地址
如果对linux,Android,wince 等嵌入式底层有兴趣的,请加这个QQ群吧,群号:
在线时间130 小时
威望3732分
芯币3826枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 3732, 距离下一级还需 2268 积分
五彩晶圆(中级), 积分 3732, 距离下一级还需 2268 积分
如何编译cyanogenmod
什么是cyanogenmod
CyanogenMod是一个Android第三方固件发布和维护的组织,基于官方的Android开源代码衍生出自己的版本。其中,CyanogenMod 6基于Android 2.2(Froyo),CyanogenMod 7基于Android 2.3(Gingerbread)以及CyanogenMod的定制代码,CyanogenMod 8基于Android 3.x(Honeycomb),CyanogenMod 9则基于Android 4.x( Ice Cream Sandwich)。国内有许多的智能手机民间的Android ROM定制社区,以及官方发布的深度定制OS大多是基于CyanogenMod衍生而来,其中著名的有小米的MIUI、盛大的乐众Rom等。这里使用CyanogenMod 7来进行研究。
此处,编译CyanogenMod的OS,只编译操作系统的主要部分,并不编译修改操作系统内核,使用现成的操作系统内核进行打包。关于cyanogenmod的源码目录怎么下载以及android的开发调试环境如何安装的问题,请参见我之前的文章。
CyanogenMod 7的源码目录中,用device目录下面列出了许多的厂商的各种机型。如果目标设备在其中,则可以直接进行编译。例如,华为的u8150设备在cyanogenmod 7上可以看到设备相关的目录“~/cyanogenmod/device/huawei/u8150”。这里可以推荐一个步骤一步一步执行即可(添加链接)。如果目标设备不在CyanogenMod支持的列表中,则需要生成设备相关的文件。
如何向CyanogenMod添加一种新的设备
基本上,这个很难,需要比较专业的人士才能做。基本的原理是,利用现成的的一个运作良好的设备,例如,买了一台智能手机后,将该智能手机破解(ROOT),权限打开后,将设备相关的文件逐个拷贝出来,这些设备相关的文件都是SO的文件(运行时链接的文件),这些文件在Cyanogenmod编译完成后直接进行打包。为何不直接编译生成SO文件呢?原因是这些文件直接和特定的设备相关,设备厂商并不开放这部分源代码(Android的License允许),主要是Android操作系统中HAL层的文件(关于Android的HAL结构,是导致设备相关的驱动逻辑没有放在内核,而是放在用户空间的原因,可以查资料了解一下)。
设备相关的文件如何获取呢?如何知道要从现成的机器抓取什么文件下来呢?这个对普通的CyanogenMod编译者来说,直接去网上看看有没有大牛的共享好了。例如,本人的C8500,不是cyanogenmod 7支持的设备类型,我只好在互联网上痛苦的寻找编译所缺失的文件,相关下载链接为试验的时候所用,不能保证该链接长久有效。(实际上,我已经发现部分链接无效了,瀑布汗)
C8500设备的编译准备工作
CyanogenMod源码下载请参见前文: 中的“下载 cyanogenmod 的源码可以生成自定义的 Android Rom” 部分
1.生成~/cyanogenmod/device/huawei的c8500设备目录
1.1下载设备描述文件:ioz9-android_device_huawei_cdd9b.zip(下载链接:)
1.2解开后将根目录改名为c8500
2.添加~/cyanogenmod/device/common/gps目录下c8500相关文件,解决编译找不到文件的问题
2.1.下载ShunYea-android_device_common_gps-b7f9c29.zip文件(下载链接:)
2.2.解开获取gps.conf_CN_SUPL文件和gps_cn_supl.mk文件拷贝到目录下
以下步骤主要为了向编译系统支持多一种设备的编译。
3.添加~/cyanogenmod/vendor/cyanogen/products目录下的cyanogen_c8500.mk文件
3.1下载ShunYea-android_vendor_cyanogen_products-7c7703d.zip文件(下载链接:)
3.2解开获取cyanogen_c8500.mk文件拷贝到目录下
4.~/cyanogenmod/vendor/cyanogen$ vi vendorsetup.sh
add_lunch_combo cyanogen_c8500-eng
5.~/cyanogenmod$ vi ./vendor/cyanogen/products/AndroidProducts.mk
$(LOCAL_DIR)/cyanogen_c8500.mk \
运行~/cyanogenmod/device/huawei/c8500$ ./setup-makefiles.sh
C8500设备的编译过程
1.获得设备相关的文件,将USB线连接一台ROOT之后的C8500设备,打开C8500设备的开发调试选项,并设置环境变量,使adb命令能被当前用户执行。请参见关于adb命令的部分。
cd ~/cyanogenmod/device/huawei/c8500
./extract-files.sh
实际上这个脚本就是调用adb pull命令将设备上的文件逐个抓下来,放到vender/huawei目录下。如果手上没有这样的一台设备,则可以去网上找一找,看看有没有人把目标设备的proprietary包共享出来,例如,C8500的设备,我找到了一个:
下载ioz9-proprietary_vendor_huawei-1d161c3.zip(下载链接:)
解开获取其中的c8500目录整个目录拷贝到~/cyanogenmod/vendor/huawei目录下
2.编译命令
cp ~/cyanogenmod/vendor/cyanogen/products/cyanogen_c8500.mk&&~/cyanogenmod/buildspec.mk
cd ~/cyanogenmod/
. build/envsetup.sh
lunch之后出现了设备列表,选择cyanogen_c8500-eng。eng是工程调试版本的意思。“make -j4”中的4可以修改,根据CPU的个数选择或者CPU个数的两倍来选择,用以加快编译速度。
3.经过漫长的编译过程之后
~/cyanogenmod/out/target/product/c8500目录下可以看到编译结果,主要有用的是:
userdata.img、system.img、boot.img、recovery.img等等。
使用fastboot命令将boot.img 、system.img、userdata.img刷入C8500,然后使用fastboot命令重启设备,详细参见的fastboot部分。
静待C8500启动,查看效果。4. 附录:userdata.img、system.img、boot.img、recovery.img的解包和重新打包工具。在~/cyanogenmod/out/host/linux-x86/bin/目录下,可以找到下列执行命令。
解开boot.img userdata.img system.img
~/cyanogenmod/out/host/linux-x86/bin/unpackbootimg -i boot.img
BOARD_KERNEL_CMDLINE mem=211M console=ttyMSM2, androidboot.hardware=c8500
BOARD_KERNEL_BASE
BOARD_PAGE_SIZE 4096
shallon@shallon-Joybook-R48:~/cyanogenmod/out/target/product/c8500/test$ ls -al
total 6056
drwxr-xr-x&&2 shallon shallon& & -20 14:22 .
drwxrwxr-x 10 shallon shallon& & -20 09:14 ..
-rw-r--r--&&1 shallon shallon 2-04-20 14:22 boot.img
-rw-rw-r--&&1 shallon shallon& && & 9
14:22 boot.img-base
-rw-rw-r--&&1 shallon shallon& && &61
14:22 boot.img-cmdline
-rw-rw-r--&&1 shallon shallon& && & 5
14:22 boot.img-pagesize
-rw-rw-r--&&1 shallon shallon&&2-04-20 14:22 boot.img-ramdisk.gz
-rw-rw-r--&&1 shallon shallon 2-04-20 14:22 boot.img-zImage
解开获得2个重要的文件,一个是操作系统的内核文件boot.img-zImage,一个是根文件系统ramdisk文件,boot.img-ramdisk.gz
~/cyanogenmod/out/host/linux-x86/bin/unyaffs userdata.img
解开可以看到userdata.img里面只有一个/data目录
~/cyanogenmod/out/host/linux-x86/bin/unyaffs system.img
解开可以看到原本位于system目录下的子目录。
将data目录生成文件userdata.img
out/host/linux-x86/bin/mkyaffs2image -f out/target/product/c8500/data out/target/product/c8500/userdata.img
生成boot.img
使用unpackbootimg再次打包生成新的myboot.img文件。该文件和原来的boot.img一样大小。
~/cyanogenmod/out/host/linux-x86/bin/mkbootimg --kernel boot.img-zImage --cmdline mem=211M console=ttyMSM2, androidboot.hardware=c8500 --base 0x --pagesize 4096 --ramdisk boot.img-ramdisk.gz --output myboot.img
生成system.img文件
~/cyanogenmod/out/host/linux-x86/bin/mkyaffs2image -f&&out/target/product/c8500/system out/target/product/c8500/obj/PACKAGING/systemimage_intermediates/system.img
如果对linux,Android,wince 等嵌入式底层有兴趣的,请加这个QQ群吧,群号:
在线时间130 小时
威望3732分
芯币3826枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 3732, 距离下一级还需 2268 积分
五彩晶圆(中级), 积分 3732, 距离下一级还需 2268 积分
& & 昨天写了,今天继续说说Android开发调试的几大工具,主要是adb fastboot 和emulator。一般使用eclipse进行开发的Android开发者也许完全不需要用到这几个命令,但是,若要了解到系统内部,工具无疑就是解剖Android的手术刀。
Android的NAND结构与Root的过程& && & Android的刷机、Root、开发调试过程中不可避免的涉及到Android的NAND(翻译做闪存?)。耳熟能详的主要几大分区有boot、system、userdata、和recovery。
& && &&&system、userdata分区在Android文件系统中被挂载为/system和/data目录,这两个目录在使用调试工具adb的时候可以看得到,/data允许进行读写,主要存放用户自安装的程序以及使用设备产生的用户个人数据,system目录存放系统的文件以及预装的重要的系统应用,挂载到文件系统中不允许读写(除非设备被Root)。boot分区则存放操作系统的内核和initrd。recovery分区包含了一套后备的系统,主要在设备升级、备份、维护的时候使用,简单的说,要刷ROM需要进入recovery模式。
& && &&&在设备的正常工作状态(即是设备没有被Root的时候)下,只有userdata和cache分区是可读写的,其他分区则一般处在只读状态。这种设计的本意是保护系统以及系统的重要程序不被恶意纂改,保证系统的安全性,但是,当recovery分区上的recovery.img被覆盖成另一个版本(例如ClockWorkMod recovery image),recovery分区上的NAND保护机制被破坏了,NAND的分区就完全失去了保护,可以自由的更新system.img和boot.img,此时,可以说设备被Root了,或者说Nand处在&解锁(unlocked)&状态。因此,Android智能手机用户自己动手Root手机设备以及使用网上下载的手机文件来更新Nand(刷机),这是危险的举动。fastboot的用法& && &&&fastboot是Android SDK的用来读写NAND的工具,位于android-sdk-linux/platform-tools目录下,下面介绍fastboot的主要用法。
& && &&&1、手机首先要进入fastboot状态/recovery模式下,有些设备必须确保设备处在S-OFF (security off)状态。 下面以华为的C8500设备来说明。
& && &&&a:首先关机
& && &&&b:按住“音量减键”不放开,按住红色“挂断键”不放开(请一直不要放开按住的“音量减键”),按住“电源键”不放开(请一直不要放开按住的“音量减键”与红色“挂断键”)
& && &&&c:持续按住大约五秒钟(三键同时按住),手机显示停顿在华为Logo画面(手机主界面并没有继续启动,即一直停顿在华为Logo开机画面),即表示手机进入fastboot模式
2、下面这几个命令刷写NAND的主要分区,并重启。
fastboot flash userdata data.imgfastboot flash system system.imgfastboot flash boot boot.imgfastboot reboot3、刷写recovery分区并重启
fastboot flash recovery /path/to/&recovery&.imgfastboot reboot4、擦除分区
fastboot erase bootfastboot erase recovery
& && &&&刷机完成后,在日常开发调试过程中,最重要的工具是adb(Android Debug Bridge),这个工具位于android-sdk-linux/platform-tools目录下。豌豆夹之类的软件是基于adb的底层机制做成的应用(由于这种应用和adb一样需要设备工作在开发调试模式下,相信Android官方其实不想鼓励这种应用)。
& && &&&ADB的用法说明:
& && &&&1、使用USB连接线连接ubuntu和智能手机设备,并在设备上打开调试模式。设置-&应用程序-&开发-&USB调试选项打勾。
& && &&&2、adb devices能够看到设备的状态,adb shell能够连接上去设备看到一个linux的系统,使用ls还能看到文件目录
& && &&&~/android/sdk/android-sdk-linux/platform-tools$ ./adb devices
& && &&&List of devices attached
& && &&&0A3AABB70502A00Adevice
& && &&&~/android/sdk/android-sdk-linux/platform-tools$ ./adb shell
& && & # ls
& && & acct& && && && && &&&init& && && && && &&&sd-ext
& && & cache& && && && && & init.c8500.rc& && &&&sdcard
& && & config& && && && && &init.goldfish.rc& &&&sys
& && & d& && && && && && &&&init.rc& && && && &&&system
& && & data& && && && && &&&mnt& && && && && && &ueventd.goldfish.rc
& && & default.prop& && && &proc& && && && && &&&ueventd.huawei.rc
& && & dev& && && && && && &root& && && && && &&&ueventd.rc
& && & etc& && && && && && &sbin& && && && && &&&vendor
3、上传下载文件
& && &&&adb pull &remote& &local&
& && &&&adb push &local& &remote&
4、查看日志
& && &&&~/android/sdk/android-sdk-linux/platform-tools$ ./adb shell
& && &&&#logcat ActivityManager:I *:S
04-12 16:01:03.255&& I ActivityManager: Start proc com.tencent.mm for broadcast com.tencent.mm/.booter.NotifyReceiver: pid=25676& && & uid=10188 gids={, 1015}
04-12 16:01:03.482&& I ActivityManager: Displayed activity com.android.settings/.ApplicationSettings: 323 ms (total 323 ms)
4、运行系统上的命令,进入adb shell,可以查看到/system/bin有可运行的系统命令使用,此处以sqlite3为例,获取应用的用户数据(被Root的机器,好危险呀)。
& && &&&$ adb -s emulator-5554 shell
& && &&&# sqlite3 /data/data/com.example.google.rss.rssexample/databases/rssitems.db
& && &&&SQLite version 3.3.12
& && &&&Enter &.help& for instructions
& && &&&.... enter commands, then quit...
& && &&&sqlite& .exit
emulator的用法
& && &&&emulator一般的Android开发人员也许不会了解到,原因是万能的eclipse IDE配置好了之后,开发人员就直接写应用,然后在IDE上运行调试去了。这无疑很大程度的降低了开发人员的技术门槛。emulator位于android-sdk-linux/tools目录下,相关的官方文档:
& && &&&emulator的工作原理很简单,创建开发机器上的虚拟硬件设备,在虚拟硬件设备上面运行系统。如果使用eclipse IDE,在第一次运行程序的时候会自动提醒建立虚拟硬件设备(图形界面,直接点击即可)。手工使用命令行创建虚拟硬件设备也可以,参考。
& && &&&命令行下创建虚拟硬件设备:
& && &&&~/android/sdk/android-sdk-linux/tools$ ./android create avd -n my_android2.3 -t 3
& && &&&Auto-selecting single ABI armeabi
& && &&&Android 2.3.3 is a basic Android platform.
& && &&&Do you wish to create a custom hardware profile [no]
& && &&&Created AVD 'my_android2.3' based on Android 2.3.3, ARM (armeabi) processor,
& && &&&with the following hardware config:
& && &&&hw.lcd.density=240
& && &&&vm.heapSize=24
& && &&&hw.ramSize=256
& && &&&命令行下运行模拟器,可以看到一个基于qemu虚拟机上运行的android模拟设备的运行界面:
& && &&&~/android/sdk/android-sdk-linux/tools$ ./emulator -avd my_android2.3
& && &&&用模拟器加载非系统缺省的调试NAND文件,创建好虚拟硬件设备后,使用emulator的参数指定第三方NAND分区文件。例如,下面的命令指定了自编译出来的各种文件:
& && &&&./emulator -avd my_emulator_avd -system ~/cyanogenmod/out/target/product/c8500/system.img -data ~/cyanogenmod/out/target/product/c8500/userdata.img -kernel ~/cyanogenmod/out/target/product/c8500/kernel -ramdisk ~/cyanogenmod/out/target/product/c8500/ramdisk.img -debug all
& && &&&遗憾的是,上述命令我并没有调试成功,模拟器上面显示出黑屏,上述命令仅仅供参考吧。
如果对linux,Android,wince 等嵌入式底层有兴趣的,请加这个QQ群吧,群号:
EEWORLD 官方微信
EE福利 唾手可得
Powered by

我要回帖

更多关于 cyanogenmod设置 的文章

 

随机推荐