请使用手机微信扫码安全登录

切换账号密码登录

绑定手机号

应国家法规对于账号实名的要求,请您在进行下一步操作前,需要先完成手机绑定 (若绑定失败,请重新登录绑定)。了解更多

不绑定绑定手机号

360官网 | 360商城

推荐论坛版块活动360粉丝商城众测粉丝轰趴馆常见问题

5月10日下午,360加固保携手安卓绿色联盟(AGA),在北京360大厦,共同举办“AndroidO 适配兼容”开发者沙龙。这次活动的主要议题是对Android O系统的新变化和兼容性适配方面的相关问题进行研讨。


作为Google推出的全新一代安卓操作系统平台,AndroidO为移动应用开发者带来了哪些技术上的改进和启发?针对具体的变化,开发者们需要如何快速的迁移和适配至新版本呢?360加固保和华为的技术大牛们带来了《AndroidO:动态链接库SO相关新特性》、《深度解读安卓O版本评测报告》等技术分享,活动现场气氛热烈。

Android O动态链接库so新特性

.so作为Android系统中最常见的二进制文件,如何高效地加载和调用它们是每个程序猿必备的技能。所以,对于新平台上出现的新特性和新变化,及时关注和跟进对于自己的开发工作来说当然是非常必要的。

360加固保高级安全研究员吴乐,与参会的小伙伴们分享了Android系统上.so文件的一些新的功能特性。

GNU hashes

动态链接库so在内存映射完成之后,必须对其内部的符号进行动态链接,之后才可以正常调用so中的函数。Android上使用hash表等结构来加速动态链接的过程。Gnu hash就是一种新的hash结构。而Android系统中以前默认使用的是Elf hash机构。研究表明,采用GNU hashes,可以将动态链接库so的动态链接的效率提升50%。

具体用法

       在Android.mk文件中添加:

       LOCAL_LDFLAGS :=-Wl,--hash-style=gnu     #只包含gnuhash

       LOCAL_LDFLAGS :=-Wl,--hash-style=both    #同时包含gnuhash和elf hash,兼容所有系统版本

Correct soname/path handling

Google官方修复的一处加载器的设计错误:加载名称相同、路径不同的so时,只加载第一个,后续so无法正常加载。

错误示例:

void* handle1 = dlopen(“dir/test1/libtest.so\",RTLD_NOW);

print_log(\"handle1is %p\", handle1);

void* handle2 =dlopen(“dir/test2/libtest.so\",RTLD_NOW);

print_log(\"handle2is %p\", handle2);

修复前:http://mmbiz.qpic.cn/mmbiz_png/55iacpcku7tia3ZNMduyXSGX2DkTCaV8hAVrgI1MJIWjXay16kI0n9iauYYTgmxF229ltbrkmNpbaVMzhgksEmszw/0?wx_fmt=png

修复后:http://mmbiz.qpic.cn/mmbiz_png/55iacpcku7tia3ZNMduyXSGX2DkTCaV8hAHxHibFUQu8nKc5OtBLFy2hDqG57suwZqicvzsH6swJ5qPeiaHVNtsd7og/0?wx_fmt=png

Missing Section Headers

Android 7.0开始会对so的section header做完整性检查,凡是抹去了section header的so都无法通过完整性检查,无法正常加载。

导致结果:无法通过对sectionheader的抹除来防止so被逆向。

Invalid ELF header/section headers

Android 8.0开始对so的elf header 和section header中的内容正确性做检查。

导致结果:无法通过对elfheader或section header内部字段的抹除来防止so被逆向。

Enable logging of dlopen/dlsym and libraryloading errors for apps

开发者可以通过这个方式来查看apps中so的加载、符号的查询等流程,方便调试。

具体用法

adb shell setpropdebug.ld.app.com.example.myapp dlsym,dlopen,dlerror

根据相关的特性变化,360加固保也推出了第三方so保护服务,该加固服务能为开发者提供so文件加壳保护、关键函数VMP保护、防内存dump、反调试和防注入等安全保护措施,同时支持Android 8.0在内的所有版本架构,开发者只需重新到官网加固,即可完成AndroidO加固的适配工作。

AGA会员共享:华为云测技术

华为第三方应用专家代表聂俊毅发表了主题演讲《探索华为云测技术》,详细讲解了华为终端开放实验室的云测试环境和流程。

华为终端开放实验室OPENLAB (https://deveco.huawei.com)是安卓绿色联盟(AGA)首个开放的测试平台,实验室拥有2000多部真机,终端型号覆盖近两年华为全机型+谷歌原生手机,APP的测试量峰值可达15万/日,并向开发者共享DevEco云测和远程调测能力。

实验室采用屏蔽柜+xDeviceBox解决方案,支持开发者进行云测和在线真机调测。开发者只需要在线提交APK文件,选择对应的机型,就能对自己所开发的应用进行兼容性和稳定性方面的全方位测试,并输出应用从安装、启动、崩溃、无响应到卸载等十一项详细而全面的应用测试报告数据。


基于国内复杂的安卓生态环境,应用适配主流机型的过程一直是一个长期困扰广大开发者们的难题。如此方便的云测试平台,还在为机型适配苦恼的你是不是已经迫不及待想要加入尝试一番了呢?

国产应用兼容性报告——Android O适配分析

既然本次活动的一个目的是研讨Android O版本的适配兼容性,那么就目前来看,国产应用运行在还处于预览阶段的Android O平台上的表现如何呢?华为终端第三方测试部部长赵虹也在活动现场带来了国内主流千款典型应用兼容性测试数据分析报告,为国内的Android应用开发者们提供了基于海量测试数据的结果反馈,为大家后续的适配开发工作明确了方向和目标。

本测试报告基于Android 8.0 Preview1版本/Nexus 6P进行的兼容性测试,体现国内TOP3000应用的Android 8.0版本兼容性情况,华为发布本报告旨在携手应用开发者共同提升Android8.0版本兼容性表现,提升用户体验,寻找应用设计的改进点。

该测试报告主要体现出以下几点结论:

一、Android 8.0版本国内TOP3000主流应用兼容率为64%,不兼容率为36%,不兼容的应用数量为1024个,兼容性表现堪忧。



二、13个应用分类下的兼容率对比


三、分类应用兼容性详情


四、不兼容问题表现分析

针对所有不兼容问题进行分析,对相同原因产生的问题合并,TOP3不兼容问题主要表现在应用启动失败、崩溃/闪退、安装失败,无响应错误。占比所有不兼容问题的98.2%。


五、不兼容问题根因分析

通过对不兼容问题的根因分析,主要是N-O版本差异应用软件未适配导致。

不兼容问题根因分类

占比

优化建议

ART接口变化导致加壳应用不兼容

78.3%

联合加固厂商尽快完成适配

ART校验方式变更导致应用不兼容

10.1%

规范使用虚拟机接口

linker中新增检查导致应用弹框提示

5%

检查so使用规范

BoringSSL 证书检查严格导致应用安装失败

3%

检查证书使用

Seccomp的使用导致应用不兼容

0.5%

检查安全接口使用

线程优先级变更导致应用不兼容

0.1%

使用前先确认下当前状态

本次测试发现Android8.0版本升级给移动应用带来不小影响,主要集中在启动兼容性方面,建议各应用对8.0版本进行系统的适配验证。后续华为还会基于Android 8.0版本各个应用的稳定性,性能,功耗,安全,接口调用合规发布报告。

来源 360加固保微信


共 0 个关于360加固保携手AGA为开发者分享"AndroidO适配兼容方案"的回复 最后回复于 2017-5-10 17:01

评论

直达楼层

您需要登录后才可以回帖 登录 | 注册

本版积分规则

飞机飞行 超级版主

粉丝:181 关注:13 积分:238352

精华:310 金币:229732 经验:199007

最后登录时间:2024-4-25

小水滴公测勋章 智能摄像机3C 摄像机APP V7.0 智能摄像机AP2C 360AI音箱MAX-M1 公测AI小水滴D903 安全卫士10周年纪念 版主 公测360摄像机标准版 儿童五周年纪念章 360家庭防火墙APP内测 公测360摄像机户外版 360手机f4 公测360摄像机变焦宠物版 公测360家庭防火墙V5S 公测摄像机D916 家庭安防套装 防火墙V5S增强版公测勋章 360粉丝达人勋章 360商城青铜会员

私信 加好友

最新活动

读书日主题活动 |  世界读书日,360AI阅读

排行榜

热度排行 查看排行
今日 本周 本月 全部
    今日 本周 本月 全部

      内容推荐 热门推荐最新主帖

      扫码添加360客服号,涨知识的同时还有超多福利等你哦

      快速回复 返回顶部 返回列表