忘记 Kindle 家长监护密码的完美解决方案

本文是忘记 Kindle 锁屏密码的完美解决方案的后续,将继续与烦人的密码做斗争.同样,本文的目标仍是在不重置设备的情况下重置密码.

与锁屏密码不同, Kindle 的家长监护密码是以 LIPC 方式存储的.关于 LIPC, 我也不是太懂,感觉跟 Windows 的注册表有些相似. LIPC 存储方式中,每条数据(称为 property) 是一个 key-value 对,并由相应的 publisher 提供.数据可以是这三种类型之一: String, Int, Hash. 前两种数据通过 lipc-set-prop 和 lipc-get-prop 命令进行读和写,第三种数据的读写(似乎)需要使用  lipc-hash-prop 命令.

在 com.lab126.dpmManager 这个 publisher 中存在着多个与家长监护密码有关的数据,如下:

名称 可能的值 是否可读写 描述
getControlStatus 0,2 (int) ro 0: 未启用限制

2: 已启用限制

setParentalControlsPassword * (hash) rw (可能是)以 Hash 类型存储的家长监护密码
validateParentalControlsPassword * (hash) rw (可能是)家长监护密码是否正确
parentalControlsHint * (str) rw 用户设置的密码提示文本
isKindleStoreDisabled 0,2 (int) rw 0: 未限制 Kindle 商店访问

2: 已限制 Kindle 商店访问

isBrowserDisabled 0,2 (int) rw 0: 未限制浏览器访问

2: 已限制浏览器访问

isArchivedItemsDisabled 0,2 (int) rw 0: 未限制云端内容访问

2: 已限制云端内容访问

最后三组数据对应的其实就是 Kindle 的家长监护设置里的三种访问限制,如果有一为 2 ,则 getControlStatus 为 2 .(居然用 2 代表真值)

最开始我认为可以通过修改 setParentalControlsPassword 的值来直接修改家长监护密码.但在尝试了多种命令后均已失败告终.(感觉 Hash 这种类型的数据有些奇怪)之后我发现,其实在 Kindle 内部家长监护的密码和访问限制是独立储存的,无需知道密码就可以修改访问限制.执行以下三行命令即可:

lipc-set-prop com.lab126.dpmManager isKindleStoreDisabled 0
lipc-set-prop com.lab126.dpmManager isBrowserDisabled 0
lipc-set-prop com.lab126.dpmManager isArchivedItemsDisabled 0

在哪执行随便你, SSH 或 Kindle 的虚拟终端 (kterm) 均可.这三条命令依次解除了 Kindle 商店,浏览器和云端内容的访问限制.此时,虽然家长监护密码仍然存在,但家长监护本身已经失效了(听起来像是一种很微妙的状态).

(另外,既然密码和访问限制是独立储存的,互不影响,那么当你的 Kindle 未曾设置过家长监护密码时,你也可以直接通过上述代码设置访问限制.有家长监护却没有密码,听起来也蛮有趣的.)

好吧,这其实不是一个十分完美的解决方案,毕竟我们没能重置家长监护密码,只是让它失效了而已,原因在于我不知道怎么改 setParentalControlsPassword. 我已经在 MobileRead 论坛发贴请教大佬们了,也许再过一会就会有大佬告诉我方法,到时候我再更新本文.

以上.

Update:

好吧,一周过去了,并没有大佬来指教我

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注