I made some spare time to fix a little something I wanted to do for a long time. I love my KT - especially the fact that it is wifi capable. I use it in the university to download lecture notes.

What really annoyed me was the fact that the KT was so keen on "phoning home" to kobo and google when it get's a connection. That was easily fixed by modifying /etc/hosts.

What I had not found in the web so far was the fact that the KT verifies that it's wifi connection is running by loading "www.apple.com/library/test/success.html" every time the wifi is started. I really do not see why I should inform apple about where and when I start my kobo!

Unfortunately fixing this is not as easy as just blocking it. If the KT cannot load it's test page, it says there was a connection error and wants me to choose a new access point.

The idea is to server the success.html page from an KT internal webserver, thus enabling it to always find the Wifi up and running I did this by compiling shttpd (http://garr.dl.sourceforge.net/proje...pd-1.42.tar.gz) for my ARMv7 KT. Mongoose and thttpd would also do, but they can't be started using inetd. Thumbs up for mongoose by the way - I use it in a couple of other projects and am really happy with it.

I suppose you already might have the ftp and telnetd running here. If not, there are tons of ressource about how to do that on the web and in this forum.

Now, after compiling shttpd I placed it in /mnt/onboard/.local/bin (it's where all my binaries end up). Compiling it requires Sourcery G++ Lite 2010q1-202 for ARM GNU/Linux. But other than that, there where no real tweaks. Next, I modified /etc/inetd.conf as follows:

Next point: 127.0.0.1 should be the loopback device... but my KT does not create this device at boot. Either in your local bootscript called from /etc/init.d/rcS or in the file itself append the following to create the loopback device at boot:

Code:

# Create lo device
ifconfig lo 127.0.0.1

Reboot... and voila. No more phoning home to apple for connection checks Hope this helps someone.

By the way this gave me a nice idea. Since the KT plugin structure is no longer maintained, it makes it kind of hard to start you own programs while nickel holds control over the KT. Since mongoose, shttpd and thttpd have cgi support, one could in theory create a local webpage using php (after getting it compiled...) which kills nickel on demand and starts the application of your choice. In my eyes this is easier then compiling QT embedded plugins...

Addendum: I made some more spare time (and am feeling really bad about it) to try the php idea. I needed to crosscompile libz and libxml2 for this point, but it is obviously running ^^

I will work on getting sqlite support on the KT. I believe that in connection with the Kobo_Reader.sqlite database that manages the Kobo's UI Functions this might open up some neet possibilities (ie. reclassifying stuff as newspapers without a sync/computer).

If anyone but me is interested in this stuff, I can of course make the crosscompiled binaries/libs for zlib, libxml2, php and shttpd available.

KT verifies that it's wifi connection is running by loading
"www.apple.com/library/test/success.html" every time the wifi is started.

If the KT cannot load it's test page, it says there was a connection error and wants me to choose a new access point.

So that may explain why the KT sometimes throws away the passphrase for an access point when trying to connect to Wifi: the access point connects but no response comes back from http://www.apple.com/library/test/success.html within the required time.

Having details of the KT http client blithely handed off to Apple is bad enough, but having on occasion to re-enter the WPA2 passphrase again is highly annoying.

Is there no way to redirect the request from www.apple.com/library/test/success.html to another http server, for example a local network server, to return a "success.html"? That would avoid the need to hack the KT with an http webserver.

yes, that is absolutely correct. That was my first setup as well, but of course it only worked in my own local network which was not enough for me.

Here's how:

You need a webserver (anything will do, even shttpd, mongoose, thttpd or go big with lighttpd, apache, etc.). Even a own hosted site with you provider will do.

Create a path /library/test on you webroot and copy the page www.apple.com/library/test/success.htm into that folder. You should now be able to call http://<yourhost>/library/test/success.htm from any browser in your local subnet.

Next you need an intercepting dns server in your local subnet. I use dnsmasq, but again, any other will do too. Point www.apple.com to the IP of you webserver.

When you start the kobo WiFi in your local subnet, you should see a call to your success,htm page in the logs of the webserver.