忘记 Kindle 锁屏密码的完美解决方案

根据宇宙真理墨菲定律,忘掉密码这种破事是绝对会发生在你我身上的. Kindle 官方的设备支持页面确实提供了忘记密码的解决办法:在密码框内输入 111222777 并确认(这应该是一种暗码), Kindle 即会重置设备.好吧,我看到这么简单粗暴的解决办法时也是大吃一惊,毕竟数据无价啊.不过,好像也没有更好的办法了——果真如此吗?当然不是.经过我的一番研究,已经发现了可以在不重置设备的情况下重置密码的完美解决方案.好吧,我得先说明的是,本文所提到的方法是有局限性的:你必须在忘掉密码这种破事发生之前按照下文所述的方法在你的 Kindle 上做一些准备工作.或者说,这是一种防患于未然的方法.如果 喜闻乐见的 不幸的事已经发生在了你的身上,而你才通过搜索引擎或别的什么途径找到本文,那么本文也许没法给予你帮助.

好了,正文开始.

与 Kindle 锁屏密码有关的系统文件有以下两个:

/var/local/system/userpasswd
/var/local/system/userpasswdenabled

从文件名就可以看出来,第一个文件存储锁屏密码(已加密,算法未知),第二个文件是空文件,存在则表示已开启锁屏密码,不存在则表示已关闭.在 Kindle 的设置中对锁屏密码的修改,其实质是对这两个文件的写入/创建/删除操作.那么,我们的思路就是,使用某种方法直接删掉这两个文件,就可以关闭锁屏密码.

很显然,"某种方法"就是 SSH. 但问题在于, Kindle 会在锁屏期间自动关闭 WiFi 连接;既然我们不知道锁屏密码,也就没办法重新打开 WiFi, 也就无法通过 SSH 连接到 Kindle. 等等,谁告诉过你 SSH 连接必须建立在真正的网络连接之上?借助奇妙的 USB Net, 我们可以轻松实现 SSH over USB, 即可在不知道密码的情况下 SSH 进 Kindle, 并获得 root 权限.思路就是这样,那么下面就是所谓的"准备工作".

首先将 Kindle 越狱,并参照这篇文章安装 USBNetwork 越狱插件.这篇文章有个坑,它让你把 USB 上的 SSH 连接禁用掉了(因为它的目标和我们不一样,它想无线管理 Kindle, 我们想有线.这二者其实是可以兼得的).所以在安装结束后,你需要点击 Kindle 顶栏的搜索框,在里面输入 ;un ,回车,这样才能启用 USB 上的 SSH 连接(这个 ;un 是 USBNetwork 的暗码).

还需注意的是,那篇文章让你用 PuTTYgen 生成了一对公/私钥,这对密钥非常重要,务必妥善保存.

接下来的步骤,如果你不使用 Windows, 并且英语还不错的话,可以直接参考原文: https://wiki.mobileread.com/wiki/Kindle_Touch_Hacking#USB_Networking. 这是我大概翻译的用于 Windows 系统的操作步骤:用 USB 线连接 Kindle 和你的电脑,如果此前设置正确的话, Kindle 将不会被识别为 USB 储存设备,在我的电脑/计算机/此电脑中也看不到 Kindle 磁盘,你的电脑将把它视为一个网络适配器(在控制面板 -> 网络与共享中心 -> 更改适配器设置中你应该会看到一个写着 RNDIS/Ethernet Gadget 的本地连接,那就是你的 Kindle).如果 Kindle 没有被成功识别,请参考这两篇文章:
Ethernet-over-USB RNDIS driver setup
How to install Microsoft RNDIS driver for Windows 7
(恕不翻译,太 tm 长了)

然后在那个写着 RNDIS/Ethernet Gadget 的本地连接上右键,选择"属性",选择 "Internet 协议版本 4 (TCP/IPv4)", 选择"属性",选择"使用下面的 IP 地址",在 "IP 地址"和"子网掩码"中分别填入 192.168.15.201 和 255.255.255.0 ,确认.

然后打开你喜欢的 SSH 客户端. Kindle 在 SSH over USB 模式下默认的 IP 地址是 192.168.15.244 ,用刚才生成的私钥连接即可.

看看 SSH 能否连接成功?然后试试是否拥有对上述两个与锁屏密码有关的文件的完整读写权限?然后准备工作就完成了.以后,当你真的忘了 Kindle 密码时,直接把 Kindle 连上电脑, SSH 连过去,把那两个文件删掉就好了.注意,不要在 userpasswdenabled 文件存在的情况下修改或删除 userpasswd 文件,有可能导致登陆死循环.这两个文件要删就一起删.

前文提到的 ;un 的作用其实是切换"存储"和"网络"两种 USB 模式,所以当你想向 Kindle 里面传文件时,请先执行一遍 ;un ,让 Kindle 被电脑识别为存储设备.记得在传完文件后再 ;un 一遍.

以上.

One thought on “忘记 Kindle 锁屏密码的完美解决方案

发表回复

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