应用加密
====

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/27/v3/8KtEczbIShGx9u2GeUy3Cg/caution_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260709T132357Z&HW-CC-Expire=86400&HW-CC-Sign=4F2922D907234398B61A924C1A1A4643F11514E5BC648D470E6C96FF30C7F0BA)

应用加密特性可以有效提高应用代码文件逆向分析的难度，但应用代码防逆向是一个持续攻防对抗的过程，如对代码文件保护有更高的要求，需要结合其他安全加固措施，进一步提高逆向分析应用的难度。

#### 能力简介

为了保护应用代码安全，保护开发者的核心资产，HarmonyOS提供了端到端的应用代码保护机制，该机制以系统安全为基础，构建内核级应用生命周期内的代码安全保护能力。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/8f/v3/xUR1DdWZQ6O4IdgljMPR6w/zh-cn_image_0000002664208183.png?HW-CC-KV=V1&HW-CC-Date=20260709T132357Z&HW-CC-Expire=86400&HW-CC-Sign=40CFF2B9EFDDE1BC2BA3DC582FDF088632DAFD8E969642130904BB0C2B8394D3)

开发者向应用市场提交上架申请，上传应用包后可[选择是否加密](https://developer.huawei.com/consumer/cn/doc/app/agc-help-release-app-choose-pkg-0000002278981434)。

选择加密的应用，在经过应用市场审核后，应用市场会对上架应用做代码加密。应用在设备上安装时，安装文件落盘后仍是处于受保护状态，有效的保护应用程序；当应用程序启动时按需解密。

系统级应用加密具有如下优点：

*   内核级的安全保护，应用端到端加密，应用启动后再按需解密执行。
    
*   系统级的解密优化，相对于传统加壳等加固方式对性能的影响更小。
    

#### 支持的国家/地区

中国境内（香港特别行政区、澳门特别行政区、中国台湾除外）

#### 加密影响

1.  加密后的应用在程序启动和运行过程中可能会小幅度增加性能开销。
    
2.  加密后的应用相比于不加密的应用体积更大，可能会小幅度增加下载和安装时间。
    

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/84/v3/PiSKj9a6RPa0pyzysEIg7A/caution_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260709T132357Z&HW-CC-Expire=86400&HW-CC-Sign=B295A158687A522D4FD7D352ACC1C9A1B6815DEBE7AE81CBDE148C5C285A5350)

应用加密后的影响已经进行过系统级的优化，在部分优化后的版本上应用加密前后的性能与包体大小几乎无变化。

#### 保护效果

应用加密保护的对象为应用包体中的关键资产（例如.abc文件），原始的代码文件可能被反编译，受保护后的代码文件安全性会有很大地提升，提高逆向分析的难度。

#### 使用步骤

应用加密特性在应用上架时加密，应用运行时按需解密。安全增强的同时，确保开发者、消费者无感的安全体验，避免应用开发者适配工作，保障用户无感的纯净安全体验。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/2b/v3/zYDCR3WRSWazHca-0Nv8DQ/caution_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260709T132357Z&HW-CC-Expire=86400&HW-CC-Sign=CC7C596D4917A5B586EB809BE6A55DA203C3421CFD9CCA463C77A6E4B6B5F68D)

当前ArkTS卡片服务对应的widgets.abc文件暂不支持加密服务。

应用加密在不同阶段中的步骤如下：

*   开发阶段：开发者无感知。
    
*   上架阶段：开发者选取待发布的软件包并上传后，可选择设置分发的软件包是否加密，选择加密后即被加密。
    
    操作步骤可参考：发布HarmonyOS应用-[选取待发布的软件包](https://developer.huawei.com/consumer/cn/doc/app/agc-help-release-app-choose-pkg-0000002278981434)。
    
*   分发阶段：应用将被应用市场加密分发，防止安装包被获取后逆向分析。
    
*   安装阶段：安装阶段仍有保护。
    
*   运行阶段：应用运行时按需解密应用代码。
    

#### 常见问题

*   **Q1：使用官方提供的代码加密能力后，应用代码是否需要其它的代码保护措施吗？**
    
    A1：应用加密特性可以有效提高应用代码文件逆向分析的难度，但应用代码防逆向是一个持续攻防对抗的过程，如对代码文件保护有更高的要求，需要结合其他安全加固措施，进一步提高逆向分析应用的难度。比如使能混淆能力、使能三方安全加固能力等。
    
*   **Q2：如果不使用代码加密能力，还能采取什么手段来保护应用代码资产？**
    
    A2：使能混淆能力、使能三方安全加固能力等，请参考[应用资产保护设计-保护应用代码场景](https://developer.huawei.com/consumer/cn/doc/best-practices-V5/bpta-app-asset-protection-design-V5#section24320461547)。
    
*   **Q3：代码加密会对应用包产生什么影响？**
    
    A3：加密后的应用在程序启动和运行过程中可能会小幅度增加性能开销；加密后的应用相比于不加密的应用体积更大，可能会小幅度增加下载和安装时间。