HarmonyOS 鸿蒙Next本地系统完整性检测
HarmonyOS 鸿蒙Next本地系统完整性检测 api地址:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/devicesecurity-sysintegrity-check-onlocal
问题1:
deveco studio起的本地模拟器,是否应该按预期返回 emulator:非真实设备,当前返回的为错误码 801,错误信息为 API is not support
问题2:
使用此接口在“开发与服务”-“云调试”中设备进行验证,在系统版本5.1.0,api为18 以上的设备中,会出现 attack:设备被攻击和 unlock:设备被解锁。两种类型的结果
问题3:
本地系统完整性检测返回类型:
- jailbreak:设备被越狱。
- emulator:非真实设备。
- attack:设备被攻击。
- unlock:设备被解锁。
系统完整性检测(https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/devicesecurity-sysintegrity-check-V5)返回类型为:
- jailbreak:设备被越狱。
- emulator:模拟器。
- attack:设备被攻击。
那么此两种检测手段返回类型为何不同,从结果类型来看,本地检测比另外一种能力更强?
更多关于HarmonyOS 鸿蒙Next本地系统完整性检测的实战教程也可以访问 https://www.itying.com/category-93-b0.html
开发者您好,“系统完整性检测”为过时的文档,已不再维护,推荐您使用“本地系统完整性检测”。

更多关于HarmonyOS 鸿蒙Next本地系统完整性检测的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
问题1:
DevEco Studio 本地模拟器返回:
801 - API is not support
这个基本属于正常现象。
因为:
本地系统完整性检测很多能力依赖:
- 真机 TEE
- 安全芯片
- 可信执行环境
- 系统安全服务
而模拟器本身并不具备这些安全硬件能力。
所以:
并不是返回:
emulator
而是直接:
API not support
可以理解为:
“当前环境不支持完整性检测能力”。
目前很多安全类 API:
- 完整性检测
- 密钥认证
- 安全组件
- Device Attestation
模拟器都不支持。
⸻
问题2:
云调试设备返回:
attack
unlock
这个也不一定真的是“设备被攻击”。
云调试设备很多属于:
- 工程机
- 调试机
- 解锁设备
- 自动化测试设备
系统状态往往不是“消费者正式态”。
例如:
unlock
通常表示:
Bootloader / 系统状态非锁定。
而:
attack
很多时候是:
系统检测到:
- 调试环境
- Hook
- Root痕迹
- 非正式系统态
- 自动化框架
所以直接归类为风险环境。
云调试设备经常会出现这种情况。
不要把它等同于:
“真的被黑客攻击”。
⸻
问题3:
两个接口返回类型不同,
本质是:
它们不是同一套能力。
⸻
“系统完整性检测”
偏:
远程 / 云侧 / 基础完整性校验。
返回维度较少:
jailbreak
emulator
attack
⸻
“本地系统完整性检测”
偏:
设备本地安全服务。
能获取更多本地状态。
所以新增了:
unlock
这种更细粒度结果。
⸻
可以理解为:
本地检测:
更接近:
“设备实时安全状态”。
而旧版系统完整性检测:
更像:
“设备基础可信校验”。
⸻
所以从能力上来说:
确实:
本地系统完整性检测更细。
但并不代表:
“完全替代”。
而是:
两者定位不同。
⸻
一句话总结:
1、模拟器返回 801 基本正常,因为安全完整性能力依赖真机硬件;
2、云调试设备出现 attack/unlock 很常见,因为很多云设备本身就是调试态;
3、本地系统完整性检测比旧版系统完整性检测返回维度更细,属于更强的本地安全状态检测能力。
先说问题一:DevEco 本地模拟器是软件模拟环境,无硬件安全模块,所以直接返回 801就是说接口不支持。
再说问题二:
unlock:设备 Bootloader 已解锁(可刷第三方系统),本地检测会报这个
attack:系统分区被篡改、root、植入恶意模块等,在线 / 本地都可能报
5.1.0(API 18)对解锁 / 篡改的检测更严格,所以云调试真机更容易看到这两个标签
最后关于问题三:你提到的两种检测返回类型存在差异,主要原因是API版本和能力集的不同,并非能力更强之分。本地多 unlock(设备状态),在线无 unlock(安全策略);不是本地更强,是适用场景不同。
本地:仅用于无法联网场景,不建议作为唯一安全依据;
在线:推荐用于高风险业务(支付、登录、发券)
系统完整性检测-安全检测-Device Security Kit(设备安全服务)-安全-系统 - 华为HarmonyOS开发者
找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17
问题1:检查下启动emulator Version(API)版本是多少。排查下。
问题2:云调试中的云手机解锁和被攻击属于正常返回。
问题3:V5这个API链接是12版本的文档,最新文档返回类型已增加为4种。
鸿蒙Next本地系统完整性检测通过@ohos.security.systemIntegrity API实现,可调用verifyIntegrity()方法对系统分区签名及哈希值校验。需声明ohos.permission.SYSTEM_INTEGRITY权限,并在Stage模型下使用,返回IntegrityResult枚举结果。
问题1:本地模拟器是 x86 架构的虚拟环境,不具备真实设备上的 TEE 等安全硬件支持,因此无法进行系统完整性校验,返回错误码 801(API not support)属于预期行为。
问题2:云调试环境中的设备通常已解锁 Bootloader 或存在提权调试,方便开发调试,所以完整性检测会返回 attack 和 unlock。这并非设备被恶意攻击,而是该环境本身的特征。
问题3:本地检测直接查询设备安全状态,可以获取解锁等更多本地属性;而服务端检测(sysintegrity-check)基于 TEE 远程证明,仅上报越狱、模拟器、攻击状态,不包含解锁信息。两者检测机制不同,本地检测覆盖信息更全,但并非能力“更强”,只是适用场景不同。

