当前位置:文档之家› 安卓(android)系统固件包修改基础教程

安卓(android)系统固件包修改基础教程

安卓(android)系统固件包修改基础教程
安卓(android)系统固件包修改基础教程

本文为locke原创文章,请尊重作者的劳动成果,转载请注明出处:

https://www.doczj.com/doc/896249352.html,/401389373/blog/ ;(原帖在MSN空间,因为那个空间已挂了,所以现在搬到QQ空间了。)本文所涉及到的资源及工具均来源于网络,因为原空间已挂了,暂时找不到合适的空间存放文件,所以暂时不提供固件修改工具包了,有需要的朋友可以自行搜索。

看来需要工具包的网友还不少,但一个个的分发比较费事,特找了个空间将之上传,供有需要的人下载,地址:

千脑在线

本教程推出未多久时间,很多热门网站和论坛都进行了转载,本人很是欣慰,这是对我劳动成果的肯定。但也有个别的人将上面一段话和文章最后的签名删除了,更有人打出了“原创”字眼,本人在此BS一下这类人。本教程虽然内容不算多,但里边简简单单的一处修改,本人有些都要花费很长时间、一次次尝试、一次次的受着机子变“砖头”的结果做出来的,这些人简简单单的一个拷贝、粘贴命令就把成果占为己有,实在有点不厚道。再次BS之!

目录:

瑞芯微android固件包介绍

一、解包、打包

二、固件升级

三、固件修改

1.固件精减、添加APK软件

2.提取Root权限

3.修改用户分区大小

4.修改设置中“关于MID”中的机型型号

5.美化界面

6. 美化桌面

瑞芯微android固件包介绍

瑞芯微的android固件包分两种:

一种为量产升级包(暂且如此称呼吧,PS:其实称之为开发包较为合适,因为是使用开发工具进行升级。),使用量产升级工具RKAndroidTool.exe进行升级,量产升级包的文件包含:HWDEF、package-file、parameter、recover-script、Rock28Boot(L).bin、update-script和一个Image文件夹,里边又包含boot.img、kernel.img、 misc.img、 recovery.img 、system.img五个镜像文件。System.img包含所有用户资源,大部分情况下修改system.img文件就能达到我们的目的。本文也是重点围绕system.img的修改。

另一种为用户升级包(也暂且如此称呼吧),即将上述量产升级包的文件用工具打包成一个文件――update.img,使用用户升级工具RKAndroidDM.exe进行升级。此文件包需通过解包成量产升级包后才能修改,修改后再打包成update.img 进行升级。

一、解包、打包

对于update.img的解包、打包,需用到附件“打包解包工具”中的AFPTool.exe、mkupdate.bat、unpack.bat三个文件,其中unpack.bat为解包工具,mkupdate.bat为打包工具。将用户升级包update.img和上述三个文件放在同一目录下,双击unpack.bat后,就可以将用户升级包解包成6个文件和一个Image 文件夹,即和量产升级包完全相同的文件。此时可对相应的文件进行修改,修改完成后,再双击mkupdate.bat,会在Image文件夹下产生一个update.img,此文件就是打包后新生成的用户升级包文件。

对于system.img的解包、打包,需用到cramfsck、mkcramfs两个工具,此img 文件和工具需在Linux(Ubuntu、RedHat等)系统下操作和使用,来进行解包、打包,cramfsck为解包工具,mkcramfs为打包工具。

先通过本地硬盘、U盘或者Live CD启动到Linux下(Linux相关知识和安装不在本篇介绍范围内,请自行Google),然后将system.img、cramfsck、mkcramfs 三个文件拷贝到系统的root文件夹下。(有些Linux系统对挂载的其它分区或磁盘兼容性不好,所以拷贝到系统分区进行操作可减少出问题的可能性,本文涉及到Linux部分的操作以BackTrack3操作系统为示例。部分人反映用Ubuntu

的精简等版本时用不了已编译好的cramfsck和mkcramfs,所以在教程包中又放入了一个deb的文件,在启动到Linux后双击就可以像Windows一样安装它了。)

打开一个shell,在shell中输入:

cramfsck -x system system.img

对system.img文件进行解包,执行完成后,会产生一个名为system的文件夹,如下图所示:

也可以采用以下方法进行解包,原理就是mount这个镜像文件,然后再拷贝出来,命令如下:

mkdir system

sudo mount -t cramfs -o loop system.img system

tar cvzf system.tgz system

sudo umount system

rm -r system

tar xzvf system.tgz

用这个方法的好处是可以避免某种情况下出错的可能,第一种方法在某些情况下会造成某些文件损坏,有碰到过。

解包后的System文件夹内包含9个文件夹和1个文件,简单说明如下:

/system/app 系统应用程序存放目录

/system/bin 系统的本地程序,是binary二进制的程序,里面主要是Linux系统自带的组件。

/system/etc 系统的配置文件,比如APN接入点设置等核心配置。

/system/fonts 字体文件夹。

/system/framework 主要是一些核心的文件,从后缀名为jar可以看出是系统平台框架。

/system/lib 存放的主要是系统底层库,如平台运行时库。

/system/media 铃声音乐文件夹,除了常规的铃声外还有一些系统提示事件音

/system/usr 用户文件夹,包含共享、键盘布局、时间区域文件等。

/system/xbin 存放系统管理工具,他们都是为系统管理员准备的,是一些系统管理和配置工具。

/system/build.prop 属性文件,“关于MID”中所显示的软件版本、内核、机型等信息。

通过上面进行简单的介绍,相信你已有了一个大概的了解了。

此时可对system文件夹下的文件进行其它修改了,比如提取root权限、固件精减、APK替换修改等操作。

修改完成后,需要对system文件夹进行打包,在shell中输入:

mkcramfs system system02.img

(为了便于区分原先的img文件,所以建议重新生成的文件不要与原文件名一样。)

此时会在root目录下生成一个新文件system02.img,这个文件就是我们修改好并重新打包OK的文件了。

此时,对于update.img和system.img两个文件的解包、打包操作就介绍完了。对于system.img和相应的文件是否需要打包成用户升级包update.img就看各位是否有需要了。

二、固件升级

固件升级有两种工具可实现(其实还有第三种升级――即通过MID本机进行升级,不过需要原生软件和硬件支持才可以实现,目前发现上市的机子还无此功能。所以略过…),即量产升级、用户升级。

量产升级:将量产升级包的6个文件和一个文件夹,放入../升级工具/量产升级工具_RKAndroidTool/rockdev文件夹下,然后打开量产工具

RKAndroidTool.exe,如下图所示:

(如有需要勾选Loader、Backup选项,对于软件跨版本较大或修改过分区等情况可勾选Loader,如果你的MID没有Recover功能,Backup选项无需勾选。题外话太多了,现转移到正题。)

关机状态下长按ESC键或菜单键(视机型而定,具体请自行查找相应信息)的同时连接PC,按提示安装驱动(首次使用),驱动路径指向.. /升级工具

/rk28usb‐Driver,安装好驱动后按“执行”即可完成升级。

注意:如果是Vista、Windows7系统需用管理员权限运行本工具,否则会提示“测试设备失败”,造成升级失败。

用户升级:打开用户升级工具RKAndroidDM.exe,如下图所示:

点击“…”按钮,选择电脑中要升级的用户升级文件update.img,然后按量产升级的方法连接你的MID,提示找到设备后按“升级”按钮进行升级,完成后提示“升级成功”后拔掉USB线重新开机即可。

三、固件修改

前面讲解了那么多了,前戏应做的很足了,现在开始介绍各位同鞋最为关心滴事、最最为想做滴事情,我再次手把手滴开始教各位同鞋鸟,希望能和大家一起达到目的,冲向高潮。吼……!!!

1,固件精减、添加APK软件

将system.img解包,解包后将../system/app目录下的不需要的APK文件进行删除、修改、替换,以制作适合自己的固件包,对于app目录内不清楚用途的APK文件,请勿随意删除,以免引起不必要的问题。

注意:据说个别APK软件需自带的库文件支持才能正常运行,此时可用WinRAR 等压缩软件将APK文件打开(将.apk后缀改成.zip,然后用压缩软件打开即可),从里边找到后缀为.so的文件,然后放入../system/lib文件夹下即可。

修改完成后,然后进行打包、升级、测试。

2,提取Root权限

将system.img解包,解包后将“取root权限文件”目录中的Superuser.apk、su两个文件分别放进下列目录:

Superuser.apk ---> ../system/app

su ---> ../system/bin

打开一个shell,然后用chmod 6755修改文件的权限,如图示。

Chmod 6755 /system/app/Superuser.apk

Chmod 6755 /system/bin/su

上述命令需注意大小写,否则有可能会出错。修改完成后打包即可。

我开始在验证过程中,因使用了较老的root explorer版本根本不能进入资源管理器,于是更换了最新版V2.94,是能进资源管理器界面了,但是却不能修改或删除system下的文件,可能有人会怀疑这是否真正的取得了root权限?我可以很负责的告诉你,已经取得了root权限,因为运行drocap2这类root权限的软件是灰常正常滴。

嗯,其实这里又涉及到一个专业知识了,请坐好捏,哎,后面那位同鞋别看别人了,说的就是你。现在仔细听我讲解:

瑞芯微android系统固件的system分区采用的是cramfs文件系统。

cramfs文件系统是一个压缩式的文件系统,它并不需要一次性地将文件系统中的所有内容都解压缩到内存之中,而只是在系统需要访问某个位置的数据的时侯,马上计算出该数据在cramfs文件系统中的位置,将其实时地解压缩到内存之中,然后通过对内存的访问来获取文件系统中需要读取的数据。cramfs文件

系统中的解压缩以及解压缩之后的内存中数据存放位置都是由cramfs文件系统文件系统本身进行维护的,用户并不需要了解具体的实现过程,因此这种方式既方便,又节省了存储空间。cramfs文件系统的数据都是预先经过处理、打包的,这种系统是一种只读、不支持写操作的文件系统,在刷到机器里后,这个分区就是只读的,不能做任何更改。所以,刷机后是不能对这个系统进行修改的,只能在刷机前对system.img进行解包、修改,以达到我们的目的。

3, 修改用户分区大小

部分同鞋使用了MID一段时间后,就会为用户区空间太小装不了几个软件而发愁,其实,你不用发愁,只要稍稍修改一下两个文件就可以将分区加大。现在出产的MID一般都是配备2GB以上的内存,划个几百M至1G都不会太影响本机使用的,再者现在TF卡那么便宜,都是标配2~4G以上的容量了。所以即便将用户区再划大些都不会有太大的影响。

(题外话:还有同鞋在寻找APP2SD的功能,个人建议不如修改一下这两个文件,将用户区划大一些来得实在,一来在本机上读取软件稳定性会高些,二来不会因TF卡的问题导至软件出问题嘛!)

言归正传:将用户升级包update.img解包(如果已经是量产升级包,略过此解包操作),找到其中的HWDEF、parameter两个文件并备份。再用UE(UltraEdit32,其实用记事本也可以,不过看起比较乱)修改两个文件的分区偏移量和分区大小,是以16进制表示,前一个分区的偏移量和大小加起来就是后面一个分区的偏移量,我们需让用户分区增大,所以只修改用户分区即可,只需修改userdata、user两个分区的偏移量和大小即可。

A.修改HWDEF文件:

用UE打开HWDEF,找到如下部分的代码(请注意红色部分数据):

mtd_id=rk28xxnand

#Format: part_name offset:size

parameter 0x00000000:0x00001000:fh

misc 0x00001000:0x00001000:f

kernel 0x00002000:0x00003000:f

boot 0x00005000:0x00002000:f

recovery 0x00007000:0x00003000:f

system 0x0000A000:0x0001E000:f

backup 0x00028000:0x00026000:

cache 0x0004E000:0x0001E000:

userdata 0x0006C000:0x0001E000:

user 0x0008A000:0xFFFFFFFF:

END

简单解释一下,上面的userdata分区表示:偏移量为0x0006C000,分区大小为:0x0001E000,比如我们需将使用空间由原来的123M增大一倍到246M,即

0x0001E000+0x0001E000=0x0003C000,那么,下一个分区user的偏移量就变成6C000+3C000=0x000A8000,修改后新的数据如下:

userdata 0x0006C000: 0x0003C000:

user 0x000A8000:0xFFFFFFFF:

修改后保存。对HWDEF的修改完成了。

B.修改parameter文件

再用UE打开parameter,找到最后一行,其部分代码如下:

CMDLINE: noinitrd c,115200n8n androidboot.c init=/init

root=/dev/mtdblock2 mem=128M@0x60000000

mtdparts=rk28xxnand:0x00001000@0x00001000(misc),0x00003000@0x00002000 (kernel),0x00002000@0x00005000(boot),0x00003000@0x00007000(recovery), 0x0001E000@0x0000A000(system),0x00026000@0x00028000(backup),0x0001E00 0@0x0004E000(cache), 0x00040000 @0x0006C000(userdata),-@ 0x000AC000 (user)

此段代码@前面表示分区大小,@后面表示偏移量。userdata前面的6个分区大小和偏移量都能和HWDEF文件中的一一对应起来,但userdata的分区大小明显要大很多,暂不明白为何要加大一些。查看过几个不同机型的这些文件,大小也有差距,在22000-62000(16进制)之间;为了不出问题,我们也依照那样做吧,所以我们也在userdata空间的大小上面也加上22000至62000之间的一个数值吧。

所以,此处userdata的分区大小为:3C000(扩容后的分区大小)

+22000=5E000,那下一个分区user的偏移量也变成了:5E000(新分区大小)

+6C000(偏移)=CA000。修改过的数据如下:

0x0005E000@0x0006C000(userdata),-@0x000CA000(user)

修改后保存。对parameter的修改也完成了。用刚才改好的两个文件替换原先的两个文件,然后重新打包、升级。

不同机型分区大小可能会有差别,所以附件中放有原始的和修改好的两个文件,以供参考!此文件仅供参考,请勿直接替换,出了问题概不负责!

4,修改设置中“关于MID”中的机型型号

将system.img进行解包,解包后在system文件夹下找到build.prop

将build.prop文件用UE打开,找到ro.product.model=sdkDemo一行,将其中的sdkDemo改成你想要显示的文字,比如BM999,修改后保存,然后重新打包烧录即可。

-

5,美化界面

这个又涉及到APK文件的修改了,这部分的教程就不作过多的介绍了,有需要的同鞋可以上网去Google下相关资料,大把的教程可供参考。

将system.img进行解包,解包后在../system/framework文件夹下找到framework-res.apk,将.APK后缀改名为.zip,然后将其中的assets、res两个文件夹解压出来开始我们的美化工作。要注意修改后的图片分辨率大小和图片格式要与原来保持一致,否则会出错的哦。

A.界面美化

找到解压后的下列两个目录,这两个目录存放所有界面的系统图标,可对需要修改的界面小图标进行美化:

../framework-res/res/drawable

../framework-res/res/drawable-land

B.修改开机LOGO(Android启动时,出现闪动的ANDROID字样的动画图片)

Android 的系统登录动画类似于Windows系统的滚动条,是由前景和背景两张PNG图片组成,这两张图片也是位于../system/framework/framework-res.apk 文件当中。前景图片(android-logo-mask.png)上的Android文字部分镂空,背景图片(android-logo-shine.png)则是简单的纹理。系统登录时,前景图片在最上层显示,程序代码控制背景图片连续滚动,透过前景图片文字镂空部分滚动显示背景纹理,从而实现动画效果。以相同的原理修改或替换下面两张图片即可达到目的。

../framework-res/assets/images/android-logo-mask.png

../framework-res/assets/images/android-logo-shine.png

android-logo-mask.png :Android默认的前景图片,文字部分镂空,大小

256×64

android-logo-shine.png :Android默认的背景图片,有动感效果,大小

512×64

美化完成后,将修改过的图片替换掉APK文件中相应的文件,然后将APK文件中META-INF文件夹内的CERT.SF、CERT.RSA两个文件删除,然后用签名工具重新签名。再将签名后的APK文件替换掉原先的文件,之后重新打包成system.img 并用工具升级即可。

6,桌面美化

感觉桌面默认的公版壁纸、搜索条、快捷键等图标太难看?没问题,把它都换了吧。

将system.img进行解包,解包后在../system/app文件夹下找到Launcher.apk,将.APK后缀改名为.zip,然后将其中的res文件夹解压出来,将需要美化的图片进行美化、替换,修改好后按照上面的方法将文件替换、签名、打包再升级即可。

基础篇教程完毕!敬请关注进阶篇。因本人水平有限,教程中难免会有错误之处,欢迎指正!

Android布局属性大全

Android布局属性大全 布局: AbsoluteLayout(绝对布局): xmlns:android="https://www.doczj.com/doc/896249352.html,/apk/res/android" style="@..." android:clipChildren="true|false" android:clipToPadding="true|false" android:layoutAnimation="@---" android:animationCache="true|false" android:persistentDrawingCache="none|animation|scrolling|all":持续高速缓存绘图 android:alwaysDrawnWithCache="true|false" android:andStatesFromChildre="true|false" android:descendantFocusability="beforeDescendants|afterDescendants|bl ocksDescendants":后裔可聚焦 android:id="@+id/absoluteLayout" android:tag="@---" android:android:scrollX="---" android:android:scrollY="---" android:background="@---" android:padding="----" android:paddingLeft="----" android:paddingTop="----" android:paddingRight="----" android:paddingBotton="---" android:focusable="true|false" android:focusableInTouchMode="true|false" android:visibility="visible|invisible|gone" android:fitsSystemWindows="true|false":适合系统窗口 android:scrollbars="none|horizontal|vertical" android:scrollbarStyle="insideOverlay(内覆盖)|insideInset(内插 图)|outsideOverlay(外覆盖)|outsideInset(外插图)" android:isScrollContainer="true|false":是一个滚动集合 android:fadeScrollbars="true|false":褪色的滚动条 android:scrollbarFadeDuration="---":卷轴淡出 android:scrollDefaultDelayBeforeFade="---":滚动前默认延迟 android:scrollbarSize="---" android:scrollbarThumbHorizontal="@----":拇指水平滚动条 android:scrollbarThumbVertical="@----":拇指垂直滚动条 android:scrollbarTrackVertical="@---":垂直滚动条轨道 android:scrollbarTrackHorizontal="@---":水平滚动条轨道 android:scrollbarAlwaysDrawHorizontalTrack="true|false":水平滚动条总是吸引轨道

Android之TextView属性大全

Android之TextView属性大全 发现TextView有一个比较大的问题,就是文字排版的问题,遇到数字,字母,符号等就会有问题,目前还没有什么解决方法。 android:autoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web/email/phone/map/all) android:autoText如果设置,将自动执行输入值的拼写纠正。此处无效果,在显示输入法并输入的时候起作用。 android:bufferType指定getText()方式取得的文本类别。选项editable 类似于StringBuilder可追加字符, 也就是说getText后可调用append方法设置文本内容。spannable 则可在给定的字符区域使用样式. android:capitalize设置英文字母大写类型。此处无效果,需要弹出输入法才能看得到,参见EditView此属性说明。 android:cursorVisible设定光标为显示/隐藏,默认显示。 android:digits设置允许输入哪些字符。如“1234567890.+-*/% ()” android:drawableBottom在text的下方输出一个drawable,如图片。如果指定一个颜色的话会把text的背景设为该颜色,并且同时和background使用时覆盖后者。 android:drawableLeft在text的左边输出一个drawable 。 android:drawablePadding设置text与drawable(图片)的间隔,与drawableLeft、drawableRight、drawableTop、drawableBottom一起使用,可设置为负数,单独使用没有效果。 android:drawableRight在text的右边输出一个drawable。

Android应用开发基础习题集

任务一 Android开发环境的搭建 第一部分知识回顾与思考 1.Android的四层架构分别包括哪几层分别起到什么作用 答:Linux内核层(Linux Kernel):基于Linux内核,内核为上层系统提供了系统服务。 系统库层(Libraries):系统库基于C/C++语言实现,通过接口向应用程序框架层提供编程接口。 应用框架层(Application Framework):为开发者提供了一系列的Java API,包括图形用户界面组件View、SQLite数据库相关的API、Service组件等。 应用程序层(Applications):包含了Android平台中各式各样的应用程序。 第二部分职业能力训练 一、单项选择题(下列答案中有一项是正确的,将正确答案填入括号内) 1.Android四层架构中,应用框架层使用的是什么语法( C ) A.C B.C++ C.Java D.Android 2.Android四层架构中,系统库层使用的是什么语法( B ) A.VB B.C /C++ C.Java D.Android 3.应用程序员编写的Android应用程序,主要是调用( B )提供的接口进行实现。 A.应用程序层 B.应用框架层 C.应用视图层 D.系统库层 二、填空题(请在括号内填空) 1.在Android智能终端中,有很多应用如拍照软件、联系人管理软件,它们都属于Android的(应用程序)层。 2.为了让程序员更加方便的运行调试程序,Android提供了(模拟器),可以方便的将程序运行其上,而不要实际的移动终端。 3.为了支持Java程序运行,我们需要安装(JDK)。 三、简答题 1.简述Android开发环境安装的步骤。 答:下载并安装JDK,配置JDK的环境变量; 从Anroid官网上下载Android开发组件(包含Eclipse和Android SDK、ADT); 安装Android开发环境(包括配置Android SDK的环境变量、打开Eclipse通过菜单设定Android SDK 路径)。 2.简述Android应用程序创建和运行的步骤。 答:通过菜单创建Android应用程序,设置应用程序名、Android版本等基本信息。

Android开发-UI属性

android:fadingEdgeLength 设置淡入淡出边缘的长度,可以接受大小值的单位是:px、dp、sp、in、mm,也可以参考大小值资源 android:fitsSystemWindows 是否适合系统窗体,取值为true或false。该属性只对不是子组件的组件有效 android:focusable 是否可以获取焦点,取值true或false android:focusableInTouchMode 是否可以在触摸模式下获取焦点,true或false android:hapticFeedbackEnabled 是否允许触摸反馈效果,true或false android:id 提供该组件的标识名,可以借助Activity或View实例的findViewById方法通过id获取对应的组件实例对象,其属性值的形式为:android:id=”@+id/id” android:isScrollContainer 设置该组件是否设置为滚动条容器,true或false android:keepScreenOn 控制该组件在显示的时候保持在屏幕显示,true或false android:longClickable 是否响应长时间点击事件,true或false android:minHeight 组件的最小高度,取值同android:fadingEdgeLength android:minWidth 组件的最小宽度,取值同android:fadingEdgeLength android:nextFocusDown 设置下一个向下获取焦点的组件,取值为id android:nextFocusLeft 设置下一个向左获取焦点的组件,取值为id android:nextFocusRight 设置下一个向右获取焦点的组件,取值为id android:nextFocusUp 设置下一个向上获取焦点的组件,取值为id android:padding 设置上、下、左、右4个边缘的填充距离,必须是一个大小值,取值同android:fadingEdgeLength android:paddingBottom 设置下端边缘的填充距离,取值同android:padding android:paddingLeft 设置左端边缘的填充距离,取值同android:padding android:paddingRight 设置右端边缘的填充距离,取值同android:padding android:paddingTop 设置上端边缘的填充距离,取值同android:padding android:saveEnabled 是否允许保存状态,取值为true或false android:scrollX 设置垂直滚动条的位移量,必须是一个大小值,取值同android:padding android:scrollY 设置水平滚动条的位移量,必须是一个大小值,取值同android:padding android:scrollbarAlwaysDrawHorizontalTrack 是否总是设置水平滚动条滑块,true或false android:scrollbarAlwaysDrawVerticalTrack 是否总是设置垂直滚动条滑块,true或false android:scrollbarSize 设置垂直滚动条的宽度和水平滚动条的长度,必须是一个大小值,取值同android:padding android:scrollbarStyle 设置滚动条的样式,取值为下列之一:insideOverlay在填充区域内,覆盖形式insideInset在填充区域内,插进形式(凹进)outsideOverly在绑定组件边缘,覆盖形式outsideInset在绑定组件边缘,插进形似 android:scrollbarThumbHorizontal 设置水平滚动条按钮的绘制资源,必须引用可绘制资源 android:scrollbarThumbVertical 设置垂直滚动条按钮的绘制资源,必须引用可绘制资源

Android属性服务

Android属性服务 Windows平台上有有一个叫注册表的东西。注册表可以存储一些键值对。一般而言,系统或某些应用程序会把自己的一些属性存储在注册表中,即使系统重启或应用程序重启,它还能够根据之前在注册表中设置的属性,进行相应的初始化工作。Android平台也提供了一个类似的机制,称之为属性服务(property service)。应用程序可通过这个属性机制,查询或设置属性。 可以通过adb shell登陆到真机,使用getprop命令查看当前系统中有哪些属性。 如下是登陆到FTS920查看到的相关属性值: [localhost@/]# getprop getprop [ro.secure]: [0] [ro.allow.mock.location]: [1] [ro.debuggable]: [1] [persist.service.adb.enable]: [1] [ro.factorytest]: [0] [ro.serialno]: [] [ro.bootmode]: [unknown] [ro.baseband]: [unknown] [ro.carrier]: [unknown] [ro.bootloader]: [unknown] [ro.hardware]: [pxa910-based] [ro.revision]: [0] [ro.product.model]: [FTS920] [https://www.doczj.com/doc/896249352.html,]: [FTS920] [ro.product.device]: [FTS920] [ro.product.board]: [FTS920] [dalvik.vm.heapsize]: [36m] [dalvik.vm.jniopts]: [warnonly] [ro.opengles.version]: [131072] …… 在init.c文件的main函数中,先后调用了3处跟属性服务相关的操作: 1. 2. 3.

安卓系统手机使用技巧锦集

安卓系统手机使用技巧锦集 首次分享者:i四叶村已被分享1次评论(0)复制链接分享转载举报 一,快速查看手机充电情况 方法1:通过待机屏幕查看,众所周知Android系统设计了自动锁屏功能,当手机处于一段时间不使用的情况下就会自动熄灭背景灯,如果需要激活的话就需要按下手机的Menu键两次,但是当按下第一次之后会显示出待机界面,里面就会显示目前的手机电池充电情况。方法2:在Android系统中的AboutPhone选项中的“Status”选项,里面能够看到BatteryLevel的选项,这就是当前手机的充电情况显示。 方法3:通过第三方软件查看,由于Android系统中并没有专门的这类软件,所以如果想要详细的查看目前手机充电情况的话就是用一款第三方的电池查看软件吧 二,教你设置输入密码不可见 用过某些需要登录的应用程序的朋友相信都知道在输入账户密码默认情况下是显示出来已经输入的密码,为了安全起见都不想旁边的人看到自己的密码,那么怎样才能设置Android 手机不可见已经输入的密码呢?教你设置输入密码不显示。 关于密码的设置当然是在SecurityLocation中了,所以我们先在主屏界面上按下Menu菜单键,在弹出的进阶菜单中选择最后一项“Settings”; 进入设置菜单后将滚动条向下滑动,找到“SecurityLocation”的分类,点击进入; 在安全性和位置分类菜单中找到Passwords分类,其中将“Visiblepasswords”选项后面的勾去掉即可。 三,Market下载失败解决办法 其实这样的问题在国外根本不存在,仅仅是在国内的朋友才会遇到这样的问题,这是因为貌似是国内将Google服务器屏蔽掉了,因此我们如果需要诸如YOUTUBE这样的服务时,只能“翻*墙”了。 设置静态IP的方法就能为各位网友解忧,该方法是Android123独创,配合了Google最新的服务,经过数十台Android手机均可以正常下载程序。 首先我们依次点选“Settings——wirelesscontrals——WIFISettings——Menu——Adbanced”勾选USEStaticIP这一项,并将DNS1设置为8.8.8.8,DNS2设置为8.8.4.4即可。 没错,上面讲到的方法正是利用了Google最新的DNS服务,填入之后其他不需要设置即可。 四,Droid铃声设置另类方法 我们在其他Android手机设置铃声的时候,一般采用的方法都是使用第三方软件(如TongPicker)设置,这样的设置方法有些繁琐,必须在相应的设置箱内启动该程序才能设置,Android123这次为你带来了使用自带铃声库的选择的方法。 这个方法简单的来讲就是在内置的TF卡中设置相对应的文件夹,该文件夹必须按照规定的名称设置,否则系统不会认出来。我们可以通过这样的设置来电铃声、短信铃声、闹铃和系统提示音的声音。 首先我们要在TF卡根目录中设立一个名为media的文件夹,在该文件夹中设置audio的文件夹,再在audio文件夹中设置其他相应的文件夹。 其中放置短信铃声的文件夹名称为notifications,放置闹铃铃声的文件夹为alarms,放置来电铃声的文件夹为ringtones,而系统提示音的文件夹名称为ui。

Android手机开发环境配置详细说明书(doc 10页)

一,配置前需要下载的文件 1,jdk 6:https://www.doczj.com/doc/896249352.html,/javase/downloads/index.jsp 说明:原则上下载最新的。本阶段下载的是第一个:JDK 6 Update 16 with Java EE Eclipse 3.5(galileo):https://www.doczj.com/doc/896249352.html,/downloads/数量间的联系。 说明:原则上下载最新的。本阶段下载的是第一个:Eclipse IDE for Java EE Developers (189 MB) Android SDK:https://www.doczj.com/doc/896249352.html,/bbs/viewthread.php?tid=10147&highlight=sdk冲钻然 说明:只需安装SDK,ADT不用下。 二,软件安装 jdk 6的安装:下载下来后,解压缩,安装exe文件。按步骤进行。 Eclipse 3.5:解压缩后即可。假设解压缩路径为e盘根目录即:E:\eclipse Android SDK:解压缩即可。假设解压缩路径为e盘根目录即:E:\ android-sdk-windows-1.5_r2 三,环境变量 设置Android SDK环境变量:我的电脑右键->属性->高级->环境变量。在其中找到Path并进行编辑。在变量值最后增加如下代码 ; E:\ android-sdk-windows-1.5_r2\tools 说明:前面的”;”为英文状态下的”;”另外,E:\ android-sdk-windows-1.5_r2\tools不一定是你自己的tools路径。实际而言可能是这个路径E:\ android-sdk-windows-1.5_r2\ android-sdk-windows-1.5_r2\tools 四,安装Android Development Tools plug-in 1,打开Eclipse 3.5,选择Help->Install New Software 之后在work with的文本框输入https://https://www.doczj.com/doc/896249352.html,/android/eclipse/并回车,会在其下显示出Developer Tools,全部选择后,next。

安卓手机变成电脑摄像头--_droidcam使用教程

安卓手机变成电脑摄像头--droidcam使用教程 随着网络的普及,视频聊天很是必要 哪天临时需要视频,手头又没有准备摄像头,我们一般就只能放弃了 其实我们手头500W像素以上的手机比比皆是,难道手机摄像头就无其他用武之地了么? 有些朋友可能会通过手机QQ和对方视频,那效果,不敢恭维。为何不用我们的手机充当电脑摄像头呢? 下面介绍一下本人亲测成功的两款软件usbwencam和droidcam。两者均支持手机变成网络摄像头。前者比较卡(此贴忽略不谈),后者很流畅--推荐 下面简单讲讲droidcam的安装和操作(理论上安卓系统手机通用): 有三种连接方式数据线,蓝牙,wifi,上面的网站上有非常明确的连接步骤,我测试了wifi和数据线,效果都非常不错.蓝牙没有适配器,无法尝试 A. 1.先将USB连接 首先要懂得如何运行ADB,这边具体ADB的使用不想多说, 2.安装方法,电脑上需要安装ADB客户端.客户端在附件中,解压缩后,把adb客户端里面的文件放到系统盘的windows/system32文件夹里就可以了, 3.手机上要把USB调试模式打开. 如果手机提示没有ADB驱动,附件也有包含,可以选择安装。win7系统下电脑会自动搜

索adb的驱动。 4.然后电脑运行里输入命令adb forward tcp:4747tcp:4747,应该会出现一段提示,提示成功结束后, 5.打开droidcam手机客户端 6.打开电脑客户端(开始-所有程序-droidcam)

选adb连接,点连接,就ok了,现在测试下你的qq视频,视频设备选droidcam,就OK了

Android系统外文翻译3

Android起航 译 使用XML进行布局 虽然纯粹通过Java代码在activity上创建和添加部件,在技术上是可行的,我们在第4章中做的一样,更常见的方法是使用一种基于XML的布局文件。动态的小部件实例保留更多,情况复杂,小工具在编译时不为人所知(例如,在数据检索了互联网基础上将单选按钮填充柱。 考虑到这一点,现在是时候打破XML来学习如何用此种方式来布置Android activities。 什么是基于XML的布局? 正如其名称所示,一个基于XML的布局是一个关系到每个规格的小部件,和他们的容器(更多关于此内容的在第7章)编码的XML格式。具体来说,Android 认为基于XML的布局是资源,因此布局文件存储在res /在你的Android项目布局目录中。 每个XML文件包含一个指定的部件和容器布局元素树,一种意见认为构成层次。对XML元素的属性,描述一个部件应如何看或者一个容器应如何运转。例如,如果一个按钮元素。 有一个Android的属性值:文字样式=“bold”,这意味着该文本出现在按钮的表面应该是呈现一个粗体字体样式. Android的SDK中附带一个使用的布局的工具(aapt)。这个工具应自动调用你的Android工具链(例如,Eclipse中,Ant’s build.xml)。作为一个开发人员,尤其重要的是,在您的项目中aapt生成R.java源文件,让您能在那些布局中直接从Java代码中获取布局和部件。 为什么使用基于XML的布局? 使用XML布局文件做的大部分都可以通过Java代码。例如,你可以使用setTypeface()命令一个按钮使用粗体文本,而不是在一个XML布局中使用属性。由于XML布局是为你跟踪的另一个文件,所以我们需要好的理由来使用这样的文

安卓智能机使用教程

品质为先,诚信为本,我们是品诚科技。 我们致力于为刚接触安卓智能手机的朋友们提供一个良好的使用向导。目录: 1.手机基本设置、操作---------------------------------------------- 第2~3页 2.将手机作为移动存储设备连接到电脑上--------------------------- 第 3~4页 3.安装豌豆荚手机精灵并连接电脑---------------------------------- 第4~6页 4.使用豌豆荚手机精灵安装、卸载apk应用程序到手机------------- 第6~8页 5.使用豌豆荚手机精灵备管理手机内联系人、短信、图片等--------- 第 9 页 6.手机端下载、安装apk应用程序---------------------------------- 第 10 页 7.手机端卸载应用程序---------------------------------------------- 第 11 页 8.手机端查看内存卡内容-------------------------------------------- 第11~12页

1.手机基本设置、操作 a.添加桌面快捷方式: i.点击菜单列表中间那个很多方格的 按钮。 ii.手指点住其中一个程序图标2秒后不放手,待图标变大不要 放手,自动切换回桌面,松开手指即可添加快捷方式。 b.删除桌面快捷方式: i.手指点住桌面其中一个图标2秒后不放手,看到屏幕下方出 现一个垃圾桶,拖拉图标到垃圾桶,图标变成红色,松开手指 即可删除该快捷方式。 c.移动桌面图标: i.手指点住桌面其中一个图标2秒后不放手,把图标移动到左/ 右屏幕边缘,稍微等1到2秒,屏幕会自动跳转到下一个菜 单。 d.开启WiFi无线网络: i.打开‘设置’ -> ‘无线和网络’-> ‘WLAN’打上勾->‘WLAN设置’

Android实现获取系统应用列表

Android实现获取系统应用列表 本文介绍在Android中如何获取系统应用程序列表。 Android系统为我们提供了很多服务管理的类,包括ActivityManager、PowerManager(电源管理)、AudioManager(音频管理) 等。除此之外,还提供了一个PackageManger管理类,它的主要职责是管理应用程序包。通过它,我们就可以获取应用程序信息。 PackageManager的功能: ?安装,卸载应用 ?查询permission相关信息 ?查询Application相关信息(application,activity,receiver,service,provider及相应属性等)?查询已安装应用 ?增加,删除permission ?清除用户数据、缓存,代码段等 我们可以用PackageManager来显示系统安装的应用程序列表或者系统程序列表 相关类的介绍 PackageItemInfo类 说明:AndroidManifest.xml文件中所有节点的基类,提供了这些节点的基本信息:a label、icon、meta-data。它并不直接使用,而是由子类继承然后调用相应方法。 常用字段: public int icon 获得该资源图片在R文件中的值(对应于android:icon属性) public int labelRes 获得该label在R文件中的值(对应于android:label属性) public String name 获得该节点的name值(对应于android:name属性) public String packagename 获得该应用程序的包名(对应于android:packagename属性) 常用方法: Drawable loadIcon(PackageManager pm) 获得当前应用程序的图像 CharSequence loadLabel(PackageManager pm) 获得当前应用程序的label

【推荐下载】Android中的android.provider.Settings.System系统属性设定

Android 中的android.provider.Settings.System 系统属性设定2012/04/12 0 Content Provider 中的Setting.System 表内存储了很多系统属性的,以键对的形式存在! 可以对如下的变量进行设置 ConstantsStringACCELEROMETER_ROTATIONControl whether the accelerometer will be used to change screen orientation.StringADB_ENABLEDThis constant is deprecated. Use ADB_ENABLED insteadStringAIRPLANE_MODE_ONWhether Airplane Mode is on.StringAIRPLANE_MODE_RADIOSA comma separated list of radios that need to be disabled when airplane mode is on.StringALARM_ALERTPersistent store for the system-wide default alarm alert.StringALWAYS_FINISH_ACTIVITIESIf 1, the activity manager will aggressively finish activities and processes as soon as they are no longer needed.StringANDROID_IDThis constant is deprecated. Use ANDROID_ID insteadStringAPPEND_FOR_LAST_AUDIBLEAppended to various volume related settings to record the previous values before they the settings were affected by a silent/vibrate ringer mode change.StringAUTO_TIMEValue to specify if the user prefers the date, time and time zone to be automatically fetched from the network (NITZ).StringAUTO_TIME_ZONEValue to specify if the user prefers the time zone to be automatically fetched from the network (NITZ).StringBLUETOOTH_DISCOVERABILITYDetermines whether remote devices may discover and/or connect to this device.StringBLUETOOTH_DISCOVERABILITY_TIMEOUTBluetooth discoverability timeout.StringBLUETOOTH_ONThis constant is deprecated. Use BLUETOOTH_ON insteadStringDATA_ROAMINGThis constant is deprecated. Use DATA_ROAMING insteadStringDATE_FORMATDate format string mm/dd/yyyy dd/mm/yyyy yyyy/mm/ddStringDEBUG_APPName of an application package to be

android系统属性

Android的属性系统 2011-04-10 17:42 每个属性都有一个名称和值,他们都是字符串格式。属性被大量使用在Android系统中,用来记录系统设置或进程之间的信息交换。属性是在整个系统中全局可见的。每个进程可以get/set属性。 在系统初始化时,Android将分配一个共享内存区来存储的属性。这些是由“init”守护进程完成的,其源代码位于:device/system/init。“init”守护进程将启动一个属性服务。属性服务在“init”守护进程中运行。每一个客户端想要设置属性时,必须连接属性服务,再向其发送信息。属性服务将会在共享内存区中修改和创建属性。任何客户端想获得属性信息,可以从共享内存直接读取。这提高了读取性能。 客户端应用程序可以调用libcutils中的API函数以GET/SET属性信息。libcutils的源代码位于:device/libs/cutils。API函数是: int property_get(const char *key, char *value, const char *default_value); int property_set(const char *key, const char *value); 而libcutils又调用libc中的__system_property_xxx 函数获得共享内存中的属性。libc的源代码位于: device/system/bionic。 属性服务调用libc中的__system_property_init函数来初始化属性系统的共享内存。当启动属性服务时,将从以下文件中加载默认属性: / default.prop /system/build.prop /system/default.prop /data/local.prop 属性将会以上述顺序加载。后加载的属性将覆盖原先的值。这些属性加载之后,最后加载的属性会被保持在 /data/property中。 特别属性 如果属性名称以“ro.”开头,那么这个属性被视为只读属性。一旦设置,属性值不能改变。 如果属性名称以“persist.”开头,当设置这个属性时,其值也将写入/data/property。 如果属性名称以“net.”开头,当设置这个属性时,“net.change”属性将会自动设置,以加入到最后修改的属性名。(这是很巧妙的。netresolve模块的使用这个属性来追踪在net.*属性上的任何变化。) 属性“ ctrl.start ”和“ ctrl.stop ”是用来启动和停止服务。每一项服务必须在/init.rc中定义.系统启动时,与init守护进程将解析init.rc和启动属性服务。一旦收到设置“ ctrl.start ”属性的请求,属性服务将使用该属性值作为服务名找到该服务,启动该服务。这项服务的启动结果将会放入“ init.svc.<服务名>“属性中。客户端应用程序可以轮询那个属性值,以确定结果。 Android toolbox程序 Android toolbox程序提供了两个工具:setprop和getprop获取和设置属性。其使用方法: getprop <属性名> setprop <属性名><<属性值> Java 在Java应用程序可以使用System.getProperty()和System.setProperty()函数获取和设置属性。 Action 默认情况下,设置属性只会使"init"守护程序写入共享内存,它不会执行任何脚本或二进制程序。但是,您可以将您的想要的实现的操作与init.rc中某个属性的变化相关联.例如,在默认的init.rc中有:

安卓系统操作合集

安卓系统操作合集

使用技巧锦集之安卓系统(收集整理) 一,快速查看手机充电情况 方法1:通过待机屏幕查看,众所周知Android系统设计了自动锁屏功能,当手机处于一段时间不使用的情况下就会自动熄灭背景灯,如果需要激活的话就需要按下手机的Menu键两次,但是当按下第一次之后会显示出待机界面,里面就会显示目前的手机电池充电情况。 方法2:在Android系统中的About Phone选项中的“Status”选项,里面能够看到Battery Level的选项,这就是当前手机的充电情况显示。 方法3:通过第三方软件查看,由于Android系统中并没有专门的这类软件,所以如果想要详细的查看目前手机充电情况的话就是用一款第三方的电池查看软件吧 二,教你设置输入密码不可见 用过某些需要登录的应用程序的朋友相信都知道在输入账户密码默认情况下是显示出来已经输入的密码,为了安全起见都不想旁边的人看到自己的密码,那么怎样才能设置Android手机不可见已经输入的密码呢?教你设置输入密码不显示。 关于密码的设置当然是在Securitylocetion中了,所以我们先在主屏界面上按下Menu菜单键,在弹出的进阶菜单中选择最后一项“Settings”; 进入设置菜单后将滚动条向下滑动,找到“Securitylocetion”的分类,点击进入; 在安全性和位置分类菜单中找到Passwords分类,其中将“Visible passwords”选项后面的勾去掉即可。 三,Market下载失败解决办法 其实这样的问题在国外根本不存在,仅仅是在国内的朋友才会遇到这样的问题,这是因为貌似是国内将Google服务器屏蔽掉了,因此我们如果需要诸如YOUTUBE这样的服务时,只能“翻*墙”了。 设置静态IP的方法就能为各位网友解忧,该方法是Android123独创,配合了Google最新的服务,经过数十台Android手机均可以正常下载程序。 首先我们依次点选“Settings——wireless contrals——WIFI Settings——Menu——Adbanced”勾选USE Static IP这一项,并将DNS1设置为8.8.8.8,DNS2设置为8.8.4.4即可。 没错,上面讲到的方法正是利用了Google最新的DNS服务,填入之后其他不需要设置即可。 四,Droid铃声设置另类方法 我们在其他Android手机设置铃声的时候,一般采用的方法都是使用第三方软件(如Tong Picker)设置,这样的设置方法有些繁琐,必须在相应的设置箱内启动该程序才能设置,Android123这次为你带来了使用自带铃声库的选择的方法。 这个方法简单的来讲就是在内置的TF卡中设置相对应的文件夹,该文件夹必须按照规定的名称设置,否则系统不会认出来。我们可以通过这样的设置来电铃声、短信铃声、闹铃和系统提示音的声音。 首先我们要在TF卡根目录中设立一个名为media的文件夹,在该文件夹中设置audio的文件夹,再在

Android系统应用开发作业1

Android系统应用开发作业1 单项选择题 第1题关于主题的说法,不正确的是 A、它是属性集合 B、它可以在程序中来设置 C、它通常用于一个Activity或所有Activity上 D、它可以用于单个TextView上 答案:D 第2题下列说法不正确的是 A、javac.exe 能指定编译结果要置于哪个目录(directory)? B、在编译程序时,所能指定的环境变量不包括class path? C、javac 一次可同时编译数个java 源文件 D、环境变量可在编译source code时指定 答案:D 第3题如果希望自定义TabHost标题部分的显示内容需要使用下列哪个方法() A、tabHost.addTab(tabHost.newTabSpec("tab1") B、setIndicator() C、setContent() D、setView 答案:B 第4题对一些资源以及状态的操作保存,最好是保存在Activity生命周期的哪个函数中进行? A、onStart( ) B、onPause( ) C、onCreate( ) D、onResume( ) 答案:A 第5题继承了Canvas类必须实现的方法是() A、paint() B、keyPressed() C、run() D、main() 答案:A 第6题下列关于XML布局文件在Java代码中被引用的说明中,不正确的是? A、在Activity中,可以使用findViewById( )方法,通过资源id,获得指定视图元素 B、在Activity中,可以使用R.drawable-system.***方式引用Android系统所提供的图片资源 C、在Activity中,可以使用setContentView( )方法,确定加载哪一个布局文件

最新whatsapp安卓华为手机使用方法资料

whatsapp安卓华为手机使用方法 WhatsApp messenger是一款目前可供iPhone手机、android手机和黑莓手机用户使用的、用于智能手机之间通讯的应用程序。本应用程序借助推送通知服务,可以即刻接收亲友和同事发送的信息。可免费从发送手机短信转为使用WhatsApp程序,以发送和接收信息、图片、音频文件和视频信息。 安装就可以了说下特点吧 没有月租费——一旦你和你的联系人安装了这款软件,你们就能用它无限联系对方。一天内免费发送无数条信息给你的朋友!这款软件支持3G/EDGE/Wi-Fi网络。 没有国际漫游费——如果你的朋友们安装了此款软件在黑莓或者IPhone上,你就能和身在其他国家的他们聊天,从而避免了厌人的国际短信费。 没有身份识别和用户名——为什么要在脑子里记住身份识别号码或者用户名?此款软件使用起来就好比是在使用手机中的短信功能,它与手机中电话本的联系人相互集成。 没有必要登录或者登出——没有被在其他电脑或手机登陆时被强制登出的烦恼。它永远处于登录并且连接状态。 没有必要添加联系人——电话本里的联系人将自动被关联到你的

WhatsApp Messenger联系人里。安装了此款软件的你的联系人将会自动显示在收藏夹菜单里。 离线消息——即使你关闭了手机或者在没有信号的区域。它会自动保存这期间你所收到的任何消息并且一旦你打开手机或者进入了有信号区域,它将自动把离线消息推送到你的手机上。 跨平台——是的,你可以和安装了此款软件的IPhone朋友通过此软件互发消息。 此款软件将会在改善用户见面和软件本身功能上不断推出新版本。 WhatsApp Messenger最大的特点就是推送消息,不需要时时的链接,非常省电,并且还与系统联系人紧密结合 如果你不会使用可以咨询

android系统之属性系统详解

android系统之属性系统详解 1 属性系统概述 (2) 2 property数据的编译 (3) 2.1 /default.prop (3) 2.2 /system/build.prop (4) 2.3 其他属性文件 (8) 3 property的相关实现代码和流程 (9) 3.1 property服务端解析 (10) 3.1.1 Server端代码流程 (10) 3.1.1.1 init.c下的整体流程 (10) 3.1.1.2 创建共享内存区域 (10) 3.1.1.3加载根目录下的default.prop (15) 3.1.1.4加载其余4个属性文件的全部属性,并启动socket监听 (16) 3.1.1.5 property触发器执行函数加入队列 (18) 3.1.1.6 执行队列中的property任务 (19) 3.1.1.7 将property的监听socket加入待检查的socket数组 (20) 3.1.1.8 检查上层有哪些端口连接请求 (20) 3.1.1.9 property设置的响应 (20) 3.1.2 详解server端的property_set (25) 3.1.2.2 find_property (26) 3.1.2.3 prop数据二叉树存取解析 (29) 3.1.2.4 __system_property_update (30) 3.1.2.5 __system_property_add (30) 3.1.2.6 write_persistent_property (30) 3.1.2.7 property_changed (31) 3.2 property系统桥梁 (31) 3.2.1 __system_property_set (32) 3.2.2__system_property_set (33) 3.3 property客户端解析 (34) 3.3.1 客户端C层访问属性系统 (34) 3.3.2 客户端shell命令访问 (35) 3.3.3 客户端java层访问 (36) 4总结 (37) 附录一:《GCC的constructor》 (37)

相关主题
文本预览
相关文档 最新文档