《Android外部存储》 | 导语 外部存储作为开发中经常接触的一个重要系统组成,在Android历代版本中,有过许许多多重要的变更。我也曾疑惑过,为什么一个简简单单外部存储,会存在存在这么多奇奇怪怪的路径:/sdcard、/mnt/sdacrd、/storage/extSdCard、/mnt/shell/emulated/0、/storage/emulated/0、/mnt/shell/runtime/default/e...
android 存储系统学习 参考资料:android存储系统的历史变更app开发角度看存储系统vold处理流程Android M 外部存储剖析《Android外部存储》路径链接关系:/sdcard ---> /storage/self/primary/mnt/sdcard ---> /storage/self/primary12/storage/self/primary ---> /mnt/user/0/...
mount namespace和shared subtrees mount namespace是一个强大并且复杂的机制,用来为每个用户和每个容器创建文件系统树.它是一个很复杂的特性.在我们关于namespaces的一系列文章中,我们将会解开它的复杂性,我们将会深入的研究shared subtrees特性,这个特性以自动,受控的方式允许mount/unmount事件在mount namespaces之间传播事件.介绍mount namespace在2002出现在...
Orientation类型传感器放弃,新方案改用旋转矩阵实现指南针 一、前言本篇blog是我的“Android进阶”的第一篇文章,从初学Android到现在断断续续也有4个多月时间了,也算是有了一些自己的心得体会,也能自己独立做一些东西了,这都要感谢我们公司的安卓开发璟博和无所不能的鸿洋给我的帮助和指点。本系列blog将记录我在开发中、学习中遇到的较为重点的、值得记录的知识点和技巧,简单的说就不再是基础教程了。由于项目中需要用到方向传感器,所以就借此机会来学一学A...
Fingerprint HAL 概要 如果一个设备有fingerprint sensor,那用户可以录入一个或多个指纹。使用指纹解锁设备或执行其他任务。 android系统使用Fingerprint HAL层和vendor-specific library和fingerprint sensor。 为了实现fingerprint HAL, 你必须在vendor-specific library里实现fingerpri...
8974平台24位音乐播放在 Audio HAL层的实现 在mixer_path.xml中增加24位播放路由控制播放时路由: 在部分增加关闭24位播放的路由的kctrl: 2.在audio_hw.h中增加24位对应usecase常量的定义在枚举类型audio_usecase_t的定义中增加如下语句:USECASE_AUDIO_PLAYBACK_DEEP
Android Sensor Framework 概览 http://kernel.meizu.com/android-sensor-framework.html1. OverviewAndroid Sensor Framework 的整体架构如图 1 所示:图片 1Android Sensor Framework 可以分为 3 大部分,各个部分的主要功能如下:SDK这一部分主要功能是为 Appl
Binder系列7—framework层分析 framework/base/core/java/android/os/ - IInterface.java - IServiceManager.java - ServiceManager.java - ServiceManagerNative.java(包含内部类ServiceManagerProxy)framework/base/core/java/android/os/...
Binder系列6—获取服务(getService) 一、 获取服务在Native层的服务注册,我们选择以media为例来展开讲解,先来看看media的类关系图。1.1 类图点击查看大图图解:蓝色: 代表获取MediaPlayerService服务相关的类;绿色: 代表Binder架构中与Binder驱动通信过程中的最为核心的两个类;紫色: 代表注册服务和获取服务的公共接口/父类;二. 获取Media服务2.1 getMediaPlayerServi...
Binder系列10—总结 1. Binder概述从IPC角度来说:Binder是Android中的一种跨进程通信方式,该通信方式在linux中没有,是Android独有;从Android Driver层:Binder还可以理解为一种虚拟的物理设备,它的设备驱动是/dev/binder;从Android Native层:Binder是创建Service Manager以及BpBinder/BBinder模型,搭建与binde...
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...
Binder系列9—如何使用AIDL 一、AIDL1.1 Server端RemoteService.java本例是为了演示进程间的通信机制,故需要将Service与Activity处于不同的进程,需要在AndroidManifest.xml中,把service配置成android:process=":remote",进程也可以命名成其他的。public class RemoteService extends Service { ...
Binder系列5—注册服务(addService) framework/native/libs/binder/ - Binder.cpp - BpBinder.cpp - IPCThreadState.cpp - ProcessState.cpp - IServiceManager.cpp - IInterface.cpp - Parcel.cppframeworks/native/include/binder/ ...
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...
请求指纹认证授权秘钥使用 当你在androidkeystore中生成或导入密钥时,你可以指定密钥只在用户经过身份验证时被授权使用。用户通过他们的安全锁屏凭证(模式/pin/密码、指纹)的子集进行身份验证。 用户身份认证授权一个秘钥相关的加解密操作。当前这样授权的唯一方法是指纹授权。 如果将key存放在AndroidKeyStore中,可以为key设置一些保护(KeyProtect...
android FDE功能介绍 在Android 5.0之前,vold中的磁盘加密功能FDE(full disk encryption),只是对用户密码及SALT采用了scrypt算法来生成加密密钥(4.4以前使用pkdf2,强度更低),这些只是增加了暴力破解的难度,但风险依然很高。比如可以获取分区镜像 前1K 及 后16K 的数据 (Android FDE的相关加密密钥默认存储在分区尾部的16 KBytes中,前4K是EXT4...
base64 Base64是一种用64个字符来表示任意二进制数据的方法。用记事本打开exe、jpg、pdf这些文件时,我们都会看到一大堆乱码,因为二进制文件包含很多无法显示和打印的字符,所以,如果要让记事本这样的文本处理软件能处理二进制数据,就需要一个二进制到字符串的转换方法。Base64是一种最常见的二进制编码方法。Base64的原理很简单,首先,准备一个包含64个字符的数组:['A', 'B', 'C', ...
hmac介绍 通过哈希算法,我们可以验证一段数据是否有效,方法就是对比该数据的哈希值,例如,判断用户口令是否正确,我们用保存在数据库中的password_md5对比计算md5(password)的结果,如果一致,用户输入的口令就是正确的。为了防止黑客通过彩虹表根据哈希值反推原始口令,在计算哈希的时候,不能仅针对原始输入计算,需要增加一个salt来使得相同的输入也能得到不同的哈希,这样,大大增加了黑客破解的难度。...
数字证书原理,公钥私钥加密原理 - 因为这个太重要了 文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用。接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的管理,最后演示使用makecert生成数字证书。如果发现文中有错误的地方,或者有什么地方说得不够清楚,欢迎指出! 1、基础知识 这部分内容主要解释一些概念和术语,最好是先理解这部分内容。1.1、公...