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

    文章

    3841

    浏览量

    125499
  • JAVA
    +关注

    关注

    19

    文章

    2903

    浏览量

    102867
收藏 人收藏

    评论

    相关推荐

    java后端能转鸿蒙app开发吗

    java后端转鸿蒙app开发好。 还是前端呢
    发表于 01-29 18:15

    RK3568开发平台Android 11强制所有应用横屏展示

    ManifestActivity_screenOrientation, SCREEN_ORIENTATION_UNSPECIFIED); } // End 2、打开frameworks/base/core/java/android/ap
    发表于 12-28 15:20

    Android APP如何进行访问硬件驱动

    本文我们要讲的是在用 i.MX8 平台开发时,Android APP 如何进行访问硬件驱动。
    的头像 发表于 12-04 13:50 401次阅读
    <b class='flag-5'>Android</b> <b class='flag-5'>APP</b>如何进行访问硬件驱动

    基于springboot和vue框架Java

    本文将详细介绍基于Spring Boot和Vue框架进行Java应用开发的实践。首先,将介绍Spring Boot和Vue框架的基本概念及其优点。然后,将详细介绍如何搭建Spring Boot
    的头像 发表于 12-03 15:15 424次阅读

    Android App环境检测分析

    这个原理就是APPAndroidManifest.xml文件中application是否配置了android:debuggable="true",设置true支持
    的头像 发表于 12-01 10:26 393次阅读

    esp8266无法将数据传到APP上怎么解决?

    androidx.appcompat.app.AppCompatActivity; import android.annotation.SuppressLint; import android.os.Bundle
    发表于 10-10 08:06

    如何通过注解来优化我们的Java代码

    Java注解可以说是我们编码过程中最常用的。本篇文章将给大家介绍Java注解的概念、作用以及如何使用注解来提升代码的可读性和灵活性,并介绍如何通过注解来优化我们的Java
    的头像 发表于 09-30 11:39 303次阅读

    Arduino Android APP来控制8个继电器

    电子发烧友网站提供《Arduino Android APP来控制8个继电器.zip》资料免费下载
    发表于 07-10 10:48 1次下载
    Arduino <b class='flag-5'>Android</b> <b class='flag-5'>APP</b>来控制8个继电器

    APP混淆实战(Java/so代码混淆)

    Android App Bundle混淆加密加壳加固保护的解决方案(过Google App上架审核)最全
    的头像 发表于 06-29 15:42 547次阅读
    <b class='flag-5'>APP</b>混淆实战(<b class='flag-5'>Java</b>/so<b class='flag-5'>代码</b>混淆)

    知名开源前端框架uni-app包含热更新代码,谷歌“封杀”

    近日,程序员发帖称自己用开源框架 uni-app 开发的 App 被 Google Play 下架,原因是 uni-app 自带的 SDK 包含违反 Google Play 政策的内容
    的头像 发表于 06-27 16:30 1367次阅读
    知名开源前端<b class='flag-5'>框架</b>uni-<b class='flag-5'>app</b>包含热更新<b class='flag-5'>代码</b>,谷歌“封杀”

    19个经典Java小程序源代码合集

    19个经典Java小程序源代码合集
    发表于 06-07 14:59 0次下载

    Java调用C/C++动态库dll操作串口实例

    大家好,今天分享的是使用C/C++编写一个读取串口数据的代码,然后将其编译成Windows下的动态链接库(.dll文件),然后写一个简单的java demo来调用C/C++接口。
    的头像 发表于 05-23 15:41 638次阅读
    <b class='flag-5'>Java</b>调用C/C++<b class='flag-5'>动态</b>库dll操作串口实例

    DevEco Studio 3.1 Release | 动态共享包开发,编译更快,包更小

    以往使用的JSBundle编译方案,因每个入口page都会打包成一个bundle包,且不支持运行态共享,当修改单个模块文件,需要整包重新编译打包,会导致编译消耗的时间变长,也会导致HAP包的体积变大
    发表于 05-19 11:25

    # 面向万物智联的应用框架的思考和探索(上)

    较大的差距。而且生态培育过程一般都比较漫长。 2)动态能力。Flutter尚不具备可对标JS相关框架动态部署机制,实现应用界面/业务的
    发表于 05-04 10:48

    Android App开发新选择:使用Chaquopy轻松结合Python

    当今的程式开发中,Python已经成为了一个非常流行的语言,因为它可以快速编写出高效的代码。然而,如果要将Python结合到Android App(应用程式)中,需要进行一些复杂的设置和调整
    的头像 发表于 04-25 20:29 1037次阅读
    <b class='flag-5'>Android</b> <b class='flag-5'>App</b>开发新选择:使用Chaquopy轻松结合Python