W + E load segments are not allowed
来源:互联网 发布:数据挖掘试题和答案 编辑:程序博客网 时间:2024/06/06 05:50
在进行android O的兼容性验证中,我们发现有应用force close,查看log会有W + E load segments are not allowed。
08-10 15:37:30.616 3148 3148 W linker : "/data/app/com.sxiaoao.fatpebble.clayjam.OPPO-Zwf5LGb1adpUq7SRfo8wvw==/lib/arm/libDexHelperUtil.so": W + E load segments are not allowed
08-10 15:37:30.629 3148 3148 W linker : "/data/data/com.sxiaoao.fatpebble.clayjam.OPPO/.seccache/libDexHelper.so": W + E load segments are not allowed
08-10 15:37:30.646 3148 3148 F libc : Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 3148 (le.clayjam.OPPO)
08-10 15:37:30.739 3175 3175 I crash_dump32: obtaining output fd from tombstoned
08-10 15:37:30.702 3175 3175 W crash_dump32: type=1400 audit(0.0:6583): avc: denied { search } for name="com.sxiaoao.fatpebble.clayjam.OPPO" dev="dm-0" ino=278577 scontext=u:r:crash_dump:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=dir permissive=0
08-10 15:37:30.740 1290 1290 I /system/bin/tombstoned: received crash request for pid 3148
08-10 15:37:30.702 3175 3175 W crash_dump32: type=1400 audit(0.0:6584): avc: denied { search } for name="com.sxiaoao.fatpebble.clayjam.OPPO" dev="dm-0" ino=278577 scontext=u:r:crash_dump:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=dir permissive=0
08-10 15:37:30.739 3175 3175 I crash_dump32: obtaining output fd from tombstoned
08-10 15:37:30.740 1290 1290 I /system/bin/tombstoned: received crash request for pid 3148
08-10 15:37:30.743 3175 3175 I crash_dump32: performing dump of process 3148 (target tid = 3148)
08-10 15:37:30.743 3175 3175 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
08-10 15:37:30.743 3175 3175 F DEBUG : Build fingerprint: 'Android/msm8998/msm8998:8.0.0/OPR1.170623.011/lnxbui08040516:userdebug/test-keys'
08-10 15:37:30.743 3175 3175 F DEBUG : Revision: '0'
08-10 15:37:30.743 3175 3175 F DEBUG : ABI: 'arm'
08-10 15:37:30.743 3175 3175 F DEBUG : pid: 3148, tid: 3148, name: le.clayjam.OPPO >>> com.sxiaoao.fatpebble.clayjam.OPPO <<<
08-10 15:37:30.743 3175 3175 F DEBUG : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
08-10 15:37:30.743 3175 3175 F DEBUG : Cause: null pointer dereference
08-10 15:37:30.743 3175 3175 F DEBUG : r0 00000006 r1 00004001 r2 00000000 r3 00000000
08-10 15:37:30.743 3175 3175 F DEBUG : r4 00000000 r5 0000287e r6 edbfec50 r7 dbc7f800
08-10 15:37:30.743 3175 3175 F DEBUG : r8 ffc582a8 r9 00000099 sl eaa7615c fp ead31230
08-10 15:37:30.744 3175 3175 F DEBUG : ip 00000000 sp ffc58180 lr cedb084f pc cedb0850 cpsr 000d0030
08-10 15:37:30.744 3175 3175 F DEBUG :
08-10 15:37:30.744 3175 3175 F DEBUG : backtrace:
08-10 15:37:30.744 3175 3175 F DEBUG : #00 pc 00027850 /data/data/com.sxiaoao.fatpebble.clayjam.OPPO/.seccache/libDexHelper.so (offset 0x8000)
08-10 15:37:30.744 3175 3175 F DEBUG : #01 pc 0002784d /data/data/com.sxiaoao.fatpebble.clayjam.OPPO/.seccache/libDexHelper.so (offset 0x8000)
08-10 15:37:31.632 3175 3175 W crash_dump32: type=1400 audit(0.0:6589): avc: denied { search } for name="com.sxiaoao.fatpebble.clayjam.OPPO" dev="dm-0" ino=278577 scontext=u:r:crash_dump:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=dir permissive=0
08-10 15:37:31.882 1290 1290 E /system/bin/tombstoned: Tombstone written to: /data/tombstones//tombstone_06
结合源码其实很容易分析,
In the bionic/linker/linker_phdr.cpp,
boolElfReader::LoadSegments() {
int prot =PFLAGS_TO_PROT(phdr->p_flags);
if ((prot& (PROT_EXEC | PROT_WRITE)) == (PROT_EXEC | PROT_WRITE)) {
// W + EPT_LOAD segments are not allowed in O.
if(get_application_target_sdk_version() >= __ANDROID_API_O__) {
DL_ERR_AND_LOG("\"%s\": W + E load segments are not allowed",name_.c_str());
return false;
}
DL_WARN("\"%s\": W + E load segments are notallowed", name_.c_str());
add_dlwarning(name_.c_str(), "W+E load segments");
}
So the flag in the so file segment should be not be W + E,or W + E PT_LOAD segments are not allowed in O
More details should refer the format information of so (ELFformat)
- W + E load segments are not allowed
- Packets larger than max_allowed_packet are not allowed
- Root logins are not allowed 解决办法
- in-source builds are not allowed
- Not allowed to load local resource
- Not allowed to load local resource
- not allowed to load local resource
- JS: Not allowed to load resource
- Subqueries are not allowed in this context. Only scalar expressions are allowed.
- Write operations are not allowed in read-only mode
- Write operations are not allowed in read-only mode
- You are not allowed to change cross-client customazing
- Write operations are not allowed in read-only mode
- yii-You are not allowed to access this page
- mysql Packets larger than max_allowed_packet are not allowed
- yii-You are not allowed to access this page
- operations are not allowed in read-only mode
- yii-You are not allowed to access this page
- while语句的使用
- TensorFlow-4 实现多层感知机
- 手工安装CDH Hadoop 单结点
- Apache(上)
- strcpy和memcpy
- W + E load segments are not allowed
- 关注民生民情——华北水利水电大学“情艺”国情社情调查
- Android常用空间textview讲解
- Java面试题(最新最全Java面试题汇总)
- 文件压缩与解压
- C++ const面试题和相关的解释
- static和new连用,并且delete多次出现的有趣问题
- DCGAN生成彩色图片
- ZOJ 3798 Abs Problem(找规律)