07-25-2009, 06:35 AM | #1 |
Guru
Posts: 695
Karma: 2383012
Join Date: Aug 2007
Location: Schiedam (The Netherlands)
Device: Lots of eInk devices and iOS stuff
|
Proposal for a Content Browser with Folders
Hello all.
I'm a C/C++ developer and I compromise myself and in public to create a native application for both Kindle devices (2 and DX). However I need some help. I'm a Windows guy that sometimes do firmware with no OS. However I've done some Kiosk mode apps in Linux, then I think I'm able to build a Content Browser if I got some help from the comunity. I'm not a script or java guy and those stuff makes me headache and I'm not a seasoned linux developer. I can, for example, with a lot of effort, get installed a distro and being able to work with it (I was a Slackware man, then a Debianite and after that a Gentooza boy -only as normal user with some difficulties on get working my system). By the way I hate scripts, I hate perl, php, python, java... My idea can be resumed in some steps:
Future possible stuff could be other viewers etc. To not break Kindle, I think CB will be in public area (/mnt/us/programs for example) and the boot code script will search for a cb program or script in that folder and if not present, launch the original Amazon CB. Then the installation patch only will modify that init script and will be easly undone to accept official upgrades. This stuff are the things that I need someone do for me. My CB will upgrade itself if it finds some kind of upgrade file. It will be capable to launch the original amazon CB, and launch the original Amazon mobi viewer when opening the AZW and MOBI files. That's my proposal. All code will be GPL 3.0, and all MUST be documented. Tasks to do in first term: - Build a dev environment. - Build a patch to change the default CB - Build a patch to change the default CB and enable USB terminal (to debug). - Build a system to be able to copy via terminar or other way in order to avoid copy new version, reboot Kindle and then debug. - Generate a tiny documentation of development APIs available (what libraries are available, etc). - Investigate how to put stuff in screen. - Some artwork. - The CB itself. Well, this is my proposal. Coments and volunteers are welcome. |
07-31-2009, 05:54 AM | #2 |
Guru
Posts: 695
Karma: 2383012
Join Date: Aug 2007
Location: Schiedam (The Netherlands)
Device: Lots of eInk devices and iOS stuff
|
If nobody is interested, nothing happens, I do not do it, period. I have other things to entertain, and a hack Kindle is not one of my highest priorities, but considered that it could have been useful to the community...
|
Advert | |
|
07-31-2009, 12:37 PM | #3 |
Groupie
Posts: 181
Karma: 290
Join Date: Jul 2009
Device: PR-505 / Kindle DX
|
I think many (like me) are out of their league on this. You're right that it would have a huge benefit. I'm not sure how I can be of help.
|
08-02-2009, 04:56 AM | #4 | |
Guru
Posts: 695
Karma: 2383012
Join Date: Aug 2007
Location: Schiedam (The Netherlands)
Device: Lots of eInk devices and iOS stuff
|
Quote:
I know Ebs and some other guys (for example, Savory author has be able to compile KDE into Kindle) have development sistems mounted with Kindle but it seems it is a secret stored in Area 51... instead of be a comunity option... I have no desire to stay several months studying something that it will serve only to my intention to do something for the Kindle knowing that there are people who already have it done. This is not the idea of incremental research or the opensource community, let alone to invent three times the wheel. I know that the issue may be dangerous legally speaking, but so is what has been published so far. |
|
08-02-2009, 06:28 AM | #5 | |
Zealot
Posts: 100
Karma: 629
Join Date: Jun 2009
Location: California, USA
Device: Kindle DX
|
Quote:
If you mean ARM cross tools - I personally use ELDK to build small native apps. Everthing else - just Kindle itself and standard Java stuff (nothing even ARM specific). I use IDA to disassemble java files, jasmine to assemble java byte code back, jad to get a rough decompiled sources and standard Sun JDK (forced to 1.4 version) for compilation. All this done on a MacBook Pro running Linux |
|
Advert | |
|
08-02-2009, 02:27 PM | #6 |
Guru
Posts: 695
Karma: 2383012
Join Date: Aug 2007
Location: Schiedam (The Netherlands)
Device: Lots of eInk devices and iOS stuff
|
Ebs, then if I compile with ELDK, the result will run in a Kindle?
Can you answer to those quesions? 1.- What "toolkit" they use to print to screen? 2.- How do you save and debug your modified programs? Compile, put in internal storage and then reboot? 3.- Do you have a way to have network and internal memory at same time? 4.- Have you identified how to deal with buttons? 5.- Are you doing any kind of content browser or similar? Thanks in advance... |
08-02-2009, 02:49 PM | #7 | |
Zealot
Posts: 100
Karma: 629
Join Date: Jun 2009
Location: California, USA
Device: Kindle DX
|
Quote:
2) If I just want to run some new stuff, e.g. small C program, then I just compile it with a cross compiler (ARM ELDK), copy it to the Kindle using scp, and run it using one of the ssh sessions. If I want to replace some of UI stuff (e.g. my screensaver hack), I replace some classes in one of standard JAR files, replace it on Kindle (again using scp to copy it) and then restart UI (/etc/init.d/framework restart). There is no need to reboot anything. 3) I'm not sure what you are asking here. You cannot have USB network and USB mass storage at the same time, but it's not really needed. When you have the network, you can easily copy files to/from Kindle 4) You have to reverse engineer Java stuff, as far as I can tell, keyboard events are handled in standard AWT way. At the low level - it's just standard Linux event interface, nothing fancy. 5) No |
|
08-02-2009, 02:56 PM | #8 |
Zealot
Posts: 100
Karma: 629
Join Date: Jun 2009
Location: California, USA
Device: Kindle DX
|
I want to emphasize one thing. You have to reverse engineer anything only if you want to slightly modify existing Kindle Java UI.
All low-level hw access is done through standard Linux interfaces, and full Linux source code is available. Kindle is not a locked platform so you can easily replace all firmware with your own, however this is really a big task, and frankly, Kindle hw is not very impressive to justify such an effort (at least for me). |
08-02-2009, 03:28 PM | #9 | |
Guru
Posts: 695
Karma: 2383012
Join Date: Aug 2007
Location: Schiedam (The Netherlands)
Device: Lots of eInk devices and iOS stuff
|
Quote:
In relation to 4th question I din't know scp to copy via network connection (), then my big and one of my main problems is solved... However, dealing directly with framebuffer seems a lot of low level stuff... Perhaps svgalib or other graphical lib could be compiled for Kindle. |
|
08-02-2009, 03:52 PM | #10 |
Zealot
Posts: 100
Karma: 629
Join Date: Jun 2009
Location: California, USA
Device: Kindle DX
|
I'm not a Java developer either (I do embedded Linux for a living) but that the price you pay if you want to quickly hack something up for Kindle
|
08-02-2009, 04:13 PM | #11 |
Guru
Posts: 695
Karma: 2383012
Join Date: Aug 2007
Location: Schiedam (The Netherlands)
Device: Lots of eInk devices and iOS stuff
|
Well, I think I'm going to do something with Java... Can I develop and run in PC and only in last stages copy to the K?
|
08-02-2009, 04:23 PM | #12 | |
Zealot
Posts: 100
Karma: 629
Join Date: Jun 2009
Location: California, USA
Device: Kindle DX
|
Quote:
However, if you are asking, then most likely you won't be able to do this . |
|
08-03-2009, 04:31 PM | #13 | |
Member
Posts: 19
Karma: 10
Join Date: Mar 2009
Device: Sony PRS-505
|
Quote:
I'm a Windows guy who is learning Linux (Slackware, Centos, Debian) as we speak. I do Python and Java programming and I really want to learn C/C++ (suggestions? books? video courses?). |
|
08-03-2009, 04:42 PM | #14 | ||
Guru
Posts: 695
Karma: 2383012
Join Date: Aug 2007
Location: Schiedam (The Netherlands)
Device: Lots of eInk devices and iOS stuff
|
Quote:
Quote:
|
||
09-12-2009, 11:37 PM | #15 |
Connoisseur
Posts: 63
Karma: 2600
Join Date: Oct 2008
Device: PRS-505
|
The easiest way I can see to make a context browser is to replace the built-in
'minesweep' and GoMoku games with user java code. It's safe, too, because that's not a key component in the system. Those two games lie in the msp.jar booklet file. If somehow we could figure out the interface to design a booklet, we can simply replace that file as a trap to our own launcher. To test the code, simply mount --bind a copy of the system booklet dir on your /mnt/us/. By restarting everything will be resetted and you're not risking bricking your device. /test/testbooklet.jar is a good start to learn how booklets are implemented. I'm on top of this, but unfortunately I'm not a Java expert, either, and I'm having a hard time with the obfusacated code. Hope someone with more experience could help. |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Readers with Browser and content | sniffingratty | Which one should I buy? | 7 | 04-22-2010 09:52 PM |
Folders! I've got folders! - A short review of the BeBook Mini | Elsi | BeBook | 10 | 09-26-2009 02:47 AM |
Folders on 2 and DX through the Browser? | slm | Amazon Kindle | 4 | 07-31-2009 12:23 PM |
Simple browser scripting for content? | mphuie | Workshop | 2 | 01-29-2008 08:38 PM |
Folders for Displaying Kindle E-Book Content | Kruskal | Amazon Kindle | 4 | 01-24-2008 06:40 PM |