so加载报错:dlopen failed: couldn't map ... Permission denied
来源:互联网 发布:淘宝马甲是什么意思 编辑:程序博客网 时间:2024/05/06 13:14
这应该是一个极少应用能遇到问题,既然被我碰到了,而且为此排查折腾了好几天,跟人约好打球都没去成,还是在这里写一下。如果有后来者也同样遇到,或许可以省些力气。
我的应用当中集成了一个安全相关的sdk,而这个sdk中使用的so是加过壳的。
它加载native so的方式是:Java System.loadLibrary ——> native so 壳 ——> 内存中脱壳 ——> 写到/data/data/package/files/libxxx.so ——> c 中调用dlopen。
此时dlopen报错dlopen failed: couldn't map "/data/data/package/files/
一度感觉非常奇怪,为什么失败。google搜了一段,可能是SELinux机制的功劳。。。总算找到一点线索。
ps -Z 查看进程的标记,发现是PLATFORM_APP。当SELinux对应用打标为PLATFORM_APP时dlopen不能从/data目录加载so,会报如上错误并将so删除。
那么哪些是PLATFORM_APP,当应用签名与系统签名一样时就是PLATFORM_APP。
0 0
- so加载报错:dlopen failed: couldn't map ... Permission denied
- dlopen failed: couldn't map ... Permission denied
- 关于android 5.0报错:dlopen failed: couldn't map ... Permission denied
- 关于android 5.0报错:dlopen failed: couldn't map ... Permission denied
- so包问题汇总 PathClassLoader ** couldn't find; dlopen failed is 32-bit
- libz.so.1: failed to map segment from shared object: Permission denied
- rails db:migrate:reset 或者 rails db:rest失败 (rails 5)报错(Permission denied、Couldn't drop database)
- java FTP 报错 Permission denied: recv failed 解决方法
- 报错java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/cn.*****/lib/arm64/libGlobal.so" is 3
- Android Studio 加载 .so库出现couldn't find "*.so"
- 部分手机不能加载so文件,couldn't find *.so
- 加载so库错误问题“couldn't find "libbmob.so"”
- Android Studio 加载 .so库出现couldn't find "*.so"
- php报错Permission denied
- Xcode报错:Permission denied
- DDMS进行Pull文件报错Failed to pull selection: open failed: Permission denied的解决方法
- 编译过程中,.so文件被删除,不见了,运行报错 UnsatisfiedLinkError: Couldn't load anysdk
- 使用RenderScript-v8 报错的问题 couldn't find "librsjni.so"
- Android N中Service相关流程概述
- 优化项目中资源id全局变量过多
- SpringMVC method属性与http请求方法一致
- 3.3 多部分对象集合
- 一个简单的linux命令——touch
- so加载报错:dlopen failed: couldn't map ... Permission denied
- 关于调试的心得分享
- java 操作数据库
- 更新 apk 遇到错误“已安装存在签名冲突***”
- wireshark抓包常见提示含义解析
- java注解
- 可逆素数
- Android的JNI_OnLoad简介与应用
- jquery绑定事件不起作用解决办法,永久生效