Beginning Kindle Hackery
- 44. (The same tool can help you
remove the DRM from
books Amazon sells you)
- 64. 3G use is free, but only while
Amazon likes you
- 95. sh-3.2# tcpdump -i en1
listening on en1, link-type EN10MB (Ethernet), capture size 96 bytes
[ ...]
12:36:15.238229 arp who-has 192.168.15.200 tell 192.168.15.244
- 100. I want to read other eBook
formats - attempt #1
- 117. I want to read other eBook
formats - attempt #2
- 135. alsa-lib-1.0.13 gcc-4.1.2 module-init-tools-3.2.2_patch
alsa-lib-1.0.13_patch glib-2.12.9 monit-4.9
alsa-utils-1.0.13 glibc-2.5 mtd-utils-1.0.0
alsa-utils-1.0.13_patch gst-plugins-base-0.10.17 picocom-1.4
base-files-3.0.14.ipk gst-plugins-base-0.10.6 powertop-1.10
base-passwd_3.5.9 gstreamer-0.10.17 procps-3.2.7
binutils-2.17.50.0.5 hotplug-2004_09_20 procps-3.2.7_patch
bonnie++-1.03c ifupdown_0.6.8 readline-4.3
bootchart-0.9 iptables-1.3.3 syslog-ng-1.6.11
busybox-1.7.2 klibc-1.5 sysvinit-2.86
dosfstools-2.11 libol-0.3.18 taglib-1.5
e2fsprogs-1.38 linux-2.6.22-lab126 uboot-1.3.0-rc3
e2fsprogs-1.38_patch lrzsz-0.12.20 udev-112
fuse-2.7.1 lzo-1.08 util-linux-2.12r
fuse-2.7.1_link module-init-tools-3.2.2
- 175. 125-6-81-160:ß jesse$ telnet kindle 2323
Trying 192.168.15.244...
Connected to kindle.
Escape character is '^Ü'.
/ # cat /etc/motd
###############################################
##
# NOTICE * NOTICE * NOTICE #
###############################################
##
Rootfs is mounted read-only. Invoke mntroot rw to
switch back to a writable rootfs.
###############################################
##
/#
- 180. #
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.22.19
# Mon Mar 2 12:13:07 2009
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
# CONFIG_GENERIC_GPIO is not set
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_MMU=y
# CONFIG_NO_IOPORT is not set
CONFIG_GENERIC_HARDIRQS=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_LOCKDEP_SUPPORT=y
...
- 183. nodev sysfs
nodev rootfs
nodev bdev
nodev proc msdos
nodev sockfs vfat
nodev pipefs nodev nfs
nodev nodev rpc_pipefs
anon_inodefs nodev fuse
nodev futexfs fuseblk
nodev tmpfs nodev fusectl
nodev inotifyfs
nodev devpts
ext3
nodev ramfs
- 184. nodev sysfs
nodev rootfs
nodev bdev
nodev proc msdos
nodev sockfs vfat
nodev pipefs nodev nfs
nodev nodev rpc_pipefs
anon_inodefs nodev fuse
nodev futexfs fuseblk
nodev tmpfs nodev fusectl
nodev inotifyfs
nodev devpts
ext3
nodev ramfs
- 209. I also realized that building
on the Kindle works better
than on the N810.
- 214. I built my own crosscompilers
for ARM1136JF-S - Linux 2.6
- glibc 2.5
- 215. I used the cross compiler to
compile gcc, glibc (for
proper headers), binutils,
shellutils, dropbear & screen
- 232. “I can learn enough Python
in a weekend to port this
application to the Kindle”
- 238. If it’s not in the Standard
Library, it’s not worth using.
- 246. I just ran the app over and
over until it stopped erroring.
- 263. It was good enough to try to
convert a trivial ebook.
- 281. if tag == 'pre':
self.inside_pre = 1
tag = 'tt'
if prefixname(elem.tag, nsrmap) == 'pre':
buffer.write('<br/>n')
self.inside_pre = 0
if self.inside_pre:
text=text.replace(' ',' ')
text=re.sub(r'(rn|r|n)', '<br/>n', text)
- 289. There is an application I
could replace with
something custom...
- 301. nodev sysfs
nodev rootfs
nodev bdev
nodev proc msdos
nodev sockfs vfat
nodev pipefs nodev nfs
nodev nodev rpc_pipefs
anon_inodefs nodev fuse
nodev futexfs fuseblk
nodev tmpfs nodev fusectl
nodev inotifyfs
nodev devpts
ext3
nodev ramfs
- 302. nodev sysfs
nodev rootfs
nodev bdev
nodev proc msdos
nodev sockfs vfat
nodev pipefs nodev nfs
nodev nodev rpc_pipefs
anon_inodefs nodev fuse
nodev futexfs fuseblk
nodev tmpfs nodev fusectl
nodev inotifyfs
nodev devpts
ext3
nodev ramfs
- 305. class InotifyListener (threading.Thread):
global cv
def run ( self ):
global conversionQueue
wm = WatchManager() # Watch Manager
mask = IN_MOVED_TO | IN_CREATE # watched events
p = PTmp()
notifier = Notifier(wm, p)
wdd = wm.add_watch('/mnt/us/documents', mask, rec=True)
notifier.loop()
- 311. class DbusWatcher (threading.Thread):
global cv
def run ( self ):
global conversionQueue
cmd='/usr/bin/dbus-monitor --system'
pipe = subprocess.Popen(cmd, shell=True,
stdout=subprocess.PIPE).stdout
while 1:
line = pipe.readline()
if any(line.find(i) != -1 for i in ['usbPlugOut', 'resuming']):
for f in os.listdir('/mnt/us/documents'):
maybe_enqueue_file('/mnt/us/documents/'+f)
- 324. I was going to build and
show off a manga converter.