Register Guidelines E-Books Search Today's Posts Mark Forums Read

Go Back   MobileRead Forums > E-Book Readers > Amazon Kindle > Kindle Developer's Corner

Notices

Reply
 
Thread Tools Search this Thread
Old 07-25-2009, 06:35 AM   #1
rfog
Guru
rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.
 
Posts: 694
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:
  • Someone has to build a development environment for develop native Kindle apps from a Windows (or Linux into a vmWare virtual machine) cross environment. I can help in get gcc and other dev tools working but I can't help in build the other stuff because I do not know enough linux (and I don't want to know more).
  • Someone has to make the scripts to connect my app with Kindle internals and so.
  • Then I will put seriously to develop the content browser.
The CB (Content Browser) first version will be a file manager that will recognize Kindle files and will launch the desired viewer. A second version will open each file and inspect the metadata in order to be able to sort other way than by folder. It will have a plugin system (perhaps a text file with the description of the characteristics) to be able to add some other file types in order to give the possibility to read other formats (PDF, FB2 came to my mind). That's my current compromise.

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.
rfog is offline   Reply With Quote
Old 07-31-2009, 05:54 AM   #2
rfog
Guru
rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.
 
Posts: 694
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...
rfog is offline   Reply With Quote
Advert
Old 07-31-2009, 12:37 PM   #3
Sheikspeare
Groupie
Sheikspeare has a complete set of Star Wars action figures.Sheikspeare has a complete set of Star Wars action figures.Sheikspeare has a complete set of Star Wars action figures.
 
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.
Sheikspeare is offline   Reply With Quote
Old 08-02-2009, 04:56 AM   #4
rfog
Guru
rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.
 
Posts: 694
Karma: 2383012
Join Date: Aug 2007
Location: Schiedam (The Netherlands)
Device: Lots of eInk devices and iOS stuff
Quote:
Originally Posted by Sheikspeare View Post
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.
I need some linux experts. I'm not a linux expert, I can use linux as normal user and edit some easy scripts, but I'm not expert in internal working like system scripts and so. And I'm not profident in dealing with those kind of stuff, not in Winodws, less in Linux.

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.
rfog is offline   Reply With Quote
Old 08-02-2009, 06:28 AM   #5
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
Quote:
Originally Posted by rfog View Post
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'm not sure what development systems you are referring here.
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
ebs is offline   Reply With Quote
Advert
Old 08-02-2009, 02:27 PM   #6
rfog
Guru
rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.
 
Posts: 694
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...
rfog is offline   Reply With Quote
Old 08-02-2009, 02:49 PM   #7
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
Quote:
Originally Posted by rfog View Post
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...
1) They use Java micro edition + AWT microwindows port, it seems. Actual eInk access is done through stdandard Linux framebuffer device.
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
ebs is offline   Reply With Quote
Old 08-02-2009, 02:56 PM   #8
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
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).
ebs is offline   Reply With Quote
Old 08-02-2009, 03:28 PM   #9
rfog
Guru
rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.
 
Posts: 694
Karma: 2383012
Join Date: Aug 2007
Location: Schiedam (The Netherlands)
Device: Lots of eInk devices and iOS stuff
Quote:
Originally Posted by ebs View Post
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).
My problem here is I'm not a Java developer and I don't want to be one. However, as I can read in your responses, Kindle practically only have the kernel and the minimum libraries to get working java and all is done with java...

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.
rfog is offline   Reply With Quote
Old 08-02-2009, 03:52 PM   #10
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
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
ebs is offline   Reply With Quote
Old 08-02-2009, 04:13 PM   #11
rfog
Guru
rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.
 
Posts: 694
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?
rfog is offline   Reply With Quote
Old 08-02-2009, 04:23 PM   #12
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
Quote:
Originally Posted by rfog View Post
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?
Yes, this is possible. I'm pretty sure lab126 developers use some kind of Kindle emulator (and UI being written mostly in Java helps a lot). You will have to replace all JNI stuff, which is not a huge effort, but it can get complicated.

However, if you are asking, then most likely you won't be able to do this .
ebs is offline   Reply With Quote
Old 08-03-2009, 04:31 PM   #13
fogus
Member
fogus began at the beginning.
 
Posts: 19
Karma: 10
Join Date: Mar 2009
Device: Sony PRS-505
Quote:
The CB (Content Browser) first version will be a file manager that will recognize Kindle files and will launch the desired viewer.
What do you mean by "launch the desired viewer"? Would I plug the Kindle to my PC and view Kindle (DRMed?) files? Or is this a Kindle application that would allow viewing currently non-supported file types on the Kindle? Or is this a browser to list the Kindle content on the Kindle? Or is this a browser to list Kindle content on the PC?

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?).
fogus is offline   Reply With Quote
Old 08-03-2009, 04:42 PM   #14
rfog
Guru
rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.rfog ought to be getting tired of karma fortunes by now.
 
Posts: 694
Karma: 2383012
Join Date: Aug 2007
Location: Schiedam (The Netherlands)
Device: Lots of eInk devices and iOS stuff
Quote:
Originally Posted by fogus View Post
What do you mean by "launch the desired viewer"? Would I plug the Kindle to my PC and view Kindle (DRMed?) files? Or is this a Kindle application that would allow viewing currently non-supported file types on the Kindle? Or is this a browser to list the Kindle content on the Kindle? Or is this a browser to list Kindle content on the PC?
It will substitute the current Kindle file manager allowing folder view and folder sort (I will try to mimic the current content browse). And when user "click" on one book I will call the right viewer. Kindle programs are independent: one to view azk files, and so (AFAIK, I´ve not tested yet). This approach will allow in the future there might be other formats viewers.

Quote:
Originally Posted by fogus View Post
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?).
C is not C++. If you want to learn C and C++ first learn C++ and then C. Trust someone who brings 20 years programming in C and C++. C and C++ is learnt programming. The best book I've found ever to learn C++ is the last Stroustrup one: Programming: Principles and Practice Using C++
rfog is offline   Reply With Quote
Old 09-12-2009, 11:37 PM   #15
DairyKnight
Connoisseur
DairyKnight plays well with othersDairyKnight plays well with othersDairyKnight plays well with othersDairyKnight plays well with othersDairyKnight plays well with othersDairyKnight plays well with othersDairyKnight plays well with othersDairyKnight plays well with othersDairyKnight plays well with othersDairyKnight plays well with othersDairyKnight plays well with others
 
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.
DairyKnight is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Forum Jump

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


All times are GMT -4. The time now is 12:37 AM.


MobileRead.com is a privately owned, operated and funded community.