构建闭源模块,通过对代码进行编译混淆,生成闭源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", 
  } 
  ] 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.

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 # 删除不必要的空格和所有换行符
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.

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
766浏览 • 1回复 待解决
HarmonyOS 关于包的问题
979浏览 • 1回复 待解决
打包怎么代码进行混淆
7369浏览 • 1回复 待解决
如何在ArkTS中使用
1551浏览 • 1回复 待解决
HarmonyOS共享模块HAR的代码混淆问题
1445浏览 • 1回复 待解决
如何使用脚本编译生成HAP文件
8837浏览 • 1回复 待解决
如何编译产物进行编译
1822浏览 • 1回复 待解决
可以支持包吗?
820浏览 • 1回复 待解决
nginx tcp转发 怎么获取IP?
3488浏览 • 1回复 待解决
lazyforeach替换数据解决方案
1743浏览 • 1回复 待解决
Linux软件问题有懂的吗?
2857浏览 • 1回复 待解决
ArkUI的触摸事件分为哪几类输入
223浏览 • 0回复 待解决