A few hacks related to the Kobo Touch.
Everything is explained (among others) here.
The issue encountered while playing with telnet, ssh and others over wifi is that the latter always gets disconnected after a few minutes.
One simple solution is to kill the nickel process which is responsible for this disconnection :
killall nickel. But this renders the Kobo unusable until
nickel is respawn or the Kobo restarted (with the
Another solution is to patch the
nickel program to remove the automatic disconnect "feature". The interesting file is
/usr/local/Kobo/liblibnickel.so.1.0.0. And the function responsible for disconnecting the wifi is
WirelessWatchdog::attemptToKill(void). Here is the assembly code given by IDA :
BL loc_3D42F4 jumps to the fuction
WirelessManager::off(bool), exactly what we want to prevent ! We only need to remove the jump to this function by replacing it with
NOP (the ARM instruction hex code
0x00000000 is equivalent to
NOP). So we open the file in a hexadecimal editor, jump to offset
0x0178B844 and replace the
AA 22 B1 EB by
00 00 00 00.
Of course, on a different version of the file, the place to patch can change. The sha1 hash of the file I modified this way is
60cdf6d96c7e05af06360b480517eba23dc09f82 (version 2.3.1). According to the few tests I made, this modification allows the wifi to stay active without any noticeable side effect.
Add to the file
/usr/local/Kobo/udev/plug the following lines :
/bin/busybox insmod /drivers/freescale/usb/gadget/arcotg_udc.ko /bin/busybox insmod /drivers/freescale/usb/gadget/g_ether.ko ifconfig usb0 192.168.2.2
g_ether.ko is may not be available for the freescale chipset. It can be downloaded here. If this comment disappears, it is also available here.
When the Kobo is plugged into the computer, the network interface
usb0 is created. It should be configured with the address
192.168.2.1. The Kobo can be accessed at the address