2026-10-13 鸿蒙PC 【鸿蒙PC】二进制签名入门:证书从哪来、能要什么权限、该用哪一个 鸿蒙 PC 上不签名的二进制根本跑不起来,但官方文档一上来就摆出三种签名,反而让人卡在第一步:我到底该用哪种?这篇把三种签名的证书来源、能声明的权限、以及在 HiShell 里跑和在自己应用里拉起两种场景下的对应关系,整理成几张能直接查的表。不涉及原理,只回答该用哪个、要做什么。 Continue reading...
2026-10-13 鸿蒙PC 【鸿蒙PC】二进制签名解析:自签名、调试证书、二进制证书到底差在哪 鸿蒙 PC 上不给二进制签名就跑不起来,但官方文档把「自签名 / 调试证书签名 / 二进制证书签名」并列成三张对照表之后,反而更难看清它们到底是不是三种不同的东西。本文从开源实现里读回来一份答案:三种签名共用同一个 .codesign 段、同一个 fs-verity 描述符结构,区别只在 signature 字段里填什么、以及内核对它的信任等级。权限、分发范围、设备要求上的全部差异,都是从这一个字段推出来的。 Continue reading...
2026-10-13 软件 把 BadgerDB 移植到仓颉(四):怎样测才算数 从 Go 移植 BadgerDB 到仓颉(四) 四个方法学缺陷、Go 侧三个陷阱,与一套可核验的流程 Cangjie · 基准测试 · 方法论 这是系列最后一篇。第三篇讲了三个被推翻的结论 , 本篇追问:它们为什么会错,以及怎样才能不再错。 Continue reading...
2026-10-12 软件 把 BadgerDB 移植到仓颉(三):重跑基准,三个结论翻了 从 Go 移植 BadgerDB 到仓颉(三) 重跑一遍基准,三个结论都翻了 Cangjie · 基准测试 · badger-cj 这是系列第三篇。前两篇讲实现 与优化 , 本篇讲复核:把积累半年的基准数据重跑一遍之后,有三条结论被推翻, 而且方向都是反的。 Continue reading...
2026-10-11 软件 把 BadgerDB 移植到仓颉(二):十次优化与一次误判 从 Go 移植 BadgerDB 到仓颉(二) 十次优化,和一次「我以为是编译器 bug」的乌龙 Cangjie · 性能优化 · badger-cj 这是系列第二篇。第一篇讲无锁跳表的实现 , 本篇讲怎么把它调快,以及一个把我引向错误方向的排查。 Continue reading...
2026-10-10 软件 把 BadgerDB 移植到仓颉(一):没有裸指针怎么做无锁跳表 从 Go 移植 BadgerDB 到仓颉(一) 仓颉没有裸指针,于是我把节点指针换成了数组下标 Cangjie · LSM-Tree · badger-cj · 移植 这是系列第一篇,讲怎么把它写出来:语言差异怎么绕、以及怎么用。 后续三篇分别讲优化与误判、基准复核、以及怎样测才算数。 Continue reading...
2026-09-22 鸿蒙PC 【鸿蒙PC】二进制签名实战:三类签名、沙箱权限矩阵,以及一张调试证书的坑 鸿蒙 PC 上二进制必须合法签名才能加载运行。本文把官方给出的三类签名规则、应用拉起二进制的沙箱权限矩阵整理成表,再补上我们在 MateBook Pro(OpenHarmony-7.0.0.105)上实测出的五种组合结果——包括一张 DevEco 自动签名调试证书被内核 fs-verity 拒掉的完整证据链,以及换成自申请调试证书后立刻能跑的对照实验。结论已确认:IDE 自动签名生成的调试证书不能用于二进制签名。 Continue reading...
2026-09-09 软件 仓颉服务 - 忆时塔 OOM 追凶记 一次横跨六个仓颉自研库的排查 从一条空 message 的异常,到 662 个 CLOSE_WAIT —— 长连接泄漏如何伪装成存储 OOM 2026-08-19 → 2026-09-09 · Cangjie · badger-cj · mcp-cj · json-rpc 一条空消息 事情的开始,是一条几乎不包含任何信息的报错。 我在本地跑着一个常驻的 MCP 服务——一个基于时序数据库、用于会话记录存储的记忆系统(下面就叫它「线上这个服务」)。它会在后台定期执行维护任务。 Continue reading...
2026-09-06 思考 戴森球与光伏文明:一个被忽略的最优解 引言:悖论的另一面 在关于费米悖论的无数讨论中,有一个流传甚广的说辞:“能造戴森球的文明不需要它,需要它的文明造不出来。” 这句话听起来深刻,却长期缺乏令人信服的底层逻辑。我们习惯了将“高级能源”与“核聚变”“反物质”绑定,却极少停下来思考一个问题—— Continue reading...
2026-06-30 软件 鸿蒙PC上使用box64运行x86_64鸿蒙SDK编译HAP 本文记录在鸿蒙PC融合开发引擎的openEuler aarch64容器中,通过box64模拟x86_64兼容层,运行鸿蒙命令行工具编译HAP的完整过程。 Continue reading...