在ts文件中写入下列hook程序不生效:
import fs from '@ohos.file.fs';
import util from '@ohos.util';
export function aoptest() {
util.Aspect.addBefore(fs, 'writeSync', false, (target, arg) => {
console.info("aspect");
});
}
在ts文件中写入下列hook程序不生效:
import fs from '@ohos.file.fs';
import util from '@ohos.util';
export function aoptest() {
util.Aspect.addBefore(fs, 'writeSync', false, (target, arg) => {
console.info("aspect");
});
}
fs是namespace,util.Aspect不支持这种方式,可能会导致JScrash。系统API namespace下的方法取决于系统API的实现,参考接口不限制对系统提供的类方法进行插桩。只要类和方法在运行时是实际存在的对象,并且方法的属性描述符的writable字段为true,就可以使用对应接口进行插桩和替换。
https://developer.huawei.com/consumer/cn/doc/best-practices-V5/bpta-application-aspect-programming-design-V5