构建闭源模块,通过对代码进行编译混淆,生成闭源HAP

通过对代码进行编译混淆,生成闭源HAP。在不共享源码的情况下,通过闭源HAR对外提供组件、资源等,可以实现多个模块或者多个工程共享组件、资源等。


HarmonyOS
2024-05-28 22:17:42
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
南风春和

1.配置文件:

{ 
  "apiType": "stageMode", 
"buildOption": { 
}, 
  "buildOptionSet": [ 
  { 
    "name": "release", 
  "arkOptions": { 
    // 闭源har相关参数 
    "obfuscation": { 
      "ruleOptions": { 
        // true表示进行混淆,false表示不进行混淆。默认为true 
        "enable": true, 
        // 混淆规则文件 
        "files": [ 
        "./obfuscation-rules.txt" 
        ] 
      } 
    } 
  } 
  }, 
  ], 
  "targets": [ 
  { 
    "name": "default" 
  }, 
  { 
    "name": "ohosTest", 
  } 
  ] 
}

2.混淆规则文件:

# For more details, see 
#   https://gitee.com/openharmony/arkcompiler_ets_frontend/blob/master/arkguard/README.md 
 
# Obfuscation options: 
# -disable-obfuscation: 禁用所有混淆 
# -enable-property-obfuscation: 混淆属性名称 
# -enable-toplevel-obfuscation: 对全局范围内的名称进行混淆 
# -compact: 删除不必要的空格和所有换行符 
# -remove-log:删除所有 Console语句 
# -print-namecache: 打印包含从旧名称到新名称的映射的名称缓存 
# -apply-namecache: 重用给定的缓存文件 
 
# Keep options: 
# -keep-property-name: 指定要保留的属性名称 
# -keep-global-name: 指定要保留在全局作用域中的名称 
  -enable-property-obfuscation # 开启属性混淆 ArkUI组件中的属性名不会被混淆;系统API列表中的属性名不会被混淆;字符串字面量属性名不会被混淆;被import/export直接导入或导出的类或对象的属性名不会被混淆 
  -enable-toplevel-obfuscation # 开启 toplevel 混淆 
  -enable-filename-obfuscation # 开启文件/文件夹名称混淆 
  -remove-log    # 删除所有 Console语句 
  -compact # 删除不必要的空格和所有换行符

3.将buildmode设置为realease。

 4.选中HAR模块的根目录,点击

Build > Make Module '<module-name>'启动构建。

适配的版本信息

IDE:DevEco Studio 4.1.3.500

SDK:HarmoneyOS NEXT Developer Preview1

分享
微博
QQ
微信
回复
2024-05-29 23:30:14
相关问题
HarmonyOS 是否支持Bugly
86浏览 • 1回复 待解决
打包怎么代码进行混淆
6602浏览 • 1回复 待解决
如何在ArkTS中使用
583浏览 • 1回复 待解决
class使用包方式初始化 默认值丢失
1915浏览 • 1回复 待解决
如何编译产物进行编译
669浏览 • 1回复 待解决
HarmonyOS共享模块HAR的代码混淆问题
612浏览 • 1回复 待解决
如何使用脚本编译生成HAP文件
7781浏览 • 1回复 待解决
nginx tcp转发 怎么获取IP?
2899浏览 • 1回复 待解决
可以支持包吗?
249浏览 • 1回复 待解决
lazyforeach替换数据解决方案
723浏览 • 1回复 待解决
Linux软件问题有懂的吗?
2123浏览 • 1回复 待解决
问下yum的问题有懂的吗?
2190浏览 • 1回复 待解决
编译har,如何混淆混淆如何使用
1098浏览 • 1回复 待解决