View Single Post
Old 07-24-2009, 12:17 AM   #4
ebs
Zealot
ebs will become famous soon enoughebs will become famous soon enoughebs will become famous soon enoughebs will become famous soon enoughebs will become famous soon enoughebs will become famous soon enough
 
Posts: 100
Karma: 629
Join Date: Jun 2009
Location: California, USA
Device: Kindle DX
Here is some information about "todo" server.

Periodically Kindle connects to a special "todo" web service and downloads list of items it then "executes". These items can be download/upload requests (to get a new book you just bought, upload syslog, etc), there is also a delete request (this is what I think was used in the recent debacle)... Firmware updates are probably also pushed this way.

Default location is https://todo-g7g.amazon.com/FionaTodoListProxy.
Kindle uses "getItems" request to download "todo"list:
https://todo-g7g.amazon.com/FionaTod...10&prl_rev=402
When all items are processed, "removeItems" request is used to clean-up todo list.

You can completely disable this functionality (although I don't recommend this) by redirecting all requests to some other location. I chose to direct all requests to a fake server running on my host which
emulates (to a some extent) standard Amazon services. To do this, edit /opt/amazon/ebook/config/framework.mario.conf:

These are my changes (CDE_SERVER and uploadServer point to another webservices - metadata sync/download and upload servers).
Code:
TODO_SERVER : http://192.168.2.1/FionaTodoListProxy/
CDE_SERVER : http://192.168.2.1/FionaCDEServiceEngine/
uploadServer : http://192.168.2.1/DeviceEventProxy/
Also, edit HTTP_NON_PROXY_HOST, otherwise firmware will go through amazon proxy:
Code:
HTTP_NON_PROXY_HOST : *.amazon.com|*.images-amazon.com|192.168.2.1
Now, you can use your fake webservice (I used lighthttpd + simple bash CGI scripts) to feed real data after you reviewed it. To get it, use default URLs with your favorite web browser with client SSL certificate assigned to your Kindle (this is how Amazon authenticates you). You can find that certificate in /var/local/java/prefs/certs. Install it into your browser (use password "pass"). BTW, with this approach you can have a Kindle-like software running on your PC, although Amazon can always disable such access if it wants to.

Somebody can even write a simple http/https proxy running locally on Kindle doing some kind of filtering .

Personally, I don't really care about Amazon deleting my books (I always make sure I take full control of stuff I buy from them - nothing can compete with good old backups ), my only worry is unexpected firmware update which can interfere with my hacking.
However, I have proof of concept hack that disables remote ebook removal, I've been running it since last weekend and it doesn't seem to break anything for me. I can post firmware update here if somebody thinks it will be useful.
ebs is offline