自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

omnispace的博客

专注AI,物联网,区块链,安卓以及相关安全技术

  • 博客(20)
  • 资源 (6)
  • 收藏
  • 关注

转载 Android源码分析--MediaServer源码分析(二)

在上一篇博客中Android源码分析–MediaServer源码分析(一),我们知道了ProcessState和defaultServiceManager,在分析源码的过程中,我们被Android的Binder通信机制中的各种复杂的类关系搞的眼花缭乱,接下来我们就以MediaPlayerService为例来分析一下Binder的通信机制。首先来回顾一下:BpBinder和BBinder都是

2016-10-28 14:29:04 707

转载 Android源码分析--MediaServer源码分析(一)

MediaServer中包括了系统中的许多重要的Server:AudioFlinger:音频系统中的核心服务AudioPolicyService:音频系统中关于音频策略的重要服务MediaPlayerService:多媒体系统中的重要服务CameraService:有关照相和摄像的重要服务同时,分析MediaServer对于理解Android中的IPC机制能够提供较好的帮助。And

2016-10-28 14:27:21 2643

转载 Android mediaRecorder框架简述(二)

这里有个setupVideiEncoder,看来这里应该是对视频编码的地方 根据不同的编码类型来设置不同的参数,这个方法代码有些多直截取部分代码:来看看关键的一句,这里创建了OMXCodec 然后把创建了的编码器赋值给MediaSource,这里的MediaSource可以看作是OMXCodec的封装,这样编码器的准备工作就已经做好了:接着我们回到startMP

2016-10-28 14:24:07 447

转载 Android mediaRecorder框架简述(一)

下面是框架简图:首先调用mediaRecorder.java中的方法比如start方法,会调用jni:也就是调用android_media_recorder.cpp的start方法: 接着到mediaRecorder.cpp,mediaRecorder是由mediaplayerService创建的,而med

2016-10-28 14:21:53 578

转载 AudioRecorder 录音相关的处理流程

一.AudioRecord录音的初始化设置AudioRecord::set ->AudioSystem::getInput ->调用IAudioPolicyService.cpp文件中的BpAudioPolicyService的getInput函数    remote()->transact(GET_INPUT, data, &reply);[cpp] 

2016-10-28 14:15:21 4282

转载 Android MediaRecorder架构详解

1. 简介在android中录制音频有两种方式,MediaRecorder和AudioRecord。两者的区别如下:(1) MediaRecorder简单方便,不需要理会中间录制过程,结束录制后可以直接得到音频文件进行播放;录制的音频文件是经过压缩的,需要设置编码器;录制的音频文件可以用系统自带的播放器播放。(2) AudioRecorder在声音录制过程中

2016-10-28 13:35:35 2600

转载 Android 4.4 MediaRecorder系统结构

前面有分析过Camera的实现,现在来看看MediaRecorder的实现,这里我不会太去关注它的分层结构,我更关注它的逻辑!APP层/path/to/aosp/frameworks/base/media/java/android/media/MediaRecorder.javaJNI层/path/to/aosp/frameworks/base/media/jni/android_me

2016-10-28 13:35:06 1334

原创 Deep Learning Blogs

http://karpathy.github.io/https://www.youtube.com/watch?v=b99UVkWzYTQhttps://blog.acolyer.org/https://www.youtube.com/watch?v=uXt8qF2Zzfo

2016-10-27 16:24:23 714

转载 Android Full-Disk Encryption

原文地址:https://source.android.com/security/encryption/full-disk.htmlFull-disk encryption is the process of encoding all user data on an Android device using anencrypted key. Once a device is encrypt

2016-10-19 08:21:10 2657

原创 Changes in Android 7 Nougat

http://android-developers.blogspot.com/2016/05/hardening-media-stack.htmlhttp://android-developers.blogspot.com/2016/09/security-enhancements-in-nougat.htmlhttps://developer.android.com/

2016-10-06 17:06:08 588

转载 为什么Android要采用Binder作为IPC机制?

作者:Gityuan链接:https://www.zhihu.com/question/39440766/answer/89210950来源:知乎著作权归作者所有,转载请联系作者获得授权。在开始回答 前,先简单概括性地说说Linux现有的所有进程间IPC方式:1. 管道:在创建时分配一个page大小的内存,缓存区大小比较有限;2. 消息队列:信息复制两次,额外的CP

2016-10-06 16:51:46 652

转载 跟我一起写 Makefile(一)

跟我一起写 Makefile 陈皓概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软

2016-10-06 16:46:57 658

转载 OpenSSL X509 Certificate反序列化漏洞(CVE-2015-3825)成因分析

一、序序列化 (Serialization),是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。使用者可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。Android也有许多场景使用序列化进行数据传递,如App间/内的对象传递、Binder通信的数据传递等等,一般涉及跨进程、跨权限。序列化/反序列也是程序/接口的一个输入,存储

2016-10-05 15:39:02 2369

转载 CVE-2014-7911 Android本地提权漏洞分析与利用

概述前面我们了解了Android Binder机制的基本原理,当然仅仅了解是不够的,我们要做到:Know it and hack it。这篇文章我们就来分析一个和Binder相关的漏洞:CVE-2014-7911。这是由Jann Horn发现的一个Android本地提权漏洞,能够使普通应用的权限提升到System权限,影响Android5.0以下版本。这个漏洞是非常值得Android安全研

2016-10-05 15:36:16 5796

转载 Android So简单加固

Android下的dex加固技术从最初爱加密实现的dex整体内存加载,到目前各大厂商都在研究的代码虚拟化技术,整体技术已经很成熟了。但是因为Android系统开源的特性,这种加固方法的安全性并不高,只要修改源码中dex加载的部分,就可以dump出隐藏的dex,根据这一原理目前也已经有多个Android通用脱壳机。既然dex保不住,那么就可以将安全要求较高的代码写到native层,现在加固厂商已基本

2016-10-05 15:33:58 5549

转载 C语言结构体里的成员数组和指针

单看这文章的标题,你可能会觉得好像没什么意思。你先别下这个结论,相信这篇文章会对你理解C语言有帮助。这篇文章产生的背景是在微博上,看到@Laruence同学出了一个关于C语言的题,微博链接。微博截图如下。我觉得好多人对这段代码的理解还不够深入,所以写下了这篇文章。为了方便你把代码copy过去编译和调试,我把代码列在下面:123

2016-10-05 00:28:27 1168

转载 以Binder视角来看Service启动

一. 概述在前面的文章startService流程分析,从系统framework层详细介绍Service启动流程,见下图:Service启动过程中,首先在发起方进程调用startService,经过binder驱动,最终进入system_server进程的binder线程来执行ActivityManagerService模块的代码。本文将以Binder视角来深入讲解其中地这

2016-10-04 07:19:26 889

转载 Binder子系统之调试分析(三)

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

2016-10-04 07:18:03 1271

转载 Binder子系统之调试分析(二)

一. 概述上一篇文章已经介绍了binder子系统调试的一些手段,这篇文章再来挑选系统几个核心服务进程来进行分析.1.1 创建debugfs首先debugfs文件系统默认挂载在节点/sys/kernel/debug,binder驱动初始化的过程会在该节点下先创建/binder目录,然后在该目录下创建下面文件和目录:proc/statsstatetransactions

2016-10-04 07:16:48 2206

转载 Binder子系统之调试分析(一)

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

2016-10-04 07:15:13 3586

客户端启动出现错误无法运行的解决办法(缺失的jar文件)v1.2

基于java开发的客户端在64位机器上启动的时候有时候会无法运行,出现“invalid resource”的错误, 所提供的jar文件是常见的一个缺失文件。具体使用请参见博客。

2019-05-27

python客户端启动出现错误无法运行的解决办法(缺失的jar文件)v1.2

基于java开发的python客户端在64位机器上启动的时候有时候会无法运行,出现“invalid resource”的错误, 所提供的jar文件是常见的一个缺失文件

2019-05-24

python客户端启动出现错误无法运行的解决办法(缺失的jar文件)

基于java开发的python客户端在64位机器上启动的时候有时候会无法运行,出现“invalid resource”的错误, 所提供的jar文件是常见的一个缺失文件。

2019-04-30

[原版高清图文]Python深度学习+2018中文版pdf+英文版pdf+源代码

目前市面上最好的关于如果使用python来做深度学习的书。作者是Keras之父、谷歌大脑人工智能和深度学习研究员François Chollet。资源包括原版中英文,还有附带的源代码。这样你可以一边看书,一边实践,快速掌握用python来做各种深度学习的技巧。

2019-01-14

CVE-2015-3636资料整理

最近学习CVE-2015-3636资料整理 最近学习这个漏洞遇到了各种问题,最后在github上看到一份大牛的poc后,稍作修改后的nexus4调通成功获取到了root权限。稍有遗憾没实现跳过PXN的保护

2016-03-19

空空如也

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

TA关注的人

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