View Single Post
Old 01-20-2011, 04:33 AM   #1
sala
Junior Member
sala began at the beginning.
 
Posts: 2
Karma: 10
Join Date: Jan 2011
Device: Kindle 3
Kindlet Entwicklungstutorial

Hallo,
dies ist mein erster Post hier im Forum so verzeiht mir bitte mögliche Fauxpas.

Diese Erstellung von Kindlets wird hier Anhand von Windows 7, einem Kindle 3 Wifi und NetBeans erläutert.
Ich übernehme keine Haftung falls irgendwas bei euch schief geht!

1. Downloaden des Jailbreaks
1.1 Kindle über das USB Kabel mit dem Rechner verbinden
1.2 Kopieren der Install-Datei update_jailbreak_0.4.N_k3w_install.bin in das Root Verzeichnis des Kindles
1.3 USB-Kabel vom Kindle entfernen (der Jailbreak wird nun automatisch installiert)

2. Downloaden des USBNetwork Hacks
2.2 Kopieren der Install-Datei update_usbnetwork_0.30.N_k3w_install.bin in das Root Verzeichnis des Kindles
2.3 USB-Kabel vom Kindle entfernen (der Hack wird nun automatisch installiert)


3. Drück die "del" Taste auf dem Kindle
3.1 ";debugOn" im Feld eingeben (Ohne die ") und mit der Entertaste bestätigen
3.2 Erneut "del" drücken
3.3 Im Feld "~usbNetwork" eingeben (ohne die ") und mit der Entertaste bestätigen

4. Kindle wieder per USB mit dem Rechner verbinden
4.1 Er wird nun nicht mehr automatisch erkannt dafür soll nun ein Treiber installiert werden
4.1.1 Falls er diesen nicht automatisch erkennt wählt geht in den Gerätemanager von Windows
4.1.2 Dort taucht dann ein RNDIS/Ethernet Gadget auf, rechte Maus -> Treibersoftware aktualiseren
4.1.3 Nun "Auf dem Computer nach Treibersoftware suchen" auswählen
4.1.4 Nun "Aus einer Liste von Gerätetreibern auf dem Computer auswählen" auswählen
4.1.5 Dann Netzwerkadapter auswählen -> Microsoft Corporation -> "Remote NDIS based Internet Sharing Device

5. Nach der Aktualisierung befindet sich nun in den Windows Netzwerkverbindungen eine weitere Verbindung
5.1 Rechte Maustaste -> Eigenschaften -> Internetprotokoll Version 4 -> Eigenschaften
5.2 Dort eine IP-Adresse 192.168.2.* eingeben (wobei das * für die Zahlen 2 bis 254 steht) wählt eine davon
5.3 Subnetmask ist die 255.255.255.0

6. Installiert WinSCP
6.1 Startet WinSCP
6.2 Erstellt eine neue Verbindung
6.2.1 Rechnername: 192.168.2.2 (ip des Kindles)
6.2.2 Benutzername: root
6.2.3 Passwort kann leer gelassen werden
6.2 Nun Anmelden
6.2.1 Passwort abfrage einfach mit Enter bestätigen
6.2.2. Wenn ein Fehler wegen "Groups" etc kommt einfach ignorieren
6.3 Ihr seid nun auf dem Kindle

7. Zum Entwicklen benötigt ihr die Libraries des Kindles
7.1 Navigiert mit WinSCP nach /opt/amazon/ebook/lib und kopiert alle jar dateien in ein Verzeichnis auf eurem Rechner
7.2 Navigiert danach ebenfalls mit WinSCP nach /opt/amazon/ebook/sdk/lib und kopiert sie auch in ein Verzeichnis auf eurem Rechner

7.3 Kopiert die Datei developer.keystore in das Verzeichnis /var/local/java/keystore/

8. Öffnet nun eure bevorzugte Entwicklungsumgebung (ich werde hier NetBeans nutzen)
8.1 Erstellt eine neue Java-Applikation und nennt sie KindleBeispiel
8.2 Erstellt dort eine Klasse Main
8.3 Fügt dem Projekt die Kindlet-1.1.jar hinzu (diese habt ihr zuvor vom Kindle auf eurem Rechner kopiert)
8.4 Fügt nun in Main.java folgenden Code ein

package kindlebeispiel;

import com.amazon.kindle.kindlet.AbstractKindlet;
import com.amazon.kindle.kindlet.KindletContext;
import com.amazon.kindle.kindlet.ui.KLabel;
import java.awt.Container;

public class Main extends AbstractKindlet{

public void create(final KindletContext context) {
Container root = context.getRootContainer();
root.add(new KLabel("Hallo Welt!"));
}

public void destroy() {
}

public void start() {
}

public void stop() {
}
}

8.5 Sucht nach der Datei manifest.mf
8.6 Öffnet sie und ersetzt den vorhandenen Text mit folgendem:

Manifest-Version: 1.0
Implementation-Title: KindleBeispiel App
Implementation-Version: 0.2
Implementation-Vendor: EuerName
Network-Access-Grants: sponsored
Implementation-URL: http://irgendeineurl.de/
Amazon-Cover-Image: logo.jpg
Main-Class: kindlebeispiel.Main

8.7 Kompiliert nun das Projekt und lasst eine Jar Datei erstellen
(in NetBeans: rechte Maus auf das Projekt "Clean and Build" dann wechselt auf den Reiter Files öffnet
dort auch das Projekt -> Rechte Maus auf "build.xml" -> Run Target -> jar)

8.8 Öffnet nun die Kommandozeile von Windows
8.9 Führt dort nun jarsigner aus:
jarsigner -keystore "PFAD ZU EUREM KEYSTORE AUF EUREM RECHNER\developer.keystore" -storepass password "PFAD ZU EURER JAR\KindleBeispiel.jar" dktest
jarsigner -keystore "PFAD ZU EUREM KEYSTORE AUF EUREM RECHNER\developer.keystore" -storepass password "PFAD ZU EURER JAR\KindleBeispiel.jar" ditest
jarsigner -keystore "PFAD ZU EUREM KEYSTORE AUF EUREM RECHNER\developer.keystore" -storepass password "PFAD ZU EURER JAR\KindleBeispiel.jar" dntest

(Hierzu kann man sich auch eine bat Datei etc schreiben die dies automatisch für euch macht)

9. Nennt nun eurer KindleBeispiel.jar in KindleBeispiel.azw2 um

10. Auf dem Kinlde drückt ihr nun wieder "del" und gebt erneut "~usbNetwork" ein
10.1 Der Kindle wird nun wieder automatisch erkannt
10.2 Ihr kopiert nun die KindleBeispiel.azw2 in das documents verzeichnis auf dem Kindle
10.3 Trennen des Kabels vom Kindle
10.4 Die Anwendung KindleBeispiel App sollte nun auf eurem Kindle auftauchen


11. Wollt ihr die Anwendung nun erweitern schaltet wieder den usbNetwork ein
11.1 Zum Deployen müsst ihr stets das Projekt kompilieren und eine Jar erzeugen lassen
11.2 Ebenfalls muss die Jar mittels des jarsigner signiert werden und in azw2 umbenannt werden
11.3 Es kann jedoch nun über WinSCp die azw2 Datei auf den Kindle kopiert werden (in das Verzeichnis /mnt/us/documents)
Dort findet ihr dann auch die KindleBeispiel.azw2 (diese vorher löschen).
11.4 Jetzt könnt ihr ohne den network-modus auszustellen die Datei vom Kindle starten

12. Ihr findet in /mnt/us/developer/KindleBeispiel App/work/ eine crash.log falls das Kindlet Exceptions wirft
13. Ebenfalls werden log files (wenn ihr z.B. log4j benutzt) dort abgelegt


Ich hoffe das Tutorial hat ein wenig geholfen.

Grüße,
sala
Attached Files
File Type: zip developer.keystore.zip (2.4 KB, 424 views)
sala is offline   Reply With Quote