您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
kindle4(水墨屏开发设备,旧 Kindle 改造而成)
我的,磁盘,分区kindle4(水墨屏开发设备,旧 Kindle 改造而成)
发布时间:2016-12-08加入收藏来源:互联网点击:
-
四个分区:三个 Linux 系统,一个 FAT32 系统。第一个磁盘开始时离磁盘很远:原来内核存储在那个 “丢失的” 区域。深入研究后发现分区 1 是正常系统,2 是一种诊断工具,3 是存储 Kindle 私密信息(例如 Wi-Fi 密码)。当你通过 USB 插入 Kindle 时,你会看到分区 4:你电子书的存储地方。 — 分区 4 挂载在 /mnt/us”`。
我用 dd 命令将磁盘和分区 1-3 转储到 /mnt/us 上(一般我中意备份一个完整的原始映像,以便在出现问题时可以恢复它):
dd if=/dev/mmcblk0 of=/mnt/us/kindle.img bs=32768 count=15297
虽然这款 Kindle 不能在 USB 上显示为磁盘,但因为我有 root 权限能让它这样:
rmmod g_file_storagemodprobe g_file_storage file=/dev/mmcblk0p4
它会出现在我的笔记本上,然后我把所有东西都复制了下来。
分析系统终于,我用以下命令在笔记本安装 kindle.img 中的分区:
kpartx -v kindle.img
接着,我将 Kindle 各个分区安装到我的笔记本电脑上。我把所有分区文件放在一个文件夹中,这样我可以方便地用 grep 命令查看它们。我发现:
Kindle 用 rc.d 作为它的系统初始化系统,文件夹中有很多优雅的纯文本脚本。Init level 5 是运行电子书软件的 “通用” 系统电子书软件在 /opt/amazon目录,用 Java 编写(我知道要快速复习 Java 了)。Kindle 有一堆有意思的纯文本 “diag” 脚本用来测试。有一个相当漂亮的 wifid daemon 来管理 Wi-Fi 连接:我从 diag 脚本中找到了与它对话的方法。用 /usr/sbin/eps 命令(文档见这里)从命令行写入数据到水墨屏。我没找到可见的 “turn off demo mode” 开关:看样子演示模式是 Java 电子书软件的定制功能。以下系统服务与不支持的功能或电子书软件有关,或与 Amazon 联系:S50wan S70wand S75phd S81usbnetd S93webreaderd S94browserd S95framework S96boot_finished。对话 Wifid你可以用 Kindle 内置的 wifid 连接 Wi-Fi,并管理你的 Wi-Fi 配置文件。对啦,如果你的 Wi-Fi 连接失败,一定要记住许多 Kindle 只支持 2.4Ghz Wi-Fi
列出 Wi-Fi 配置文件数量lipc-get-prop com.lab126.wifid profileCount
显示 Wi-Fi 配置文件
echo "{index=(0)}" | lipc-hash-prop com.lab126.wifid profileData
删除某个 Wi-Fi 配置文件
lipc-set-prop com.lab126.wifid deleteProfile WIFIESSID
创建 Wi-Fi 配置文件
echo '{essid="WIFIESSID", smethod="wpa2", secured="yes", psk="WIFIPSK"}' | lipc-hash-prop com.lab126.wifid createProfile
smethod 可以是 open / wep / wpa / wpa2 之一(如果选择 open,请设置 secured 为 “no”)WIFIPSK 是 wpa_passphrase 实用程序(这实际上是在 Kindle 上)生成的 WIFI PSK:一个正常的 “wifi passphrase” 将不起作用。连接 Wi-Fi 配置文件
lipc-set-prop com.lab126.wifid cmConnect WIFIESSID
显示 Wi-Fi 连接情况
echo "{index = (0)}" | lipc-hash-prop -n com.lab126.wifid currentEssid
修改 Root
下面的许多说明需要更改 Kindle 的根磁盘。但是,默认情况下根磁盘为防止被修改以只读模式挂载。要解决这个问题,在 Kindle 上运行以下命令:
mntroot rw
完成修改后,将其设置为只读模式,以防止任何不必要的更改:
mntroot ro
安装 Dropbear SSH
我想 ssh 到我的 Kindle,所以我要安装 ssh 程序 dropbear。当然,Kindle 是一个基于 ARM 的设备,所以要么我自己编译 dropbear,要么在某个地方找到 dropbear 二进制文件。刚好,Kindle 有一个遗留的 USBNET 漏洞:我自己不直接用这个漏洞,因为我想完全控制这个开发套件,但是我可以从 USBNET 那里借用 dropbear 二进制文件。
不巧的是,USBNET 漏洞是用 Kindle 自有诡异的更新格式发布的,所以我们需要把 USBNET 提取出来:
在你的电脑中:
下载这个 git repo 并编译它——这会让我们解码 Kindle 更新。在 这里 下载 kindle-usbnetwork-0.57.N-k4.zip,并复制到 KindleTool/Release/。cd KindleTool/Release/unzip kindle-usbnetwork-0.57.N-k4.zip./kindletool extract Update_usbnetwork_0.57.N_k4_install.bin usbnetcd usbnettar Jxf usbnet.tar.xz
将 src/usbnet/bin/dropbearmulti 复制到你的 Kindle(我重装它为 USB 设备并复制过来)。
在 Kindle 中:
cd /mv /mnt/us/dropbearmulti /chmod a x /dropbearmultiln -sf /dropbear /dropbearmultiln -sf /dropbearkey /dropbearmultiln -sf /bin/scp /dropbearmulti/dropbearkey -t rsa /dropbear_rsa_host_key
定制 Kindle
我用下面的方式重命名了所有不需要的系统服务:
cd /etc/rc5.d; mv S95framework DISABLED.S95framework
我在 /etc/rc5.d/S99adq 中添加了自己的初始化脚本来添加自己的定制设置:
#!/bin/shNAME="adq"case "$1" in start) # display some stuff! /usr/sbin/eips -c 20 20 "HELLO ADQ" IP=`ifconfig wlan0 | awk '/t addr:/{gsub(/.*:/,"",$2);print$2}'` /usr/sbin/eips 1 1 "IP Address: $IP" /usr/sbin/eips 1 2 "Root Password: <MY ROOT PASSWORD>" /usr/sbin/eips "" # connect to wifi and allow ssh in lipc-set-prop com.lab126.wifid cmConnect MYWIFISSID iptables -A INPUT -i wlan0 -p tcp --dport 22 -j ACCEPT /dropbear -r /dropbear_rsa_host_key mkdir -p /mnt/us/usbnet/etc echo "<MY SSH PUBKEY>" > /mnt/us/usbnet/etc/authorized_keys # expose shell over usb modprobe -r g_file_storage modprobe g_serial /sbin/getty -L 115200 ttyGS0 -l /bin/login & ;; stop) ;; *) msg "Usage: /etc/init.d/$NAME {start|stop}" W >&2 exit 1 ;;esacexit 0
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |