omnispace的博客

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

Android Binder Driver缺陷导致定屏问题分析

本文讲解异步binder call是如何阻塞整个系统的,通过ramdump信息以及binder通信协议来演绎并还原定屏现场。一、背景知识点解决此问题所涉及到的基础知识点有:Trace、CPU调度、Ramdump推导、Crash工具、GDB工具、Ftrace, 尤其深入理解binder IPC机制。...

2018-06-05 13:15:03

阅读数 796

评论数 0

Android Treble架构解析

本文主要介绍Treble架构下的HAL&HIDL&Binder相关技术原理。Treble的详细资料文档,请参考Treble 官方文档。 1. Treble 简介 Android 8.0 版本的一项新元素是 Project Treble。这是 Android 操作系统框架在架...

2018-01-26 09:10:10

阅读数 1849

评论数 1

Binder实用指南(二) - 实战篇

本章的内容主要说明如何在JavaFramework层和Native层自定义Client-Server组件,并且使用Binder进行通信。 一、Native Binder 源码目录结构: alps/frameworks/native/cmds/NativeBinderDemo/ ...

2017-08-27 15:24:08

阅读数 306

评论数 0

Binder实用指南(一) - 理解篇

这是关于Android Binder机制的一篇文章,Binder是Android里面非常重要的组成,也是最难理解的一块知识点,学习Binder最好的方法是深入源码阅读,因为Binder相关的知识错综复杂,一般初学者也很容易迷失在源码的汪洋里,本文旨在梳理Binder的架构和流程,并且试着以实用的角...

2017-08-27 15:22:49

阅读数 306

评论数 0

一个关于binder的debug技巧

在android的C/S IPC通信框架中,常会遇到binder通信异常的问题(其实不是太经常会遇到,主要在煲机和压测等极限测试的情况下才会出现),binder的driver基本不用去怀疑其出bug的可能性,基本为0,如果binder通信出现问题,那么十有八九都是app或者service本身写的有...

2017-08-26 13:57:50

阅读数 541

评论数 0

理解Android Binder机制(3/3):Java层

本文是Android Binder机制解析的第三篇,也是最后一篇文章。本文会讲解Binder Framework Java部分的逻辑。 Binder机制分析的前面两篇文章,请移步这里: 理解Android Binder机制(1/3):驱动篇 理解Android Binder机制(...

2017-06-17 02:06:24

阅读数 1411

评论数 0

理解Android Binder机制(1/3):驱动篇

Binder的实现是比较复杂的,想要完全弄明白是怎么一回事,并不是一件容易的事情。 这里面牵涉到好几个层次,每一层都有一些模块和机制需要理解。这部分内容预计会分为三篇文章来讲解。本文是第一篇,首先会对整个Binder机制做一个架构性的讲解,然后会将大部分精力用来讲解Binder机制中最核心的...

2017-06-17 02:00:41

阅读数 1441

评论数 0

Android插件化原理解析——Hook机制之Binder Hook

Android系统通过Binder机制给应用程序提供了一系列的系统服务,诸如ActivityManagerService,ClipboardManager, AudioManager等;这些广泛存在系统服务给应用程序提供了诸如任务管理,音频,视频等异常强大的功能。 插件框架作为各个插件的管理...

2017-06-16 06:40:04

阅读数 343

评论数 0

实现AIDL接口的Binder连接池

Binder作为AIDL通信的核心, 在使用中经常需要重复利用, 动态管理AIDL接口. Binder连接池的主要作用是把Binder请求统一发送至Service执行, 即动态管理Binder操作, 避免重复创建Service. 本文使用两种简单的AIDL服务, 使用Binder连接池动态切换, ...

2017-03-30 17:54:38

阅读数 572

评论数 0

农民斗地主——Binder fuzz安全研究

扣吧力作,欢迎转载,转载请注明来自colbert337.github.io 最近扣吧忙成狗了,好久没更新博客,对不住大家了,今天趁天气暖和点,来一篇干货。 由于好久没搞Android了,写得不专业的地方,请见谅哈。 0.为什么要研究Binder fuzz 以目前最热门的指纹方案为例。 ...

2017-03-15 05:32:31

阅读数 820

评论数 0

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

作者:Gityuan 链接:https://www.zhihu.com/question/39440766/answer/89210950 来源:知乎 著作权归作者所有,转载请联系作者获得授权。 在开始回答 前,先简单概括性地说说Linux现有的所有进程间IPC方式: 1. 管道...

2016-10-06 16:51:46

阅读数 492

评论数 0

以Binder视角来看Service启动

一. 概述 在前面的文章startService流程分析,从系统framework层详细介绍Service启动流程,见下图: Service启动过程中,首先在发起方进程调用startService,经过binder驱动,最终进入system_server进程的binder线程来...

2016-10-04 07:19:26

阅读数 616

评论数 0

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

一. binder调试信息 1.1 binder_thread 调用方法:print_binder_thread thread 8980: l 12 //tid=8980,looper=12 关于looper状态值: BINDER_LOOPER_STATE_RE...

2016-10-04 07:18:03

阅读数 801

评论数 0

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

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

2016-10-04 07:16:48

阅读数 1450

评论数 0

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

一. 概述 在博客以前有写过关于binder系列,大概写了10篇关于binder的文章,从binder驱动,到native层,再到framework,一路写到app层的使用。有兴趣的可以看看 Binder系列—开篇。 二.Binder驱动调试 看过Binder系列文章的同学,会发...

2016-10-04 07:15:13

阅读数 2075

评论数 0

红茶一杯话Binder(传输机制篇_下)

1 事务的传递和处理         从IPCThreadState的角度看,它的transact()函数是通过向binder驱动发出BC_TRANSACTION语义,来表达其传输意图的,而后如有必要,它会等待从binder发回的回馈,这些回馈语义常常以“BR_”开头。另一方面,当IPCThre...

2016-09-29 13:47:38

阅读数 555

评论数 0

红茶一杯话Binder(传输机制篇_中)

1 谈谈底层IPC机制吧         在上一篇文章的最后,我们说到BpBinder将数据发到了Binder驱动。然而在驱动层,这部分数据又是如何传递到BBinder一侧的呢?这里面到底藏着什么猫腻?另外,上一篇文章虽然阐述了4棵红黑树,但是并未说明红黑树的节点到底是怎么产生的。现在,我们试着...

2016-09-29 13:45:59

阅读数 383

评论数 0

红茶一杯话Binder(传输机制篇_上)

1 Binder是如何做到精确打击的?         我们先问一个问题,binder机制到底是如何从代理对象找到其对应的binder实体呢?难道它有某种制导装置吗?要回答这个问题,我们只能静下心来研究binder驱动的代码。在本系列文档的初始篇中,我们曾经介绍过ProcessState,这个结...

2016-09-29 13:44:52

阅读数 383

评论数 0

红茶一杯话Binder(ServiceManager篇)

1.先说一个大概         Android平台的一个基本设计理念是构造一个相对平坦的功能集合,这些功能可能会身处于不同的进程中,然而却可以高效地整合到一起,实现不同的用户需求。这就必须打破过去各个孤立App所形成的天然藩篱。为此,Android提供了Binder机制。         在...

2016-09-29 13:42:39

阅读数 448

评论数 0

红茶一杯话Binder

1 什么是Binder?        简单地说,Binder是Android平台上的一种跨进程交互技术。该技术最早并不是由Google公司提出的,它的前身是Be Inc公司开发的OpenBinder,而且在Palm中也有应用。后来OpenBinder的作者Dianne Hackborn加入了G...

2016-09-29 13:40:47

阅读数 503

评论数 0

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