从4.3后,回顾《从surfaceflinger历史变更谈截屏》,只能通过生产消费者队列向surfaceflinger服务申请显示缓冲,这个缓冲就是dma-buf映射的共享内存。

binder服务受selinux安全服务管制,root权限的程序也必须受selinux策略限制,所以必须放行。

程序顺利通过surfaceflinger服务取出一帧显示缓冲,但是缓冲内容却无法访问。

通过查看进程的内存映射有

上面的那就是dma-buf,用于显示的帧缓冲都是通过共享映射访问dma-buf。上面的 's' 标记指明了映射区间为共享share,相对于私有 'p'。但是问题来了,就是Cannot access memory at address,不能访问dma-buf映射过来的内存,尽管映射的权限为rw-s。

即使通过gdb重定义内存区间的属性,也无效

内存区间被重定义了,其它区间是不可访问

2018.04.12

补充: 在gdb调试中,不能通过ptrace,对进程的 io-map 地址进行访问。在 stackflow上找到两条相关的 thread,才恍然觉悟。

https://stackoverflow.com/questions/3640095/gdb-cant-access-mmapd-kernel-allocated-memory

https://stackoverflow.com/questions/654393/examining-mmaped-addresses-using-gdb

某些机root也不能访问dma-buf的更多相关文章

  1. 本机ip+端口不能访问web server,外部却可以访问

    本机ip+端口不能访问web server,外部却可以访问! 这个奇葩的问题困扰了我好久,别人通过ip访问我的server一切正常,自己却访问不了,一度怀疑win10的问题,久寻无果! 最后关闭ads ...

  2. 客户机中PLSQL DEV访问虚拟机中的ORCLE11g,错误百出!

    客户机中PLSQL DEV访问虚拟机中的ORCLE11g,错误百出! 创建时间: 2017/10/14 18:44 作者: CNSIMO 标签: ORACLE 忙了一下午,只有两个字形容:麻烦!   ...

  3. 直接内存访问(DMA)

    1. 什么是DMA 直接内存访问是一种硬件机制,它允许外围设备和主内存之间直接传输它们的I/O数据,而不需要系统处理器的参与.使用这种机制可以大大提高与设备通信的吞吐量.   2. DMA数据传输 有 ...

  4. CentOS 7下宿主机使用virsh console访问KVM的设置

    在CentOS 6下要实现宿主机使用virsh console访问KVM可以说是非常麻烦,但这一问题在CentOS 7已经解决了,只需要两条命令在KVM下即可实现. 1.在KVM(客户机)下开机启动并 ...

  5. linux本机root账户无法登录,但是远程ssh可登录

    1.故障状态 a.linux本机root账户无法登录(root和密码无误的情况下也无法登录,但是用远程ssh软件可以登录) b.查看/var/log/secure登录日志(提示无法找到pam_limi ...

  6. Linux上安装Mysql后除了本机其他机器不能访问的问题(zhuan)

    http://blog.sina.com.cn/s/blog_a338027c0101esbs.html http://niutuku.com/tech/Mysql/237638.shtml http ...

  7. ubuntu 下root用户无法访问声音设备的解决方案

    原因:root用户没有对pulsaudio的访问权限,而且pulsaudio默认是不能在root下自动启动解决办法: 一.修改自动启动:编辑 gedit /etc/default/pulseaudio ...

  8. 安装完iis后本机用IP可以访问,别的电脑不能访问

    局域网IIS无法访问的解决方法 无法访问局域网内其它电脑中的IIS,自己可以访问,但别的电脑不行一般发生这种情况时操作系统是XP第二版. 具体操作如下:1.打开控制面版2.打开Windows防火墙 5 ...

  9. rm刷机 root

    http://www.miui.com/download-290.html http://www.miui.com/shuaji-329.html    小米稳定版 不可以root 只有升级到上面的开 ...

随机推荐

  1. Pycharm 常用快捷键大全

    Pycharm 常用快捷键 常用快捷键 快捷键 功能 Ctrl + Q 快速查看文档 Ctrl + F1 显示错误描述或警告信息 Ctrl + / 行注释(可选中多行) Ctrl + Alt + L ...

  2. java的数制转换(详解,全!)

    对于进制转换,c/c++要用到辗转相除,不仅浪费时间,还造成代码量繁多,而任意之间的进制转换还需要以十进制为跳板, 先将其他进制的数字转换为十进制,再将十进制转换为其他进制,而java中自带进制转换的 ...

  3. Mobius反演学习

    这篇文章参考了许多资料和自己的理解. 先放理论基础. 最大公约数:小学学过,这里只提一些重要的公式: $·$若$a=b$,则$\gcd(a,b)=a=b$: $·$若$\gcd(a,b)=d$,则$\ ...

  4. c语言-----劫持原理

    1. 劫持原理介绍 (1) 通过劫持技术我们可以实现某些进程的拦截,比如禁止创建文件,禁止打开qq,禁止关机等等一系列的操作 (2) 弹窗拦截就是最常见的一种劫持技术的实现. 2. 使用的工具 (1) ...

  5. 百万年薪python之路 -- JS的BOM与DOM对象

    BOM对象 location对象 location.href 获取URL location.href="URL" // 跳转到指定页面 location.reload() 重新加载 ...

  6. day2------运算符和编码

    运算符和编码 一. 格式化输出 现在有以下需求,让用户输入name, age, job,Gender 然后输出如下所示: ------------ info of Yong Jie --------- ...

  7. fenby C语言 P14

    打赌 条件运算符 (表达式?值1:值2) 赌注内容 奖励 奖励 y=(x==2?100:50): x==2,那么y=100 x!=2,那么y=50 #include int main() { int ...

  8. Dubbo学习系列之十六(ELK海量日志分析框架)

    外卖公司如何匹配骑手和订单?淘宝如何进行商品推荐?或者读者兴趣匹配?还有海量数据存储搜索.实时日志分析.应用程序监控等场景,Elasticsearch或许可以提供一些思路,作为业界最具影响力的海量搜索 ...

  9. 二:Mysql库相关操作

    1:系统数据库 information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息.列信息.权限信息.字符信息等.performance_schema: My ...

  10. CSPS模拟 43

    我这次把考试题改完了 T1 A 发现S*b必须和T模a同余? 貌似乘不了几次就爆T了?可以暴力? 也许乘的越多越好? 内心:切了 另外怎么设置鼠标指到黑块上边就显示字那种东西 最后当然是因为低错没有A ...