0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Java代码加密支持Android App Bundle动态化框架

几维安全 来源:几维安全 作者:几维安全 2020-07-29 16:13 次阅读

传统App加壳技术无法应用在App Bundle模式生成的数据包之上。然而,几维安全推出的Java2C加固方案完美支持Android App Bundle动态化框架,守护企业的核心代码和数据安全。

App 瘦身新姿势:Android App Bundle

Android App Bundle是借助Split Apk完成动态加载,使用AAB动态下发方式,可以大幅度减少应用体积,加快用户安装速度。使用Android的新应用发布格式和Google Play的工台交付上传应用,生成和提供针对每个用户的设备进行优化的APK。只须在 Android Studio 中构建一个应用 (App Bundle),就可以将应用所需的全部内容 (适用于所有设备) 都涵盖在内:所有语言、所有设备屏幕大小、所有硬件架构。它本身并不支持动态化,只是动态化的一个载体文件,真正实现逻辑并不是它。

1.Split APKs

多APK支持以下类型屏幕密度ABI,使用新的拆分机制,构建同一个应用程序的hdpi版本和mdpi版本,能够共享很多的任务 (如 javac,dx,proguard)。此外,它会被认为是一个单一的variant,并且同一个测试程序将会被用来测试每个多APK。

2.Dynamic Feature Module

这个概念感觉像是游戏里面到某个新地图才开始下载那样,不是一来就把所有资源都下载下来。这样显得apk更小了,而且就像游戏逻辑一样,高级副本的地图新手没机会进入,就不必要下载这部分内容,有的用户可能很久都不会用到部分功能,就可以放在Dynamic Feature Module,等要用的时候再下载。

Android App加固新变化

传统加固方式

其对象是一个Android的安装包,也就是一个APK文件,APK文件里面包含了基本所有的内容,一般对其进行加固,必须保证APK里面的DEX和支持的架构都放到包里面,然后对其进行加固处理,当然也有一些热更新框架,但是加固对于这些热更新的框架支持性并不好。

APK包里面的文件结构:

而Android App Bundle动态化框架,是按需要来进行更新代码模块和资源文件的,这就导致传统加固并不合适,而且Google要求上传的Google Play 商店的时候上传打包好的AppBundle,就是以AAB格式的结尾的文件,其实也是一个压缩包,具体的文件结构基本如图:

base代表应用程序的基本模块,feature1 和feature2是动态模块,当用户安装包的时候,Google Play会生成一个基本包,将包安装到设备上,然后运行到需要某个功能的时候才会下载动态模块,所以传统的加固是无法对其进行加固处理的。

几维安全Java2c加固方案

直接对AAB文件进行加密处理,将里面的Dex进行加密转换成加密后的SO,这样的加固方案天然支持Android App Bundle的动态框架。经过Java2C加固之后输出的也是一个AAB文件,上传Google之后完全不影响其分包下发策略。

几维安全Java2C是最新一代Android-Dex保护方案,之前针对Android的应用加密已经经历了4代更迭(第一代动态加载,第二代整体加密解密,第三代类方法抽取,第四代自定义DVM运行时),然而这4代更迭并未很好的解决应用加密后的安全性、兼容性等问题,根本原因是这4代技术底层基于运行时拦截等手段实现Android代码防护,而碎片化、开源化的Android生态让这类技术不能从根本上解决安全问题。而几维安全Java2C技术属于代码静态加密,没有运行时劫持,可配合安全编译器工作,达到高安全性、高兼容性的要求。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    3947

    浏览量

    128355
  • JAVA
    +关注

    关注

    19

    文章

    2979

    浏览量

    105563
收藏 人收藏

    相关推荐

    基于Django89的web框架代码

    基于Django89的web框架代码,超详细
    发表于 02-10 15:38 0次下载

    Spire.XLS for Android via Java组件说明

    无需安装 Microsoft Office 或 Microsoft Excel。 Spire.XLS for Android via Java 支持多种 Excel 文件格式,包括 Excel
    的头像 发表于 01-24 12:16 161次阅读
    Spire.XLS for <b class='flag-5'>Android</b> via <b class='flag-5'>Java</b>组件说明

    SSM框架的源码解析与理解

    MVC模式,使得开发Web应用程序变得更加高效和简单。 1. Spring框架 基本功能: Spring是一个开源的Java平台,它提供了全面的基础设施支持,以便开发Java应用程序。
    的头像 发表于 12-17 09:20 465次阅读

    SSM框架Java开发中的应用 如何使用SSM进行web开发

    SSM框架,即Spring、SpringMVC和MyBatis的整合,是Java Web开发中常用的技术栈。它通过分层架构,实现了视图、控制、业务逻辑和数据访问的分离,提高了代码的可维护性和可扩展性
    的头像 发表于 12-16 17:28 767次阅读

    基于瑞萨FPB-RA4E2智能床头灯项目——4 APP制作

    App Inventor是一款由Google开发的在线移动应用开发平台,主要用于开发Android应用程序。它通过可视编程方式,允许用户使用拖放和连接编程块来创建应用程序,无需编写复杂代码
    发表于 11-29 22:38

    安卓APP开发中,如何使用加密芯片?

    加密芯片是一种专门设计用于保护信息安全的硬件设备,它通过内置的加密算法对数据进行加密和解密,以防止敏感数据被窃取或篡改。如下图HD-RK3568-IOT工控板,搭载ATSHA204A加密
    的头像 发表于 10-31 17:43 573次阅读
    安卓<b class='flag-5'>APP</b>开发中,如何使用<b class='flag-5'>加密</b>芯片?

    揭秘动态跨端框架在鸿蒙系统下的高性能解决方案

    作者:京东科技 胡大海 前言 动态跨端框架 (后文统称“ 动态” ) 是一个由京东金融大前端团队全自主研发的,一份
    的头像 发表于 10-08 13:46 1069次阅读
    揭秘<b class='flag-5'>动态</b><b class='flag-5'>化</b>跨端<b class='flag-5'>框架</b>在鸿蒙系统下的高性能解决方案

    史无前例,移植V8虚拟机到纯血鸿蒙系统

    作者:京东科技 于飞跃 一、背景 如图所示,Roma框架是我们自主研发的动态跨平台解决方案,已支持iOS,android,web三端。目前
    的头像 发表于 09-18 10:28 1360次阅读
    史无前例,移植V8虚拟机到纯血鸿蒙系统

    java反编译的代码可以修改么

    Java反编译是一种将编译后的Java字节码(.class文件)转换回源代码的过程。反编译后的代码可以进行修改,但是需要注意,反编译代码的质
    的头像 发表于 09-02 11:00 923次阅读

    请问Matter Android APP是否支持连接市面上的Matter设备?

    各位大佬们,请教下我基于matter开源的Android App,是否可以连接市面上其他的matter协议设备并且进行控制呢?如果不可以,是需要其他认证码?
    发表于 07-24 07:25

    如何在Android 10设备上通过App控制GPIO

    本文档提供了在 Android 10 设备上通过应用程序(App)控制通用输入输出(GPIO)的详细指南。这涵盖了从创建 gpio驱动到App 配置 以及 SELinux 策略以允许特定访问的所有必要步骤。
    的头像 发表于 07-22 17:59 1479次阅读

    云安全服务加密存储代码怎么查

    云安全服务加密存储代码的查询与实现是一个复杂的过程,涉及到多个方面,包括数据加密、密钥管理、访问控制等。 1. 引言 随着云计算的快速发展,越来越多的企业和个人将数据存储在云端。然而,数据安全问题也
    的头像 发表于 07-02 09:28 466次阅读

    鸿蒙ArkUI-X跨语言调用说明:平台差异化【Android、ios动态

    ArkUI-X支持动态,使用者可以根据自己需要动态发布跨平台内容,从而使跨平台部分和宿主应用进行解耦。
    的头像 发表于 05-23 14:38 1084次阅读
    鸿蒙ArkUI-X跨语言调用说明:平台差异化【<b class='flag-5'>Android</b>、ios<b class='flag-5'>动态</b><b class='flag-5'>化</b>】

    SBSFU boot加密过的app大概需要的时间是什么级别的啊?

    ST 的SBSFU boot 加密过的app 大概需要的时间是什么级别的啊? 如果主频40 M, 代码100K .
    发表于 04-19 07:38

    鸿蒙OS开发实例:【HarmonyHttpClient】网络框架

    鸿蒙上使用的Http网络框架,里面包含纯Java实现的HttpNet,类似okhttp使用,支持同步和异步两种请求方式;还有鸿蒙版retrofit,和Android版Retrofit相
    的头像 发表于 04-12 16:58 960次阅读
    鸿蒙OS开发实例:【HarmonyHttpClient】网络<b class='flag-5'>框架</b>