
Android源码
文章平均质量分 68
__2017__
七分实践,三分理论。
展开
-
Android更改源码后编译错误unknown package name of class file
最近往core_minimal.mk(build/target/product/)的PRODUCT_BOOT_JARS变量中加了一个自己的模块,编译报错:unknown package name of class file原创 2017-08-13 10:06:20 · 4499 阅读 · 0 评论 -
Android 6.0 弹出"SD卡不受支持"通知的前因后果
1、"SD卡不受支持"通知的来源StorageNotification.java (frameworks\base\packages\systemui\src\com\android\systemui\usb)private void onDiskScannedInternal(DiskInfo disk, int volumeCount) { if (volumeCount == 0 &原创 2017-07-10 11:41:04 · 3196 阅读 · 0 评论 -
Android框架之Camera(3)透过Camera服务看Binder进程间通信
Android 6.0Android Binder用来管理Android进程,用途有两个:1、IPC(Inter Process Communication)工具,用于进程间通信。2、RPC(Remote Procedure Call)远程函数调用,使得当前进程调用另一个进程的函数就像调用自身的函数一样。当然,她也属于IPC范畴。原创 2017-06-18 16:30:14 · 1397 阅读 · 0 评论 -
Android框架之Camera(2)HAL及so库的加载
HAL层作为纽带,把Framework层的APIs和底层驱动连接起来。简言之,上层需要什么操作接口,HAL层就负责实现之。原创 2017-06-01 21:33:31 · 3247 阅读 · 0 评论 -
Android框架之Camera(1)Camera服务的前世今生
Android中Camera服务名称为“media.camera”,它是通过写到init.rc脚本文件、由脚本解析进程启动。原创 2017-05-31 17:05:13 · 2521 阅读 · 1 评论 -
【Android架构Telephony篇】Subscription和SubscriptionManager
一台设备可以有多张SIM卡,最典型的例子就是眼下流行的“双卡双待”。每一张SIM卡都对应一个Subscription,对应的SIM卡的信息就是Subscription Information,比如运营商名称、MNC、MCC等,多张SIM卡就有多个Subscription Information。原创 2017-05-05 16:02:33 · 14742 阅读 · 0 评论 -
Android 6.0 SystemUI之通知栏下拉时周边全透明
Android 6.0 SystemUI之通知栏下拉时周边全透明原创 2017-04-19 16:13:25 · 2502 阅读 · 0 评论 -
Android中USB打印机无法创建/dev/usb/lp0节点
一、问题及问题分析Android设备接入USB打印机,在驱动正常的情况下,却无法创建/dev/usb/lp0节点。何以确定驱动是正常的?接上USB打印机,在/sys/class/usbmisc/有打印机的信息执行mdev -s命令,就会生成/dev/usb/lp0节点接下来,通过echo命令往/dev/usb/lp0输出字符,可以打印原创 2017-02-10 08:47:06 · 2950 阅读 · 0 评论 -
【Android休眠】引申之关于系统PM的思考
对于一个完整的系统,我们在做PM(Power Manager)相关的事情时,应该(至少)其休眠涉及三个部分:用户(User Space)、CPU(Kernel)、外设。这篇短文对三者之间关系进行梳理总结。原创 2017-01-22 15:42:20 · 811 阅读 · 0 评论 -
【Android休眠】之kernel电源管理
关于kernel的电源管理部分,有一位首席PM专家的博客写得相当好,为方便故,分享一下。原创 2016-12-28 12:05:23 · 2037 阅读 · 1 评论 -
【Android休眠】之AutoSleep
当所有唤醒源状态都为“deactive”,系统自动进入休眠状态,实现该功能的即是“autosleep”。由于“Android设备的特别需求”,Android提出了“Opportunistic Suspend”:Rather than trying to put the various system components into a low-power state, opportunistic suspend works by simply suspending the entire device wh原创 2016-12-16 13:12:15 · 7210 阅读 · 1 评论 -
【Android休眠】之休眠锁的获取和释放
引起休眠动作(进入休眠前执行一些必要的操作)的事件有两个:(1)PowerKey事件,通过JNI调用PowerManagerService中的goToSleepFromNative()方法;(2)Timeout,指【设置->显示->休眠】中设置的Timeout数值。最终都会调用到updatePowerStateLocked()方法,在更新一些标志的状态、发送休眠通知后,调用updateSuspendBlockerLocked()执行休眠锁的释放动作。原创 2016-12-16 13:11:41 · 4146 阅读 · 0 评论 -
【Android休眠】之Android对PowerKey事件的处理(2)EventHub
EventHub是Android中Input事件的处理中心,完成kernel上报事件的读取、初步处理、传递。(1)读取:Input设备一旦产生动作,将通过事件(Event)的方式通知user空间;user空间通过读取/dev/input目录下各个文件,获取事件及事件所属的Input设备信息。(2)初步处理:kernel是以struct input_event的格式上报数据,这里只是根据读取的该结构体做一个简单的封装,成RawEvent形式的数据。(3)传递:RawEvent形式的数据传递给Inpu原创 2016-12-16 13:09:58 · 3087 阅读 · 0 评论 -
【Android休眠】之Android对PowerKey事件的处理(1)代码流程
Android休眠在framework的处理涉及两个系统服务,InputManagerService和PowerManagerService。InputManagerService负责处理PowerKey产生的Input事件,根据事件类型调用PowerManagerService的休眠、唤醒接口;PowerManagerService执行具体的休眠、唤醒动作。本篇目的:始知此事要躬行,如果有意弄清流程,提供一个参照。原创 2016-12-16 13:08:47 · 4798 阅读 · 0 评论 -
【Android休眠】之PowerKey唤醒源实现
版本信息:Linux:3.10Android: 4.4一、唤醒源设备休眠后,通过触发唤醒源使设备恢复正常工作模式。设备唤醒源有多种,对于Android设备常见的就有PowerKey、来电唤醒、Alarm唤醒等。唤醒源的实现处于内核空间,本文重点讨论下PowerKey作为唤醒源的具体实现。二、PowerKey唤醒源PowerKey唤醒设备的原理,本质其原创 2016-12-15 22:19:01 · 7336 阅读 · 0 评论 -
【Android休眠】之Android休眠机制
1、Android设备屏幕暗下来的时候,并不是立即就进入了休眠模式;当所有唤醒源都处于de-avtive状态后,系统才会进入休眠。2、Android设备连着adb线到其他设备的情况下,设备是不会进入休眠模式的。3、有休眠操作就有唤醒,就需要唤醒源。唤醒源有很多种,在内核注册,比如常用的Power按键。4、曾经困惑的一个问题:系统怎么知道自己应该进入休眠模式了?它的判断依据是什么? 在wakelock时代,系统休眠过程中去检测休眠锁;如果系统中没有其他部件持有休眠锁,就尝试进入休眠模式,原创 2016-12-14 21:42:13 · 27126 阅读 · 2 评论 -
【Android架构Telephony篇】数据业务(3)RILC
Telephony数据业务的RILC层原创 2016-12-12 11:40:18 · 3196 阅读 · 0 评论 -
Android设备ro.boot.serialno的前世今生
SN的值最初来自哪里呢?一种通用的做法是设备出厂时通过工具把SN烧到Flash的存储器中,在bootloader中读取出来,然后通过cmdline的方式传给kernel,kernel进行相应属性的设置,本例就是如此。原创 2016-11-20 10:24:42 · 11579 阅读 · 2 评论 -
Android添加用户组及自定义App权限
该设备的用户及其所属组别都是root,root的持有者对该设备具有读写权限。但是,我们的App是被排除在root之外的,总之无法读写该设备。一个解决方案是:赋予others以读写权限。但是这样,任何其他第三方应用都可以访问我们的设备,安全性一丝不剩。另一个解决方案就是:改变/dev/ttyUSB0所属的用户组:哪个App想使用该设备,就把它加入到selfgroup 组中。由于权限分发权在我们手中,安全性就得到了保障。原创 2016-10-08 09:06:01 · 14062 阅读 · 0 评论 -
Android关机过程中GSM/4G等Radio的Shutdown流程
Android关机过程中的GSM/4G等Radio流程原创 2016-09-06 09:11:00 · 930 阅读 · 0 评论 -
Android/Linux检测网线是否插入
有很多方式可以获取网线插入与否的状态,最简单的方式莫过于查询内核通过VS暴漏给用户的信息。1、cat /sys/class/net/eth0/carrier2、cat /proc/net/dev原创 2016-08-27 15:41:11 · 6063 阅读 · 0 评论 -
通过提前加载jar包解决NoClassDefFoundError
那么接下来的问题就是:怎么提前加载自己的jar包?android_src/device/rockchip/rk30sdk/copyfiles/init.rc: export BOOTCLASSPATHandroid_src/build/core/dex_preopt.mk:DEXPREOPT_BOOT_JARSBOOTCLASSPATH和DEXPREOPT_BOOT_JARS指明了需要提前加载的jar包且两者是一一对应的。接下只需把自己的jar添加进去即可,比如/system/framew原创 2016-08-23 11:22:34 · 1338 阅读 · 0 评论 -
Android AppOpsService服务实践贴
Package android does not belong to 10023Bad call: specified package android under uid 10023 but it is really 1000原创 2016-07-29 17:54:42 · 6506 阅读 · 4 评论 -
致Android:短发的你
致Android:短发的你我未见你,短发时风是怎么吹起,一丝丝你在街角处,如何转身以及飘你发上的云那时水面的你,倒影清爽,映衬着漾动着而静好的阳光终于吻上你的耳旁朋友们说些什么,表情是新奇或乖张最幸运还是窗镜你短发时我的记忆,像是穿过宇宙虫洞瞬间就到现在,像是什么都没有发生 也过去了呵,像是长眠后苏原创 2016-06-11 16:50:09 · 534 阅读 · 0 评论 -
Android BitTube
BitTube的实现很简洁,就是一对"parcel-able"模式的socket,用Linux/Unix中的术语来说叫“socketpair”。“socketpair”是Linux/Unix系统中用于进程间通信的一种机制,和“pipe”十分类似。尽管“socketpair”是一个全双工的管道,但BitTube是按照单向方式使用它的:一端写入数据,另一端读出数据。翻译 2016-06-08 17:59:38 · 1020 阅读 · 0 评论 -
Android使用ethtool工具查询/设置以太网网卡状态
http://blog.youkuaiyun.com/u013686019/article/details/51491364一、编译ethtool工具Android命令行中不含ethtool工具,所以需要自己编译。1、下载最新源码:ethtool-4.5.tar.xz源码地址:https://www.kernel.org/pub/software/network/ethtool/2、解压...原创 2016-05-24 16:33:39 · 11047 阅读 · 5 评论 -
Android网络安全:Netfilter与iptables
1、Netfilter与iptables关系Netfilter: http://www.netfilter.org/: Netfilter is a framework provided by the Linux kernel that allows various networking-related operations to be implemented in the form of customized handlers. Netfilter offers原创 2016-05-22 11:09:05 · 8686 阅读 · 1 评论 -
Android网络优先级及更改
Android版本:Android 4.4.4涉及内容: 1,网络优先级; 2,网络切换; 3,界面显示。解决问题: 1,更改网络优先级:让以太网(eth0)优先级高于WiFi(Wlan0); 2,WiFi切换到以太网异常原因及解决。原创 2016-05-18 20:45:44 · 29222 阅读 · 9 评论 -
Android APN加载流程
1、Android的APN(Access Point Name)数据预置在/system/etc/apns-conf.xml中:2、源码:apns-conf.xml来自apns-full-conf.xml,编译系统的时候Copy到/system/etc/目录下:3、检索APN,根据MCC、MNC的值组合(46001)来查询telephony.db数据库:原创 2016-04-29 18:29:02 · 12705 阅读 · 0 评论 -
Android 安全策略实例讲解:SEAndroid和SELinux
说明:第一条log对应ls,第二条对应测试代码;"scontext=":访问过程中的主体,对应ls、App、进程等;"tcontext=":访问过程中的客体,即访问的资源、文件等。可见,"tcontext="正是在策略文件中指定的数据。原创 2016-03-10 12:10:37 · 2210 阅读 · 0 评论 -
repo: no branches ready for upload
有了repo,创建分支:repo start branch-name project-name如此,就不在报上述错误。原创 2016-01-14 21:35:41 · 11176 阅读 · 2 评论 -
Android 获取USB设备的类型
现在有USB设备插入Android系统,那么如何得知插入的设备类型?是USB打印机,U盘,还是USB鼠标?USB组织类型规定Linux对USB设备类型定义HAL层和Framework层五、APP层原创 2015-12-26 19:45:35 · 25090 阅读 · 11 评论 -
unable to run mksdcard sdk tool
PC:Debian 8.2.0 64-bitAndroid Studio:unable to run mksdcard sdk toolThe solution below comes from Google Android: Linux 32 Bit LibrariesSome of the tools that are part of the Android原创 2015-12-06 17:09:54 · 1595 阅读 · 0 评论 -
Android获取Bluetooth设备信号RSSI值得流程
Android: 4.4.4Android获取Bluetooth设备信号RSSI值得流程:原创 2015-12-03 20:14:20 · 5218 阅读 · 1 评论 -
Android无法自动创建USB打印机节点/dev/usb/lp0
Android: 4.4.4一、问题分析当把USB打印机插入Android设备后,在系统/dev目录下并没有打印机节点(/dev/usb/lp0)产生。第一反应是查看打印机设备,接入装有Ubuntu的PC,正常:有/dev/usb/lp0第二反应是查看打印机驱动信息:[178931.515572] usb 1-1: new full-speed USB device numbe原创 2015-12-03 19:58:09 · 6960 阅读 · 0 评论 -
adb识别不了设备
本来用着好好的,突然adb就死活识别不到设备了。一番周折,在~/.andrdoid/adb_usb.ini文件中添加idVender就OK了。原创 2015-11-11 18:01:52 · 1199 阅读 · 0 评论 -
【Android架构Telephony篇】数据业务(2)RILJ
Telephony执行的完整流程原创 2015-11-08 21:04:54 · 6306 阅读 · 0 评论 -
【Android架构Telephony篇】数据业务(1)总览
Android的Telephony子系统也是非常复杂的,涉及很多方面。我们以数据业务为分析入口,从上到下走一遍框图中的流程。原创 2015-11-06 21:42:39 · 6282 阅读 · 0 评论 -
【Android架构设置篇】之设置界面添加并实现永不休眠功能
最近初步研究了下Android不休眠功能的实现,记录在此的目的是留作自己或他人的参考,最重要的是知其所以然!之所以说“初步”,一是因为没做额外引申,二是因为系统(不仅限于Android)的电源管理是涉及范围很广的东西,休眠只是这个范围的豹之一斑。原创 2015-11-04 20:32:55 · 3425 阅读 · 0 评论 -
Debian Linux安装Android ABD工具
两步搞定:1、apt-cache查找Linux下adb的安装包名2、安装android-tools-adb即可原创 2015-09-14 09:19:57 · 4201 阅读 · 0 评论