Mobileread
KindleVNC: A kindlet to view and control your remote PC desktop
#11  Mario1up 10-03-2011, 02:56 PM
I really like this application. Unfortunately, it doesn't work over 3G, which makes sense because you said you only have a Kindle with WiFi. The program crashes upon exit when using 3G, causing an automatic restart.
Reply 

#12  PoP 10-03-2011, 03:25 PM
@tsinghoo Thanks. Your VNC client is a great Kindlet implementation. It would be so nice if you could share the java sources.
I particularly liked 1) the virtual keyboard 2) using CTRL to toggle moving cursor or mouse pointer 3) supporting passwords at login.




@fau, @thomass
After unpacking the install bin, I manualy installed the Kindlet, since I wanted to see which files were modified in the file system.

In a SSH session,

1) I Merged tsinghoo.keystore to my /var/local/java/keystore/developer.keystore
For convenience, I have attached my own keystore show attachment » which contains dev keys for all developers of this forum to date (except for vanhoa, the chinese chess developer, which I don't know the keystore password).

2) I updated /opt/amazon/ebook/security/external.policy granting to
"*:80-" the following additional SocketPermissions.
Spoiler Warning below







/*
Kindlet permissions
*/
keystore "kindlet.keystore", "JKS";

// Permissions all Kindlets should have
grant signedBy "Kindlet" {
permission java.net.SocketPermission "*:80-", "accept, connect, listen, resolve";

permission java.util.PropertyPermission "java.home", "read";
permission java.util.PropertyPermission "runtime_exec", "read";
permission java.util.PropertyPermission "kindlet.home", "read";

/* Standard Java properties. This list only covers properties that do not unnecessarily leak
* information. user.dir, user.home and user.name are explicitly not permitted.
* See http://java.sun.com/javame/reference/apis/jsr217/java/lang/System.html#getProperties()
*/
// Information about the version of Java the application is running on
permission java.util.PropertyPermission "java.version", "read";
permission java.util.PropertyPermission "java.vendor", "read";
permission java.util.PropertyPermission "java.vm.specification.version", "read";
permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
permission java.util.PropertyPermission "java.vm.specification.name", "read";
permission java.util.PropertyPermission "java.vm.version", "read";
permission java.util.PropertyPermission "java.vm.vendor", "read";
permission java.util.PropertyPermission "java.vm.name", "read";
permission java.util.PropertyPermission "java.specification.version", "read";
permission java.util.PropertyPermission "java.specification.vendor", "read";
permission java.util.PropertyPermission "java.specification.name", "read";
permission java.util.PropertyPermission "java.verbose", "read";

// For code that behaves differently under Windows. The version of Linux is already available
// externally due to open source licenses.
permission java.util.PropertyPermission "os.name", "read";
permission java.util.PropertyPermission "os.arch", "read";
permission java.util.PropertyPermission "os.version", "read";

// File, path and line separators
permission java.util.PropertyPermission "file.separator", "read";
permission java.util.PropertyPermission "path.separator", "read";
permission java.util.PropertyPermission "line.separator", "read";
};

// Permissions needed by Kindlets that can use the network
grant signedBy "KindletNetworkSupport" {
// Network access by Kindlets must be controlled
permission com.amazon.kindle.kindlet.internal.net.security.Ne tworkAccessPermission "createConnection";
};

// Permissions needed by the Java framework &/or Kindlets that have a UI
grant signedBy "KindletInteractionSupport" {
/* Required by Component#frameBufferSync */
permission java.util.PropertyPermission "awt_fb_enable", "read";

/* E-ink framebuffer specific properties. */
permission java.util.PropertyPermission "fiona_fb_flag", "read";
permission java.util.PropertyPermission "fiona_fb_command", "read";

permission java.util.PropertyPermission "fiona_partial_update_upper_x", "read";
permission java.util.PropertyPermission "fiona_partial_update_lower_x", "read";
permission java.util.PropertyPermission "fiona_partial_update_upper_y", "read";
permission java.util.PropertyPermission "fiona_partial_update_lower_y", "read";

permission java.util.PropertyPermission "fiona_screen_effect", "read";

/* The event queue that Kindlet has access to is in its own AppContext. */
permission java.awt.AWTPermission "accessEventQueue";

/* Properties provided by the PBP. See
* http://java.sun.com/javame/reference/apis/jsr217/doc-files/properties.html
*/
permission java.util.PropertyPermission "java.awt.AlphaComposite.SRC_OVER_.isRestricte d", "read";
permission java.util.PropertyPermission "java.awt.Graphics2D.setStroke.BasicStroke.isRestr icted", "read";
permission java.util.PropertyPermission "java.awt.event.MouseEvent.isRestricted", "read";
permission java.util.PropertyPermission "java.awt.event.MouseEvent.supportLevel", "read";
permission java.util.PropertyPermission "java.awt.event.KeyEvent.isRestricted", "read";
permission java.util.PropertyPermission "java.awt.event.KeyEvent.supportMask", "read";
permission java.util.PropertyPermission "java.awt.Component.setCursor.isRestricted", "read";
/* The optional permissions for java.awt.Frame are not granted since Frame is not whitelisted. */


};

// Permissions needed by 3rd party libs provided with the SDK
grant codeBase "file:///opt/amazon/ebook/sdk/lib/-" {
permission java.util.PropertyPermission "org.w3c.dom.DOMImplementationSourceList", "read";
};


3) And I copied the KindleVNC.azw2 Kindlet to my documents directory.

Thus backing up your developer.keystore and your java external.policy prior to installing the bin is all you need to manualy uninstall the application later. Keeping the updated keystore and policy will not hurt and you can simply just delete the KindleVNC.azw2 to uninstall.
Reply 

#13  PoP 10-03-2011, 06:07 PM
Quote PoP
...
For convenience, I have attached my own keystore show attachment » which contains dev keys for all developers of this forum to date (except for vanhoa, the chinese chess developer, which I don't know the keystore password).
...
Update: I have managed to finaly add vanhoa dev keys here is my updated keystore: show attachment »

Thanks to http://conshell.net/wiki/index.php/Keytool_cacert_extraction which showed me how to fight keytool and openssl : the trick consisting in extracting the 3 .der certificates from a vanhoa.keystore (having an unknown password) and reimporting them into a new.keystore which I set the password to password which I could finaly merge to the developer.keystore.
Reply 

#14  Mario1up 10-03-2011, 10:07 PM
I found that the ideal resolution for this app is 800x560. The top bar takes up 40 pixels. If you can set custom resolutions on your computer, I suggest doing it for this.

EDIT: Also, a couple feature requests. Could you make Alt be alt on the server and make the page forward/back buttons scroll?
Reply 

#15  thomass 10-03-2011, 10:12 PM
Quote PoP
@tsinghoo Thanks. Your VNC client is a great Kindlet implementation. It would be so nice if you could share the java sources.
I particularly liked 1) the virtual keyboard 2) using CTRL to toggle moving cursor or mouse pointer 3) supporting passwords at login.




@fau, @thomass
After unpacking the install bin, I manualy installed the Kindlet, since I wanted to see which files were modified in the file system.

In a SSH session,

1) I Merged tsinghoo.keystore to my /var/local/java/keystore/developer.keystore
For convenience, I have attached my own keystore show attachment » which contains dev keys for all developers of this forum to date (except for vanhoa, the chinese chess developer, which I don't know the keystore password).

2) I updated /opt/amazon/ebook/security/external.policy granting to
"*:80-" the following additional SocketPermissions.
Spoiler Warning below







/*
Kindlet permissions
*/
keystore "kindlet.keystore", "JKS";

// Permissions all Kindlets should have
grant signedBy "Kindlet" {
permission java.net.SocketPermission "*:80-", "accept, connect, listen, resolve";

permission java.util.PropertyPermission "java.home", "read";
permission java.util.PropertyPermission "runtime_exec", "read";
permission java.util.PropertyPermission "kindlet.home", "read";

/* Standard Java properties. This list only covers properties that do not unnecessarily leak
* information. user.dir, user.home and user.name are explicitly not permitted.
* See http://java.sun.com/javame/reference/apis/jsr217/java/lang/System.html#getProperties()
*/
// Information about the version of Java the application is running on
permission java.util.PropertyPermission "java.version", "read";
permission java.util.PropertyPermission "java.vendor", "read";
permission java.util.PropertyPermission "java.vm.specification.version", "read";
permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
permission java.util.PropertyPermission "java.vm.specification.name", "read";
permission java.util.PropertyPermission "java.vm.version", "read";
permission java.util.PropertyPermission "java.vm.vendor", "read";
permission java.util.PropertyPermission "java.vm.name", "read";
permission java.util.PropertyPermission "java.specification.version", "read";
permission java.util.PropertyPermission "java.specification.vendor", "read";
permission java.util.PropertyPermission "java.specification.name", "read";
permission java.util.PropertyPermission "java.verbose", "read";

// For code that behaves differently under Windows. The version of Linux is already available
// externally due to open source licenses.
permission java.util.PropertyPermission "os.name", "read";
permission java.util.PropertyPermission "os.arch", "read";
permission java.util.PropertyPermission "os.version", "read";

// File, path and line separators
permission java.util.PropertyPermission "file.separator", "read";
permission java.util.PropertyPermission "path.separator", "read";
permission java.util.PropertyPermission "line.separator", "read";
};

// Permissions needed by Kindlets that can use the network
grant signedBy "KindletNetworkSupport" {
// Network access by Kindlets must be controlled
permission com.amazon.kindle.kindlet.internal.net.security.Ne tworkAccessPermission "createConnection";
};

// Permissions needed by the Java framework &/or Kindlets that have a UI
grant signedBy "KindletInteractionSupport" {
/* Required by Component#frameBufferSync */
permission java.util.PropertyPermission "awt_fb_enable", "read";

/* E-ink framebuffer specific properties. */
permission java.util.PropertyPermission "fiona_fb_flag", "read";
permission java.util.PropertyPermission "fiona_fb_command", "read";

permission java.util.PropertyPermission "fiona_partial_update_upper_x", "read";
permission java.util.PropertyPermission "fiona_partial_update_lower_x", "read";
permission java.util.PropertyPermission "fiona_partial_update_upper_y", "read";
permission java.util.PropertyPermission "fiona_partial_update_lower_y", "read";

permission java.util.PropertyPermission "fiona_screen_effect", "read";

/* The event queue that Kindlet has access to is in its own AppContext. */
permission java.awt.AWTPermission "accessEventQueue";

/* Properties provided by the PBP. See
* http://java.sun.com/javame/reference/apis/jsr217/doc-files/properties.html
*/
permission java.util.PropertyPermission "java.awt.AlphaComposite.SRC_OVER_.isRestricte d", "read";
permission java.util.PropertyPermission "java.awt.Graphics2D.setStroke.BasicStroke.isRestr icted", "read";
permission java.util.PropertyPermission "java.awt.event.MouseEvent.isRestricted", "read";
permission java.util.PropertyPermission "java.awt.event.MouseEvent.supportLevel", "read";
permission java.util.PropertyPermission "java.awt.event.KeyEvent.isRestricted", "read";
permission java.util.PropertyPermission "java.awt.event.KeyEvent.supportMask", "read";
permission java.util.PropertyPermission "java.awt.Component.setCursor.isRestricted", "read";
/* The optional permissions for java.awt.Frame are not granted since Frame is not whitelisted. */


};

// Permissions needed by 3rd party libs provided with the SDK
grant codeBase "file:///opt/amazon/ebook/sdk/lib/-" {
permission java.util.PropertyPermission "org.w3c.dom.DOMImplementationSourceList", "read";
};


3) And I copied the KindleVNC.azw2 Kindlet to my documents directory.

Thus backing up your developer.keystore and your java external.policy prior to installing the bin is all you need to manualy uninstall the application later. Keeping the updated keystore and policy will not hurt and you can simply just delete the KindleVNC.azw2 to uninstall.
Thanks for the info about uninstall info and keystore file. It is good to have a safe way for uninstall in case we need. I think your keystore file should be included into the hack list thread also.
Reply 

#16  tsinghoo 10-03-2011, 11:16 PM
PoP's explaination about the uninstall problem is totally right.

There is no need to run a uninstall update and then restart your kindle in order to remove KindleVNC. You can just remove it as to simply delete an article.

I am working on more comfortable keyboard/mouse control.

Thank you all for your feedback.
Reply 

#17  PoP 10-04-2011, 02:01 PM
Quote thomass
I think your keystore file should be included into the hack list thread also.
Will do.
Reply 

#18  Rockets00 10-20-2011, 10:52 AM
I have 3G enabled and still connection timeout in 30 seconds. Kindle 2 over USB.
Reply 

#19  hawhill 10-20-2011, 02:39 PM
I think the Kindle firmware version 2 is more aggressively dropping TCP connections. I had the very same problem with the kindlevncviewer tool (non-Kindlet), so I made it using an endless loop of reconnection tries, and so in the best case the user won't notice. However, connections are dropped a lot. I think Amazon did this to prevent long-time TCP connections which would eat battery by preventing proper sleep modes. Some TCP ports are excluded from this cancellation, so that's why - say - via an USB network connection SSH works uninterrupted.

Maybe OP can adopt such a mechanism for his variant of VNC viewer.
Reply 

#20  Rockets00 10-20-2011, 03:49 PM
i tried ports 5900 and 5901. Which are excluded?
Reply 

 « First  « Prev Next »  Last »  (2/6)
Today's Posts | Search this Thread | Login | Register