- 博客(11)
- 资源 (10)
- 收藏
- 关注
原创 关于adbd进程的ROOT权限问题
<br /><br />adbd源码位于system/core/adb/目录下,可执行文件位于/sbin/adbd。通过adb执行ps命令,结果如下:<br />USER PID PPID VSIZE RSS WCHAN PC NAME<br />root 1 0 296 212 c00b0124 0000d9ec S /init<br />... ...<br />shell 2183 1 3372 1
2011-03-16 18:56:00 39284 2
原创 Android自带的toolbox分析及扩展
折腾了几天,被Android那点儿少得可怜的shell命令折磨的死去活来,终于下定了革命的决心。看一下怎么把渺小的toolbox替换成伟大的busybox吧。先大致描述一下Android系统中的shell程序部分。shell实现分为两部分:一、shell解释器和内置命令源码位于system/core/sh目录下,主要完成shell命令的解释查找,对于builtins.c中包含的内置命令,直接执行,对于toolbox的扩展命令,间接调用toolbox程序完成。二、toolbox扩展命令主要完成扩展命令的执行,
2011-03-15 14:04:00 26013 1
原创 Android源码的层次结构分析
<br /><br />bionic,整个系统的基础类库,Android系统就是基于这个类库开发的,<br /> <br />system,Android系统类库,基于bionic类库开发,包含工具类库(libcutils),LOG类库(liblog),压缩类库(libzipfile)类。<br />主要功能有:<br />一、完成Android初始化(init)。<br />解析init.rc并开启系统初始化时需要加载的程序(parser.c),初始化设备(devices.c),开启属性服务(proper
2011-03-11 15:58:00 4346
翻译 /system/core/init/readme.txt对init.rc的解释
init.rc由许多的Action和Service组成。每一个语句占据一行,并且各个关键字被空格分开。c规范中的(如 /n)反斜杠将被忽略(backslash escapes)而被认为是一个空格 ,双引号用来保证空格不会把一个文字串分分为多个关键字。行最后的反斜杠用作续行。由 # (前面允许有空格)开始的行都是注释行(comment)一个actions 或 services 的开始隐含声明了一个新的段,所有commands 或 options 属于最近的声明。在第一个段之前的 commands 或 opti
2011-03-11 09:30:00 8280
翻译 ADB和DDMS简介
源文地址:http://blog.csdn.net/zysee/archive/2010/08/05/5791270.aspxADB是一个CS结构的程序,由三部分组成。通过它们,可以管理Android设备的状态。1、Client端Client端运行在PC上,可以由ADT插件、DDMS、Shell命令等方式调用。2、Daemon端(ADBD)作为后台进程运行在Android设备上。ADBD通过jdwp与VMDebugger交互获取VM中的调试信息。2、Server端作为后台进程运行在PC上,它负责Clie
2011-03-10 09:11:00 10856
原创 Android权限之二packages.xml解析
<br /><br />/data/system/packages.xml这个文件由PackageManagerService.java生成,里面记录了系统当中安装的APK的所有属性,权限等信息。当系统中的APK安装、删除、升级时,文件就会被更新。<br /> <br /><permissions>标签定义了目前系统中定义的所有权限。主要分为两类:系统定义的(package属性为android)和APK定义的(package属性为APK的包名)。<br /> <br /><package>代表一个APK的属
2011-03-10 09:08:00 20608 2
原创 Android权限之三共享UID和签名
<br /><br />共享UID<br />安装在设备中的每一个Android包文件(.apk)都会被分配到一个属于自己的统一的Linux用户ID,并且为它创建一个沙箱,以防止影响其他应用程序(或者其他应用程序影响它)。用户ID 在应用程序安装到设备中时被分配,并且在这个设备中保持它的永久性。<br />通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中.所以默认就是可以互相访问任意数据. 也可以配置成运行成不同的进程, 同时可以访问其他APK的数据目录下的
2011-03-10 09:08:00 27798 9
原创 Android权限之一APK对文件的访问控制
/data目录权限:drwxrwx--x system system 2011-01-03 23:41 data这种情况下,用ES Explorer查看/data时,目录为空。File("/data")对象的canRead/canWrite方法测试,不可读不可写文件存在。说明默认情况下APK的gid中没有system。/system目录权限:drwxr-xr-x root root 2011-03-05 19:23 system这种情况下,ES E
2011-03-08 21:42:00 6004 1
原创 Android中KeyEvent的生命周期
<br /><br />1、生成<br />存在这样一个线程,它不断地从driver读取Event,并把它放到RawEvent队列中。这个队列中的RawEvent既有按键,也有触摸、轨迹球等事件。<br />RawEvent队列中的每个RawEvent最后都会通过一系列转化,最终变为KeyEvent被发送给另外一个线程,即输入线程,也就是一个Activity的主线程。<br /> <br />2、传递<br />KeyEvent传递过程主要可以划分为三步:过滤器、View树、Activity<br />过滤
2011-03-08 15:01:00 7032 3
原创 Android应用程序中用Java创建本地进程来执行C/C++程序
<br /><br />大致分为五步:创建环境、建立连接、发送数据、读取结果、释放资源。<br />下面我们以打开一个shell进程,在进程中执行pwd命令,然后退出为例,来看一下整个过程。<br /> <br />1、创建环境<br />主要有两个:执行程序和当前目录。这个和在命令行下执行一个普通的Linux程序一样,先有一个当前目录,然后在当前目录下面调用要执行的程序。我们运行pwd的话,就需要在一个目录下启动shell进程。当前目录我们可以随便选一个。这里选根目录。<br />ProcessBuild
2011-03-08 12:59:00 2623 5
原创 修改Android的开机画面
<br /><br />Android系统开机显示画面分成两个过程,第一个过程从按电源键到Frameworks启动为止。第二个过程从Frameworks启动完成到Launcher程序启动完成。<br />第一个过程显示的画面是一张图,第二个过程显示的是一个动画。分别简要记录一下怎么样在源码中修改这两个地方。<br /> <br />第一个过程的修改比较简单,找到/system/core/init/init.h中的宏定义:<br />#define INIT_IMAGE_FILE"/initlogo.rle"
2011-03-04 12:38:00 12024 2
改进的开源项目3D的罗盘(marine compass)
2011-07-15
EventHub演示程序及源码
2011-05-13
SurfaceFlinger使用演示程序及源代码
2011-05-09
JNI编程指南和规范的中文翻译(The JavaTM Native Interface Programmer's Guide and Specification)
2010-09-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人