PI发布的Human to Robot数采工作——头戴iPhone且手戴两相机采集数据:混合数据中像“用机器人数据一样”用人类数据,而无需显式对齐

PI发布的Human to Robot数采工作——头戴iPhone且手戴两相机采集数据:混合数据中像“用机器人数据一样”用人类数据,而无需显式对齐

前言

为了推动中国具身的更快落地,今26年第一季度,我司将帮更多工厂落地umi这种数采模式,在工人们干活的同时 把数据给采集了,以训练机器人自主干活

当然,VR或动捕采集,也能落地工厂的,适合单一任务 重点攻克;而大批量且多任务,umi模式 有优势

如果说,25年的人形运控的元年,26年,我愿称之为具身落地的元年

本文来解读下PI公司发布的Human to Robot数采工作

第一部分 VLA中「人类数据映射到机器人能力」的涌现

1.1 引言、相关工作、预备知识

1.1.1 引言

如原论文所述,通过观看他人执行任务的视频来学习,仍然是一个活跃的研究领域 [9,2,31,5,22,27]。利用这种类型数据的技术有望为通用机器人策略解锁大规模的人类数据

  1. 受语言模型的启发,最近的研究发现,能否利用某些数据来源在本质上与模型规模密切相关[47,49,48]。例如,较小模型无法有效利用多样化的指令微调数据集,而较大模型则会成为能够吸收多种数据并泛化到新任务的“通才”
  2. 这引出了一个问题:在没有显式对齐的情况下,从人类视频数据中学习技能的能力,是否也会随着规模的增加而涌现出来?

    为检验这一假设,来自PI公司的研究者们提出了一种简单的联合训练方案,将人类视频视为一种额外的“形体”,并采用与机器人数据相同的训练目标
  3. 具体而言,作者使用三维手部轨迹来预测低层次的末端执行器轨迹,并使用密集的语言标注来预测高层次子任务,从而与机器人预训练阶段采用的目标保持一致

    随后,作者在该人类数据与相关机器人数据的混合集合上进行联合微调,并在只出现在人类数据中的场景下进行评估。例如,其中一种场景是鸡蛋分类:机器人数据仅涉及将鸡蛋放入蛋盒中,而人类数据则详细说明了如何根据颜色差异,将鸡蛋分配到多个不同的蛋盒中

通过这一“配方”/方法,作者得出了核心结论:人到机器人的迁移是多样化 VLA 预训练所涌现出的性质,如下图图 1

  1. 当在任务、场景和具身形式等维度上扩展机器人数据的多样性时,预训练的 VLA在后训练阶段,对利用人类视频的能力变得日益强大

    作者发现,随着预训练多样性的提升,人类与机器人数据之间的潜在表征会自然对齐。这表明,只要数据覆盖度足够高,尽管存在巨大的视觉和运动学领域分布偏移,模型仍会开始形成与具身形式无关的表征
  2. 且正如大型语言模型在多样化监督下会成为通才一样,多样化预训练的 VLA 模型也会成为能够从多种具身形式中学习的通才,且作者表明,当在足够多样化的数据上进行预训练时,机器人基础模型能够直接利用人类数据

1.1.2 相关工作

首先,对于来自人类的学习

由于具有良好的可扩展性,从人类视频中学习操作策略受到了广泛关注。多年来,研究者在如何更直接地将这类数据用于策略学习方面不断取得进展

  1. 早期工作利用人类视频数据来训练更强大的视觉编码器,从而提升下游策略学习的效果 [31,30,29]。这类方法利用诸如 Ego4D [19]等大规模人类数据集所蕴含的丰富视觉多样性来学习高质量视觉特征,但无法直接提升动作预测能力
  2. 为了解决这一问题,后续一些研究通过中间预测任务为动作构造代理表征,例如关键点跟踪[5,45]、潜在动作 [55]、奖励建模 [9] 和可供性预测 [3,2]

    另一类方法则通过叠加机器人形象以及使用 AR/VR 来显式对齐人类与机器人的动作[15,34]。这些方法在更真实地捕捉人类动作方面更进一步,但它们都引入了人工设计的结构以实现迁移,从而限制了可被捕捉任务的通用性
  3. 与本工作并行,AR/VR 的进展使得能够以三维手部和头部跟踪的形式从人类身上提取显式动作 [17]。近期工作利用这一进展,在人类和机器人数据上训练统一策略,其唯一目标是进行未来动作预测——无论该动作来自人类手部还是机器人末端执行器 [22,36,59,27,28,54,37]

    这些工作为直接利用大规模人类数据提供了一条前景可观的路径,但此类方法在小规模场景下通常较为脆弱
    因此,它们往往依赖某种形式的对齐才能良好工作,无论这种对齐是运动学的、视觉的,或潜在空间。在本文要介绍的工作中,作者扩展了这一类方法,并且不执行任何显式的对齐步骤

其次,对于异构视觉-语言-动作模型

  1. 现代 VLA 被训练为在异构监督下的通用策略,将机器人遥操作数据、Web规模的视觉-语言数据以及语言标注结合到一个单一模型中 [13,60,24,8,50,57,4,40,35,42,51,7,20]

    这些模型利用强大的视觉-语言骨干网络,从人类生成的图像和文本中获取广泛的语义理解能力,然后通过在大规模遥操作数据集上进行行为克隆,将这种理解落地到机器人的实际经验中[11,16,44,33,23,6,18,38,1,25,21]

    虽然来自网页图像、视频和语言的监督进一步提升了开放世界的泛化能力,但这些数据缺乏显式动作信息,并且在视觉上相对于机器人的自中心观测是分布外的
  2. 近期多模态大模型(VLA)中的一个共同主题是跨形体(cross-embodiment)训练 [33,32,12,53,58],即使用单一策略在统一的架构和动作表示下控制多种不同的机器人形体

    这些多机器人 VLA 表明,技能可以在不同形体之间迁移,且通常除了共享观测空间和动作空间外,无需专门的对齐设计
    这表明,基于异构多机器人进行预训练,可以产生内部表示,自然有利于在不同机器人形体之间进行迁移

对此,作者基于这一跨具身假设,将人类视为同一异构 VLA训练方案中的另一种具身形式。与人们可能在YouTube 上看到的非具身化人类视频相比,作者利用在 VLA 混合数据中具备显式手部运动和语言标注的具身人类视频

作者发现,在足够规模的预训练下,所得的 VLA 会自然形成与具身形式无关的表示,从而对齐人类和机器人的轨迹

最后,对于扩展替代数据采集策略的规模

尽管大多数 VLA在很大程度上依赖机器人遥操作数据驱动,但最近有工作在探索更具可扩展性的替代数据采集机制

  1. 一些研究使用由用户手持操作的便携式硬件来模拟遥操作[39,56],例如,UMI[10] 是一种手持式平行夹爪,通过跟踪自身运动来用作示范数据
  2. 还有一些工作在这一设计基础上进行扩展,通过外骨骼和便携式动作捕捉等方式来采集灵巧手的数据[52,41,46]
    尽管这些设备是在提升数据可扩展性方面颇具前景的选项,但它们终究会束缚操作者,使得难以以自然的方式完成任务

采集具身人类数据为解决这些局限性提供了一种很有前景的途径,它利用摄像机和计算机视觉以最小干扰记录三维手部运动。这种方法使得能够在不对人造成额外负担的情况下观察人类行为。因此,在本研究中,作者重点探讨如何利用具身人类数据的方法

1.1.3 预备知识

如原论文所说,VLA 继承了视觉-语言模型的架构和预训练权重,但被训练以产生连续的机器人控制

在本文介绍的这项工作中,作者遵循Driess 等人[14] 的做法,使用这两种动作表示来训练VLA 模型:

\rightarrow

  训练模型去预测离散化的FAST [35] 动作token,并引入一个小型动作专家网络

\rightarrow

  通过flow match-ing 目标来解码连续动作
关于模型架构和训练目标的更多细节,参见[20]

VLA 通常通过在示例数据集

D=\left(o_{t}, l_{t}, a_{t: t+H}\right)

上进行行为克隆来训练,从而得到一个将观测和语言指令映射到未来动作轨迹的策略

\pi_{\theta}\left(a_{t: t+H} \mid o_{t}, l_{t}\right)


————
动作可以被表示为离散的动作token[60, 26, 35] ,可以通过标准的下一token预测进行训练,或者表示为连续值,通常通过flow-matching 目标进行训练[8]

最近的VLA,如π0.5,通过在联合训练VLA 时加入子任务预测、目标检测和VQA 等附加目标,表现出更好的泛化能力

  1. 子任务标签是通过使用对短、原子动作序列的语言描述,对示范数据进行密集标注获得的。在这项工作中,作者在人体数据上进行训练,包含两个目标:
    1) 基于流的连续动作预测
    2) 基于语言的子任务预测

对于子任务预测,策略在给定视觉观测和高层语言指令的条件下预测一个子任务字符串

p\left(l_{t}^{\text {subtask }} \mid o_{t}, l_{t}\right)



该语言会被反馈回模型中,用于对动作生成进行条件化

\pi_{\theta}\left(a_{t: t+H} \mid o_{t}, l^{\text {subtask }}\right)



此,类似于思维链

1.2 人类数据采集流程

如原论文所述,作者的微调方案旨在像对待作者混合体中的其他机器人一样利用具身人类数据,而不进行任何显式对齐

  1. 该方法具有最大程度的通用性,依赖大模型从多源异构数据中摄取相关信息的能力,而不是依靠人工设计的跨域对齐启发式规则

首先收集、处理并标注人类视频数据
然后将其与机器人数据结合,用于微调预训练模型,该模型以图4中所示的 π0.5 模型为基础,详见此文《π0.5——推理加强的统一模型:先高层预训练离散化token自回归预测子任务、后低层执行子任务(实时去噪生成连续动作)


————
微调目标对人类数据和机器人数据一视同仁,不采用任何显式的迁移学习方法或损失项

1.2.1 对于数据采集设备

作者设计的数据采集装置旨在在尽量不打扰人类的前提下,采集广泛的人类交互数据,从而具备良好的可扩展性

即作者为人工数据采集员配备了一台头戴式高清摄像机。鉴于近期机器人研究已经证明腕部安装摄像机在策略学习中的益处——它能够更细致地观察末端执行器与被操作物体之间的交互——作者还尝试为数据采集员配备腕部安装摄像机,以额外提供两路时间同步的相机流

且作者在原论文第 V 节中对这些额外相机的效果进行了消融实验

1.2.2 数据采集协议

作者的目的是以情节式机器人远程操控数据的形式收集人体数据,从而将迁移问题仅限定在人与机器人之间的视觉和运动学差异上

  1. 为此,作者要求操作员在佩戴数据采集设备的情况下,对每个任务进行多次重复演示
  2. 此外,作者要求操作员在演示过程中将双手保持在摄像机视野范围内,以提升跟踪质量

最终共收集了 bussing 任务 3 小时的数据、spice 任务 3 小时的数据、dresser 任务 3 小时的数据,以及 sort eggs 任务 5 小时的数据

1.2.3 数据处理与标注

  1. 最后,与作者训练混合数据中的机器人遥操作数据类似,使用基于文本的子任务对人类视频数据进行标注,用于描述每只手臂的动作

给定一段记录人类交互的原始视频,作者使用视觉SLAM 重建头戴相机相对于固定世界坐标系的6 维运动

e_{t} \in \mathbb{R}^{6}


且还在头戴相机坐标系中重建双手的17 个3D 关键点的位置

h_{t}^{e_{t}} \in \mathbb{R}^{3 \times 17}

1.2.4 对于动作空间

  1. 作者的目标是在训练混合数据中,大致对齐人类和机器人的动作表示,以促进迁移
    对于机器人的遥操作数据,动作表示有多种选择。两个常见的选项是将动作表示为机器人关节位置轨迹或末端执行器位姿轨迹

为了计算人类视频中的对应动作,作者定义一个” 末端执行器” 位姿,其覆盖相对于头部坐标系

e_{t}

的每只手的手掌、中指和无名指的3D 关键点(图6)

然后,作者与机器人末端执行器相同的方式,从当前的6-DoF 状态计算相对变换作为末端执行器动作
类似地,作者通过将人类视频中的底盘相机位姿投影到该片段第一个时间步底盘相机位姿的坐标系下,来近似相对的机器人底盘动作
————
另,作者宣称不显式地为人类视频近似” 夹爪动作”,因为估计在物体交互过程中的人手的张开程度是具有挑战性的,而是仅依赖于从机器人数据中学习夹爪动作
因此,作者的人体动作具有2 × 6 + 6 = 18维度

作者将考虑基于末端执行器的动作,因为为人类近似关节位置是困难的。具体来说,这些末端执行器动作被表示为长度为H 的动作片段

\left[a_{0}, a_{1}, \ldots, a_{H}\right]

,其中每个

a_{i}

表示相对于当前观测到的状态6-DoF 位姿

s_{0}

的6-DoF 位姿

机器人数据的总动作空间是6DoF 左臂末端执行器轨迹+ 夹爪、6 DoF 右臂末端执行器轨迹+ 夹爪,以及2 维底盘动作的拼接,从而得到总的动作片段

a \in \mathbb{R}^{H \times 16}

1.2.5 训练目标

作者用于执行困难长时程任务的最佳方案同时利用了高层子任务预测和低层动作预测

具体而言,作者在人工数据上构建这两种预测任务

对于低层动作预测,通过对离散FAST token进行下一个token预测以及对连续动作

\pi_{\theta}\left(a \mid o_{t}, l_{t}^{\text {subtask }}\right)

施加流匹配损失来监督动作片段预测

对于高层子任务预测,在子任务语言token上训练下一个token预测

\pi_{\theta}\left(l_{t}^{\text {subtask }} \mid o_{t}, l_{t}\right)

1.2.6 训练混合:人类数据与最近邻机器人数据5 5混合

  1. 在微调阶段,构造一种既能保留模型原有能力,又能通过引入来自人类数据的新概念以提升泛化能力的训练混合非常重要
  2. 作者的混合策略用一个简单的配方体现这一点:作者以50-50 的比例,将用于泛化任务的人类数据与最近邻的机器人任务进行联合训练
    ————
    比如,作者使用这种混合来微调π0.5,这是一个在零样本泛化上表现出色的强大VLA,并在此基础上进一步提升其能力
    为简便起见,作者将把自中心数据整合进π0.5 后的组合模型称为π0.5+ego

1.3 实验结果

为了检验 π0.5 + ego 是否能将从以自我为中心的人类数据中获取的知识泛化到新的概念上,作者构建了一组“泛化”场景,这些场景在机器人数据中的覆盖范围有限,但在人类数据中存在

这些情景涵盖了对新场景、新物体和新任务的泛化

  1. 作者首先通过研究他们的方法是否能够实现向这些新设定的迁移来开展实验
  2. 接着,作者验证他们的核心假设:这种迁移是多样化 VLA 预训练的一种涌现属性
  3. 最后,作者将人体具身数据与其他机器人具身数据进行对比,研究迁移是源自高层次子任务预测还是低层次动作预测,并对他们使用的人体佩戴式腕部摄像机的影响进行消融分析

1.3.1 人到机器人的迁移基准

作者的基准旨在测试人在不同泛化维度上传递到机器人的能力:场景、物体和任务(见图 3)

  1. 针对每个维度,作者都考虑这样一种设置:他们的机器人遥操作数据在该维度上存在覆盖不足,因此通过收集有针对性的人类数据来扩展这一覆盖范围
  2. 在每种设置中,作者使用 π0.5+ego 进行联合训练,并在人类数据中新引入的概念上进行评估

之后,依次进行

  • 场景迁移
    作者确定了两个任务,在这些任务中,在若干固定家庭中具备机器人数据覆盖,但仅使用机器人数据训练的 π0.5 无法泛化到一个未见过的新家环境:Spice和 Dresser

    在这两个任务中,机器人分别需要整理调料架和五斗橱顶部
    作者在这个未见过的目标厨房中收集人类数据,然后在该新场景上对 π0.5+ego 进行基准评测
    对于这两个决策时间跨度较短的任务,评分是二元的成功率
  • 物体转移
    作者的机器人数据涵盖了清理一张堆满垃圾和餐具的凌乱桌子的场景
    随后作者收集人类演示数据,其中引入了厨房工具等新物体,并在这些新物体上对 π0.5+ego 进行基准评测
    对于这个更长时域的任务,评分度量的是被正确放置的物体数量
  • 任务迁移
    作者的机器人数据涵盖了拾取鸡蛋并将其装入蛋盒
    作者收集了人类数据,根据颜色将鸡蛋分拣到两个蛋盒中,并在这个新任务上对π0.5+ ego 进行基准测试
    对于这个更长时间跨度的任务,得分衡量的是被正确放置的鸡蛋数量

1.3.2 π0.5+ego 配方使模型能够泛化到未见过的场景、物体和任务

在图7 中给出了作者的基准任务套件上的迁移结果。在所有三个泛化维度上,作者发现有针对性的人类数据收集和协同训练可以显著提升策略的泛化能力

  1. 具体而言,对于场景和物体泛化,作者在协同训练之后观察到任务得分显著提高:
    bussing: 53 →63 %
    Spice: 32 % →71 %
    dresser: 25 % →50 %
  2. 值得注意的是,作者还在分拣鸡蛋任务中观察到了来自人类视频的强任务迁移:虽然仅在机器人数据上训练的策略只具备拾取并放置鸡蛋的基本操作技能,对分拣这一概念一无所知,只是将鸡蛋随机放入蛋盒中(分拣准确率为57 %)
    相比之下,一旦与人类分拣鸡蛋的视频进行协同训练,机器人策略就能够以78 % 的准确率完成鸡蛋分拣,平均比π0.5 多正确放置4 个鸡蛋

1.3.3 随着在多种场景/任务/形体上的多样化 VLA 预训练,人到机器人的迁移能力涌现

通过上文,已经表明π0.5+ ego 可以利用具身人类数据来扩展其能力,这引出了本工作的核心问题:是什么使这种迁移成为可能?

  1. 作者假设,使用包含多种场景、任务和具身形式的多样数据混合进行策略预训练,是实现高效人到机器人迁移的关键促成因素
    直观而言,具有强大预训练的VLA可能会学习跨具身形式的抽象——组织其表征以捕捉跨领域的共享结构,从而促进迁移
  2. 作者分两部分检验这一假设
    首先,作者表明,在他们的泛化基准上,人到机器人的迁移随着预训练多样性的增加而提升
    然后,作者分析随着预训练多样性增加时模型所学习到的表征

总之,作者认为,多样化的预训练会涌现出强大的人到机器人迁移能力

为了评估 VLA 预训练对人到机器人迁移的影响,作者在使用下述预训练初始化(其多样性依次递增)的条件下,重复进行了他们的迁移基准实验

  1. 0%:仅使用基础 VLM 初始化
  2. 25%、50%、75%、100%:
    在日益多样化的机器人数据上预训练的 VLA,这些数据对应于他们数据中[scene-task] 组合总体多样性的不同分数,并且被约束为仅使用目标机器人形态:ARX 和 mobile ARX
  3. 100% + X-emb:π0.5 full VLA 预训练混合『Intelligence et al. [20]』,其中还额外包含来自众多非目标机器人形态的数据

基于上述每一种预训练初始化,作者都会训练两个模型:

  1. 一个仅使用数据集中与目标任务最相似任务的机器人远程操作数据
  2. 另一个在此基础上还包括这些任务的人体形态数据
    这样可以用来衡量多样化预训练对从人到机器人的迁移效果的影响

作者的结果如图2所示『来自人类数据的逐任务改进:绘制了使用“机器人 + 人类”数据与仅使用机器人数据进行微调所得策略之间的性能差异,从而分离出人类监督带来的提升。当预训练覆盖多样的任务、场景和具身形态时,收益最大,这表明广泛的预训练能够提升来自人类视频的迁移效果

具体而言,作者报告了在不同预训练模型规模下,使用人类数据与不使用人类数据的模型之间的得分差异。这个差异刻画了在人到机器人迁移中,随着预训练多样性变化而产生的效应大小

作者发现,随着预训练多样性的提高,这种迁移显著增强

  • 当没有或几乎没有预训练时,VLA 模型无法从人类数据联合训练中获益(0%、25%)
  • 当在多样数据上进行预训练时,VLA 从人类数据联合训练中获得了显著增益(75%、100%)

此外,通过在多样的跨机体数据混合上进行预训练(该数据混合包含来自多种非目标机器人机体的数据),可以进一步提升这种迁移效果

且可以分别分析每个任务的扩展趋势

然而,更高的预训练多样性使作者能够从覆盖了这一新任务的人类数据中迁移显著更多的知识
类似地,对于Dresser 任务,在预训练进度达到 50% 的检查点之前,引入人类视频的联合训练并没有带来收益,甚至可能出现负迁移(图 13)


但在 75%→100% + X-embwe 之间即使仅使用机器人模型的基线逐渐变强,仍然可以在其之上看到稳定叠加的性能增益
————
更广泛来看,这些结果表明,随着预训练模型多样性的提升,人类到机器人之间的迁移也将持续改进
这与作者的直觉一致,因为作者预计,场景、任务和形体多样性的提高,理应增强模型形成与具体形体无关的抽象表示的能力

例如,在 SortEggs 任务中,作者发现,仅仅增加预训练多样性并不能让仅基于机器人数据的策略完成 Sort Eggs 这一任务
该任务在作者的机器人遥操作数据中从未出现过(图 8)——言外之意,就是最好混合人类具身的数据

随着预训练规模的扩大,与载体无关的表征逐渐涌现

  1. 在预训练不足的情况下,模型在不同的载体上呈现出彼此不相交的表征,这表明模型分别去拟合这些分布
    而随着预训练多样性的提高,这些表征开始收敛,说明模型为两种载体构建了统一的表征。更多细节见附录C

作者假设,多样化的预训练有助于生成与载体无关的表征,进而提升从人到机器人的迁移能力
为验证这一点,作者对联合训练后来自人类和机器人数据的 VLA 输出嵌入进行了 TSNE[43] 分析
参见下图图5,人类与机器人数据的 VLA 表征。作者对 VLM 主干网络最后一层输出的 token 进行平均池化,并在此基础上执行 t-SNE 分析,绘制出 VLA 的潜在嵌入。在没有预训练的情况下,模型在人类与机器人数据之间的表征明显是分离的。但随着预训练数据变得更加多样,潜在空间的重叠区域逐渐增大,而这与泛化任务上的性能提升相对应


说白了,即指随着预训练数据变得多样之后,人类数据与机器人数据的表征 越发趋于一致

先前在较少数据量上开展的工作观察到,协同训练(co-training)可以提升性能,但人类与机器人的表征彼此不相交,因此提出了显式改进表征对齐的方法 [36]

作者的分析表明,当预训练具有足够的多样性时,仅依靠协同训练本身就可以产生对齐的表征,从而促进迁移

// 待更

Read more

Flutter 组件 ansi_text 适配鸿蒙 HarmonyOS 实战:终端色彩渲染,构建高性能 ANSI 日志高亮与命令行交互架构

Flutter 组件 ansi_text 适配鸿蒙 HarmonyOS 实战:终端色彩渲染,构建高性能 ANSI 日志高亮与命令行交互架构

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 ansi_text 适配鸿蒙 HarmonyOS 实战:终端色彩渲染,构建高性能 ANSI 日志高亮与命令行交互架构 前言 在鸿蒙(OpenHarmony)生态迈向工业级运维、涉及大量后台守护进程(Daemon)、系统日志审计及开发者工具链(CLI)开发的背景下,如何为枯燥的纯文本终端注入具备视觉层级的色彩与样式,已成为提升调试效率与故障定位速度的“视觉助推器”。在鸿蒙设备这类强调 AOT 极致性能与低级别 shell 交互的环境下,如果应用依然依赖基础的单色字符串输出日志,由于由于信息流极其庞大且缺乏重点,极易由于由于“视觉疲劳”导致关键系统警告或业务异常被淹没在海量数据中。 我们需要一种能够支持 ANSI 转义序列、具备富文本样式(加粗/背景色)且兼容多种终端模拟器的文本渲染方案。 ansi_text 为 Flutter 开发者引入了基于标准

By Ne0inhk
Flutter for OpenHarmony: Flutter 三方库 envied_generator 给鸿蒙应用的敏感 API Key 穿上“不可破解”的防护服(安全性加固利器)

Flutter for OpenHarmony: Flutter 三方库 envied_generator 给鸿蒙应用的敏感 API Key 穿上“不可破解”的防护服(安全性加固利器)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在进行 OpenHarmony 应用开发时,我们不可避免地要集成各种三方服务(如高德地图 KEY、Firebase Secret、或是鸿蒙分布式服务的授权 Token)。如果你直接将这些字符串写在 Dart 代码里,任何初级黑客都能通过反编译你的 HAP 包,轻松获取这些敏感资产,导致巨大的商业损失。 envied_generator 配合 envied 就是专门解决这一安全痛点的。它不仅能将配置从 .env 文件读取到代码中,更关键的是它支持 Obfuscate(代码混淆)。它将你的 Key 转化为一串复杂的位运算逻辑,让反编译后的结果变得面目全非,为鸿蒙应用的资产安全筑起第一道堤坝。 一、配置加固工作流模型 该库通过代码生成,将明文配置文件转化为混淆后的 Dart 类。 .env (敏感明文) envied_generator

By Ne0inhk
Flutter for OpenHarmony:Flutter 三方库 pem — 在鸿蒙应用中优雅处理加密证书与密钥(适配鸿蒙 HarmonyOS Next ohos)

Flutter for OpenHarmony:Flutter 三方库 pem — 在鸿蒙应用中优雅处理加密证书与密钥(适配鸿蒙 HarmonyOS Next ohos)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net。 Flutter for OpenHarmony:Flutter 三方库 pem — 在鸿蒙应用中优雅处理加密证书与密钥(适配鸿蒙 HarmonyOS Next ohos) 在现代移动应用的网络安全、数字签名及加密传输中,证书的管理是基石。无论是对接 HTTPS 的私有根证书,还是在进行 RSA 加密时加载私钥,我们通常会接触到 PEM (Privacy-Enhanced Mail) 格式的文件——即那些以 -----BEGIN CERTIFICATE----- 开头的文本块。 在 Flutter for OpenHarmony 开发中,如何高效地解析和编码这些 Base64 文本数据?pem 库提供了一套标准的、纯 Dart 的工具包。今天,我们将实战如何利用它在鸿蒙项目里完成安全底座的构建。 一、

By Ne0inhk

Flutter 三方库 flutter_app_packager 的鸿蒙化适配指南 - 在鸿蒙系统上构建极致、自动化、全平台的桌面端安装包打包与工程分发引擎

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 flutter_app_packager 的鸿蒙化适配指南 - 在鸿蒙系统上构建极致、自动化、全平台的桌面端安装包打包与工程分发引擎 在鸿蒙(OpenHarmony)系统的桌面端适配(Ohos PC Mode)以及为鸿蒙应用构建配套的 PC 端管理工具(macOS/Windows/Linux 版辅助工具)时,如何通过一套 Dart 代码或命令行指令,即可瞬间将 Flutter 应用转化为原生的 .dmg, .exe 或 .deb 安装包?flutter_app_packager 为开发者提供了一套工业级的、基于 Dart 的自动化打包封装方案。本文将深入实战其在全平台分发工程中的应用。 前言 什么是

By Ne0inhk