鸿蒙ArkTs项目配置 —— obfuscation-rules.txt

举报
福州司马懿 发表于 2024/09/29 15:04:41 2024/09/29
【摘要】 obfuscation-rules.txt 文件在鸿蒙ArkTS项目中用于定义代码混淆的规则。这些规则指定了哪些代码元素(如属性名、顶层作用域名称、文件名等)应该被混淆,以及哪些应该被保留不被混淆。通过合理配置这些规则,可以在保护代码不被轻易反编译的同时,避免混淆导致的应用运行时错误。其默认配置如下# Define project specific obfuscation rules her...

obfuscation-rules.txt 文件在鸿蒙ArkTS项目中用于定义代码混淆的规则。这些规则指定了哪些代码元素(如属性名、顶层作用域名称、文件名等)应该被混淆,以及哪些应该被保留不被混淆。通过合理配置这些规则,可以在保护代码不被轻易反编译的同时,避免混淆导致的应用运行时错误。

其默认配置如下

# Define project specific obfuscation rules here.
# You can include the obfuscation configuration files in the current module's build-profile.json5.
#
# For more details, see
#   https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/source-obfuscation-V5

# Obfuscation options:
# -disable-obfuscation: disable all obfuscations
# -enable-property-obfuscation: obfuscate the property names
# -enable-toplevel-obfuscation: obfuscate the names in the global scope
# -compact: remove unnecessary blank spaces and all line feeds
# -remove-log: remove all console.* statements
# -print-namecache: print the name cache that contains the mapping from the old names to new names
# -apply-namecache: reuse the given cache file

# Keep options:
# -keep-property-name: specifies property names that you want to keep
# -keep-global-name: specifies names that you want to keep in the global scope

-enable-property-obfuscation
-enable-toplevel-obfuscation
-enable-filename-obfuscation
-enable-export-obfuscation

配置方法

  1. 基础配置

    obfuscation-rules.txt文件中,你可以直接写入混淆选项和保留选项。这些选项会指导编译器如何对代码进行混淆。

    # 禁用所有混淆
    -disable-obfuscation
    
    # 开启属性名混淆
    -enable-property-obfuscation
    
    # 开启顶层作用域名称混淆
    -enable-toplevel-obfuscation
    
    # 开启文件名混淆
    -enable-filename-obfuscation
    
    # 开启导出名称混淆
    -enable-export-obfuscation
    

    注意:这些选项默认可能已经在obfuscation-rules.txt中启用,具体取决于你的开发环境和项目配置。

  2. 保留选项

    保留选项用于指定哪些代码元素不应该被混淆。这对于保持应用功能正常非常关键。

    # 保留特定属性名
    -keep-property-name age firstName
    
    # 保留全局名称
    -keep-global-name MyClass MyFunction
    
    # 保留文件名
    -keep-file-name index entry
    
    # 保留.d.ts文件中的名称
    -keep-dts ./path/to/file.d.ts
    

    这些保留选项可以确保即使开启了混淆,指定的代码元素也会保持原样,不会被混淆。

  3. 配置文件引用

    build-profile.json5文件中,你需要引用obfuscation-rules.txt文件,以便编译器能够识别并使用这些混淆规则。

    {
      "arkOptions": {
        "obfuscation": {
          "ruleOptions": {
            "enable": true,
            "files": ["./obfuscation-rules.txt"]
          }
        }
      }
    }
    

    如果你有多个混淆规则文件,可以将它们全部添加到files数组中。

注意事项

  • 性能影响:代码混淆会增加编译时间和运行时的一些开销,因为编译器需要处理额外的混淆逻辑。
  • 调试难度:开启混淆后,代码的错误栈跟踪将不再直接反映源码中的名称,这可能会增加调试的难度。
  • 兼容性:确保你的应用或库与鸿蒙系统的版本兼容,因为不同版本的鸿蒙系统可能对混淆的支持有所不同。

通过以上步骤,你可以在鸿蒙ArkTS项目中配置和使用obfuscation-rules.txt文件来定义代码混淆规则,从而保护你的代码不被轻易反编译。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。