自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(168)
  • 收藏
  • 关注

转载 uinput: 用户空间的输入子系统

原文地址uinput: 用户空间的输入子系统

2018-07-25 22:19:48 442

转载 《Android外部存储》

| 导语 外部存储作为开发中经常接触的一个重要系统组成,在Android历代版本中,有过许许多多重要的变更。我也曾疑惑过,为什么一个简简单单外部存储,会存在存在这么多奇奇怪怪的路径:/sdcard、/mnt/sdacrd、/storage/extSdCard、/mnt/shell/emulated/0、/storage/emulated/0、/mnt/shell/runtime/default/e...

2018-06-17 20:46:09 671

原创 android 存储系统学习

参考资料:android存储系统的历史变更app开发角度看存储系统vold处理流程Android M 外部存储剖析《Android外部存储》路径链接关系:/sdcard ---> /storage/self/primary/mnt/sdcard ---> /storage/self/primary12/storage/self/primary ---> /mnt/user/0/...

2018-06-17 20:44:20 1755 1

转载 mount namespace和shared subtrees

mount namespace是一个强大并且复杂的机制,用来为每个用户和每个容器创建文件系统树.它是一个很复杂的特性.在我们关于namespaces的一系列文章中,我们将会解开它的复杂性,我们将会深入的研究shared subtrees特性,这个特性以自动,受控的方式允许mount/unmount事件在mount namespaces之间传播事件.介绍mount namespace在2002出现在...

2018-06-17 11:04:25 678

转载 Orientation类型传感器放弃,新方案改用旋转矩阵实现指南针

一、前言本篇blog是我的“Android进阶”的第一篇文章,从初学Android到现在断断续续也有4个多月时间了,也算是有了一些自己的心得体会,也能自己独立做一些东西了,这都要感谢我们公司的安卓开发璟博和无所不能的鸿洋给我的帮助和指点。本系列blog将记录我在开发中、学习中遇到的较为重点的、值得记录的知识点和技巧,简单的说就不再是基础教程了。由于项目中需要用到方向传感器,所以就借此机会来学一学A...

2018-06-17 10:57:53 1174

翻译 Fingerprint HAL

概要 如果一个设备有fingerprint sensor,那用户可以录入一个或多个指纹。使用指纹解锁设备或执行其他任务。 android系统使用Fingerprint HAL层和vendor-specific library和fingerprint sensor。 为了实现fingerprint HAL,        你必须在vendor-specific library里实现fingerpri...

2018-05-19 21:32:06 754

原创 8974平台24位音乐播放在 Audio HAL层的实现

在mixer_path.xml中增加24位播放路由控制播放时路由:                         在部分增加关闭24位播放的路由的kctrl: 2.在audio_hw.h中增加24位对应usecase常量的定义在枚举类型audio_usecase_t的定义中增加如下语句:USECASE_AUDIO_PLAYBACK_DEEP

2018-05-19 19:17:41 968

转载 Android Sensor Framework 概览

http://kernel.meizu.com/android-sensor-framework.html1. OverviewAndroid Sensor Framework 的整体架构如图 1 所示:图片 1Android Sensor Framework 可以分为 3 大部分,各个部分的主要功能如下:SDK这一部分主要功能是为 Appl

2018-05-19 19:17:19 804

转载 Binder系列7—framework层分析

framework/base/core/java/android/os/ - IInterface.java - IServiceManager.java - ServiceManager.java - ServiceManagerNative.java(包含内部类ServiceManagerProxy)framework/base/core/java/android/os/...

2018-05-19 19:16:49 749

转载 Binder系列6—获取服务(getService)

一、 获取服务在Native层的服务注册,我们选择以media为例来展开讲解,先来看看media的类关系图。1.1 类图点击查看大图图解:蓝色: 代表获取MediaPlayerService服务相关的类;绿色: 代表Binder架构中与Binder驱动通信过程中的最为核心的两个类;紫色: 代表注册服务和获取服务的公共接口/父类;二. 获取Media服务2.1 getMediaPlayerServi...

2018-05-18 23:20:40 3001

转载 Binder系列10—总结

1. Binder概述从IPC角度来说:Binder是Android中的一种跨进程通信方式,该通信方式在linux中没有,是Android独有;从Android Driver层:Binder还可以理解为一种虚拟的物理设备,它的设备驱动是/dev/binder;从Android Native层:Binder是创建Service Manager以及BpBinder/BBinder模型,搭建与binde...

2018-05-18 23:20:23 358

转载 Binder系列8—如何使用Binder

一、Native层Binder源码结构:ClientDemo.cpp: 客户端程序ServerDemo.cpp:服务端程序IMyService.h:自定义的MyService服务的头文件IMyService.cpp:自定义的MyService服务Android.mk:源码build文件1.1 服务端#include "IMyService.h"int main() { //获取servi...

2018-05-18 23:17:05 492

转载 Binder系列9—如何使用AIDL

一、AIDL1.1 Server端RemoteService.java本例是为了演示进程间的通信机制,故需要将Service与Activity处于不同的进程,需要在AndroidManifest.xml中,把service配置成android:process=":remote",进程也可以命名成其他的。public class RemoteService extends Service { ...

2018-05-18 23:16:54 299

转载 Binder系列5—注册服务(addService)

framework/native/libs/binder/ - Binder.cpp - BpBinder.cpp - IPCThreadState.cpp - ProcessState.cpp - IServiceManager.cpp - IInterface.cpp - Parcel.cppframeworks/native/include/binder/ ...

2018-05-18 23:16:29 824

转载 android FDE规范

Full-Disk EncryptionIN THIS DOCUMENTHow Android full-disk encryption worksFlowsEncrypt a new device with forceencryptEncrypt an existing deviceStarting an encrypted device with default encryptionStart...

2018-05-18 22:22:56 1176

原创 请求指纹认证授权秘钥使用

        当你在androidkeystore中生成或导入密钥时,你可以指定密钥只在用户经过身份验证时被授权使用。用户通过他们的安全锁屏凭证(模式/pin/密码、指纹)的子集进行身份验证。        用户身份认证授权一个秘钥相关的加解密操作。当前这样授权的唯一方法是指纹授权。        如果将key存放在AndroidKeyStore中,可以为key设置一些保护(KeyProtect...

2018-05-18 22:16:41 2597

转载 android FDE功能介绍

在Android 5.0之前,vold中的磁盘加密功能FDE(full disk encryption),只是对用户密码及SALT采用了scrypt算法来生成加密密钥(4.4以前使用pkdf2,强度更低),这些只是增加了暴力破解的难度,但风险依然很高。比如可以获取分区镜像 前1K 及 后16K 的数据 (Android FDE的相关加密密钥默认存储在分区尾部的16 KBytes中,前4K是EXT4...

2018-05-18 21:55:08 4214 1

转载 base64

Base64是一种用64个字符来表示任意二进制数据的方法。用记事本打开exe、jpg、pdf这些文件时,我们都会看到一大堆乱码,因为二进制文件包含很多无法显示和打印的字符,所以,如果要让记事本这样的文本处理软件能处理二进制数据,就需要一个二进制到字符串的转换方法。Base64是一种最常见的二进制编码方法。Base64的原理很简单,首先,准备一个包含64个字符的数组:['A', 'B', 'C', ...

2018-04-11 22:40:49 178

转载 hmac介绍

通过哈希算法,我们可以验证一段数据是否有效,方法就是对比该数据的哈希值,例如,判断用户口令是否正确,我们用保存在数据库中的password_md5对比计算md5(password)的结果,如果一致,用户输入的口令就是正确的。为了防止黑客通过彩虹表根据哈希值反推原始口令,在计算哈希的时候,不能仅针对原始输入计算,需要增加一个salt来使得相同的输入也能得到不同的哈希,这样,大大增加了黑客破解的难度。...

2018-04-11 22:31:28 1092

转载 数字证书原理,公钥私钥加密原理 - 因为这个太重要了

文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用。接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的管理,最后演示使用makecert生成数字证书。如果发现文中有错误的地方,或者有什么地方说得不够清楚,欢迎指出! 1、基础知识      这部分内容主要解释一些概念和术语,最好是先理解这部分内容。1.1、公...

2018-04-11 22:11:27 293

转载 加密解密,数字签名及证书

对称加密分类数据加密标准DES(56位密钥长度,密钥太短,抗穷举能力差,安全性不够)三重DES-DESede(112和168两种密钥长度,抗穷举能力显著增强, 但由于进行了多重des迭代,造成处理速度慢,效率不高)高级数据加密标准AES(128和192及256三种密钥长度,搞穷举能力强,速度比des系列加密快,为替代des系列加密算法而生)对称加密步骤由消息传递双方约定密钥消息发送方使用密钥对明文...

2018-04-11 22:06:36 365

转载 数字签名与数字证书技术简介(三)

基于非对称密钥算法,Bob生成了一对公私钥。Bob将公钥发布在公开的密钥库中。而Alice在向Bob发送加密文件或者验证Bob签名的文件时,均要从公钥库取到Bob的公钥。我们已经知道,一般来说公钥就是一段固定长度的字符串,并没有特定的含义。为了让Alice能够方便的辨别公钥,我们可以考虑对给公钥附加一些信息,例如该公钥使用的算法,该公钥的所有者(主题),该公钥的有效期等一系列属性。这样的数据结构我...

2018-04-11 21:47:45 486

转载 数字签名与数字证书技术简介(二)

现在我们可以继续我们的场景:假设有一天,Alice收到了一份署名为Bob的文件。Alice希望能够确认这份文件一定是来自Bob;另外Alice希望能够确信,这份文件在传输过程中并没有被它人篡改。那么基于非对称密钥算法我们应该怎么做?确认文件一定来自于Bob,其实就是Bob无法否认自己发送过这份文件。信息安全中称作不可抵赖性;另一方面,确信文件并没有中途被篡改,则称作不可篡改性。在非对称密钥算法中提...

2018-04-11 21:47:06 303

转载 数字签名与数字证书技术简介(一)

参考文档:https://blog.csdn.net/u014419512/article/details/26290821数字签名、数字证书等技术,是现代信息安全的核心技术,可谓使用面十分广泛。其基本理论本身并不复杂,本文希望通过深入浅出的介绍,能够让大家有一些基本了解。 对称加密、非对称加密让我们通过一个例子开始:我们的主角分别是Alice和Bob。现在假设Alice要给Bob发送一份文件,文...

2018-04-11 21:46:28 937

转载 数字签名是什么?

原文:http://www.youdzone.com/signature.html1.鲍勃有两把钥匙,一把是公钥,另一把是私钥。2.鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。3.苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。4.鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也...

2018-04-10 23:25:59 257

转载 深入理解加密、解密、数字签名和数字证书

随着电子商务的迅速发展,信息安全已成为焦点问题之一,尤其是网上支付和网络银行对信息安全的要求显得更为突出。为了能在因特网上开展安全的电子商务活动,公开密钥基础设施( PKI, Public Key Infrastructure )逐步在国内外得到广泛应用。我们是否真的需要 PKI , PKI 究竟有什么用?下面通过一个案例一步步地来剖析这个问题 : 甲想将一份合同文件通过 Internet 发给远...

2018-04-10 23:23:29 2290

原创 理解对称加密、非对称加密、数字签名、数字证书

参考文档:https://blog.csdn.net/u011068702/article/details/73357150对称加密(数据保密性) 算法:DES 、 3DES 、 RC5、AES 特点:加密和解密使用相同的密钥       加密原文非对称加密(数据保密性) 算法:DH、RSA 特点:需要两个秘钥公钥和私钥       加密速度慢,只可用其加密小数据(如对称密钥、消息摘要)     ...

2018-04-10 23:22:31 568

转载 Binder系列4—获取ServiceManager

framework/native/libs/binder/ - ProcessState.cpp - BpBinder.cpp - Binder.cpp - IServiceManager.cppframework/native/include/binder/ - IServiceManager.h - IInterface.h一. 概述获取Service Manag...

2018-04-07 20:33:52 266

转载 Binder系列3—启动ServiceManager

framework/native/cmds/servicemanager/ - service_manager.c - binder.c kernel/drivers/ (不同Linux分支路径略有不同) - staging/android/binder.c - android/binder.c 一. 概述ServiceManager是Binder IPC通信过程中的守护进...

2018-04-06 21:08:47 368

转载 Binder系列2—Binder Driver再探

一、Binder通信简述上一篇文章Binder Driver初探介绍了Binder驱动的init、open、mmap、ioctl这4个核心方法,并说明与Binder相关的常见结构体。Client进程通过RPC(Remote Procedure Call Protocol)与Server通信,可以简单地划分为三层,驱动层、IPC层、业务层。demo()便是Client端和Server共同协商好的统一...

2018-04-06 21:07:37 324

转载 binder系列1-binder driver初探

kernel/drivers/ (不同Linux分支路径略有不同) - staging/android/binder.c - android/binder.c 一、Binder驱动概述1.1 概述Binder驱动是Android专用的,但底层的驱动架构与Linux驱动一样。binder驱动在以misc设备进行注册,作为虚拟字符设备,没有直接操作硬件,只是对设备内存的处理。主要是驱动设备的...

2018-04-06 21:06:37 1002

转载 binder系列-开篇

一、概述Android系统中,每个应用程序是由Android的Activity,Service,Broadcast,ContentProvider这四剑客的中一个或多个组合而成,这四剑客所涉及的多进程间的通信底层都是依赖于Binder IPC机制。例如当进程A中的Activity要向进程B中的Service通信,这便需要依赖于Binder IPC。不仅于此,整个Android系统架构中,大量采用了...

2018-04-06 21:05:31 515

转载 彻底理解android binder通信架构

http://gityuan.com/2016/09/04/binder-start-service/一. 引言1.1 Binder架构的思考Android内核是基于Linux系统, 而Linux现存多种进程间IPC方式:管道, 消息队列, 共享内存, 套接字, 信号量, 信号. 为什么Android非要用Binder来进行进程间通信呢. 从我个人的理解角度, 曾尝试着在知乎回答同样一个问题 为什...

2018-04-06 21:01:36 1469

转载 binder子系统之调试分析3

一. binder调试信息1.1 binder_thread调用方法:print_binder_threadthread 8980: l 12 //tid=8980,looper=12关于looper状态值:BINDER_LOOPER_STATE_REGISTERED = 0x01, // 创建注册线程BC_REGISTER_LOOPERBINDER_LOOPER_STATE_ENTERED...

2018-04-06 20:59:18 475

转载 binder子系统之调试分析2

一. 节点创建上一篇文章已经介绍了binder子系统调试的一些手段,这篇文章再来挑选系统几个核心服务进程来进行分析.1.1 内核编译选项如果系统关闭了debugfs,则通过编辑kernel/arch/arm/configs/×××_defconfig//开启debugfsCONFIG_DEBUG_FS=y//有时,可能还需要配置fs的白名单列表,例如:CONFIG_DEBUG_FS_WHIT...

2018-04-06 20:58:11 2077

转载 binder子系统之调试分析1

转自 http://gityuan.com/一. 概述在博客以前有写过关于binder系列,大概写了10篇关于binder的文章,从binder驱动,到native层,再到framework,一路写到app层的使用。有兴趣的可以看看 Binder系列—开篇。二.Binder驱动调试看过Binder系列文章的同学,会发现Binder IPC过程最终都交给Binder Driver来完成,这是真正干跨...

2018-04-06 20:57:23 335

原创 binder网址

http://www.cnblogs.com/palance/p/5429111.html

2018-04-06 20:54:38 149

转载 深入理解android系列之binder

https://blog.csdn.net/innost/article/details/47208049本章主要内容·  以MediaServer为切入点,对Binder的工作机制进行分析。·  剖析ServiceManager的原理。·  以MediaPlayerService为切入点对Client和Service的交互进行分析。·  学以致用,探讨如何写自己的Service。本章涉及的源代码...

2018-04-06 20:49:49 793

转载 Android Fingerprint -- Enroll流程

Enroll流程主要的工作是在hal层以下完成的。对于应用层和framwork层的流程就不做详细分析了。一、preEnroll点击设置中的添加指纹,setting就会调到fingerprintd的preEnroll接口。preEnroll会在指纹TA中生成并保存一个64位的随机数。这个随机数有两个用途:返回给上层,用于填充enroll中的authenticated token challenge。...

2018-03-29 21:15:34 2005

转载 高通sensor架构实例分析之三(adsp上报数据详解、校准流程详解)

从adsp获取数据的方法分为同步、异步两种方式,但一般在实际使用中使用异步方式,因为同步获取数据会因外设总线速率低的问题阻塞smgr,降低效率,增加功耗。 Sensor上报数据的方式分为如下几种sync          同步数据上报,(每次上报一个数据)async        异步数据上报,每次请求之后不阻塞,定时查看状态,(收到一个数据即上报)self-scheduling         ...

2018-02-24 22:43:01 4267

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除