鸿蒙HAR混淆
·
参考:
# 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
# 删除编译生成的声明文件中的JsDoc注释
-remove-comments
# 允许在源码中使用 // @KeepAsConsumer 和 // @KeepSymbol 注解
-use-keep-in-source
# 允许将源码中的注解白名单,同步应用到编译生成的对外 .d.ts 声明文件中 ==> 源码里的白名单规则,能不能对最终生成的 .d.ts 文件生效
-keep-dts
# 这个只能保留文件的名称,文件内部的方法名和字段名称还是被混淆的
# 不支持路径写法,只支持名称或名称通配符
-keep-file-name
./src/main/ets/xxxSDK.ets
./src/main/ets/pay/xxxPaySDK.ets
./src/main/ets/iface/IUserData
./src/main/ets/pay/listener/IPayListener
#对外导出
./Index.ets
#-keep
# 保留该文件夹内所有类名、属性名等,需与keep-file-name同时配置
# 该方法支持通配,例如./src/main/ets/iface/
# 但是该方法会导致所有关联引用的文件全部被 keep (keep传递),所以此处不用,使用 // @KeepAsConsumer 注解来替代
# @KeepSymbol 只管“保护自己”,而 @KeepAsConsumer 还能“传给别人”(自动生成到 obfuscation.txt 中并传给下游)
# @KeepAsConsumer 会自动获取需要保护的名称注入到 obfuscation.txt 文件夹
# 需要保留有效的变量,不然json序列化中字段会变成 f5
# for getRegisterRequestInfo()
-keep-property-name
thirdDeviceId
systemVersion
appName
appVersion
deviceModel
manufacturer
-keep-global-name
xxxSDK
xxxPaySDK
har 有个不一样的就是 不使用 -keep ,因为 keep 会传递,导致引用到的文件都被keep,最终效果就是几乎所有的文件都keep 住。
所以使用 @KeepAsConsumer 来指定保护的文件。
但是这个只能保护文件内部的内容,所以还需要配合 -keep-file-name
使用@KeepAsConsumer 需要先打开
-use-keep-in-source
-keep-dts
更多推荐

所有评论(0)