eMMC RPMB 分区计数器功能

eMMC RPMB partition Counter feature

我有一个关于RPMB回滚保护计数器的问题,根据RPMB规范,当对RPMB分区发出写操作时,这个分区会比较一个物理计数器(在这个分区内)和那个计数器写操作有,如果相等,则继续下一次检查(HMAC等)。如果写操作被验证,这个物理计数器将增加1。现在我的问题来了:

  1. 这是整个 RPMB 分区的全局计数器吗?或者每次当我们在里面创建一个小块时,RPMB patition 就会有一个与之关联的计数器?
  2. 这个计数器的大小是多少?如果写操作太多然后溢出会怎样?
  3. 如果发生溢出,RPMB保护还有效吗?或者不再允许写操作?
  4. 是否有办法将 RPMB 分区恢复出厂设置(就像 Android 中的普通用户分区一样?)

谢谢。

终于得到答案了:

  1. 是的,有一个唯一的全局计数器,它不依赖于 RPMB 中的分区创建。相反,这个全局计数器在每次有效的写操作后都会加 1。
  2. 根据RPMB参考,它是32位的。目前没有处理计数器溢出的情况(因为写入RPMB用例很少)。所以它可能会重置为0,或者不再增加。
  3. 取决于RPMB制造设计,可能发生溢出后此分区将不再允许写入。
  4. RPMB 中的内容总是可以重写的(就像普通的 RAM),所以是的。但是,对于全局 RPMB 分区计数器,没有。