# abc-aop2 **Repository Path**: vqshr/abc-aop2 ## Basic Information - **Project Name**: abc-aop2 - **Description**: abc-aop2 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2026-02-02 - **Last Updated**: 2026-03-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AbcKit TS AbcKit TS 是面向方舟字节码的专业分析与修改工具库,基于 TypeScript 构建,依托高性能 Abckit C++ 底层驱动,为开发者提供便捷、强大的方舟字节码操作能力。 ## 特性 - 支持方舟字节码全维度分析 - 底层对接原生 Abckit C++ 核心库,性能强劲 - 支持字节码解析、遍历与生成 - 提供完备的 TS 风格 API,开箱即用 - 完善的类型定义,TypeScript 全链路支持 - 支持方法定义点、调用点和回调函数的定位能力 - 支持前置、后置、调用点替换、环绕和自由插桩插桩类型 ## 依赖系统版本 SDK: API 15 Release及以上 DevEco IDE: 6.1.0 Release及以上版本 ## 快速开始 [快速上手](doc/mini_cookbook.md) ## 约束与限制 在使用本字节码插桩API之前,请务必了解以下约束条件,以避免在集成或运行过程中遇到意外问题。 1. 环境依赖 + 依赖Deveco Studio 6.1.0及以上版本,低版本hvigor缺少配套的注册接口。 + 受底层abckit编译环境限制,目前不支持mac x64环境。 2. 输入与输出限制 + 底层使用[Abckit C++库](https://gitcode.com/openharmony/arkcompiler_runtime_core/tree/master/libabckit),错误的使用会导致程序直接中断退出,并输出断言日志信息。 3. 插桩能力边界 + 代码范围,插桩能力主要作用于方法体内部的指令。目前不支持对类签名、字段定义、装饰器、注解等元数据结构进行修改;当前仅支持ArkTS 1.1版本,不支持静态类型分析。 + 当前版本不支持类、方法、属性创建能力,如需要使用函数指针或实现,需要自行预定义好,并被程序引用,确保字节码中包含该字节码。 + 当前版本对控制语句编辑支持较弱,后续会陆续完善。 4. 已知问题与规避 + hvigor插件开发存在跨语言调用的问题,会导致IDE(Java)会针对某些内存操作报出异常,导致插桩成功但是编译失败【错误信息:Process finished with exit code -1073741819 (0xC0000005)】,建议在子线程中执行。 参考FAQ:[使用子线程调用插桩代码](doc/FAQ.md#使用子线程调用插桩代码) ## API参考 [查看详情](doc/reference.md) ## 实现原理说明 [查看详情](doc/implementation_description.md) ## 场景化实现参考 [查看详情](doc/scenes.md) ## FAQ [查看详情](doc/FAQ.md) ## 贡献代码 使用过程中发现任何问题都可以提 [Issue](https://gitcode.com/OpenHarmony-ApplicationTPC/aspect/issues),当然,也非常欢迎发 [PullRequest](https://gitcode.com/OpenHarmony-ApplicationTPC/aspect/pulls) 共建。 ## 开源协议 本项目基于 [Apache License 2.0](https://gitcode.com/OpenHarmony-ApplicationTPC/aspect/blob/master/LICENSE),请自由地享受和参与开源。 ## 免责申明 本工具不支持混淆代码插桩,请在使用前关闭[源码混淆](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/arkts-arkguard)功能。