Hello There, Guest! Register
Enjoy our site and services? You may donate to help fund server and domain costs. Donate Here for special benefits. You have donated $

Someone has taken over the domain, so the site will continue!


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[App] JavaInnotabCustomiser Released!
#1
Ok. The first release is here!

All releases should be available for now via;

JavaInnotabCustomiser Downloads

Obviously go for the most recent release (only one there right now though).

Translations: Given that there is a big French speaking community here, if anyone wants to offer translation services, then PM me and I can send over a file with all of the text that [/i][/font]needs translation! Or any other language for that matter Wink

Requirements:
Java 1.6 or higher

Install:
Just put the JAR file somewhere you want it and (assuming that you have Java properly installed!) double click the JAR and it will run automatically.

If you need to run manually, make sure that you have a JRE 1.6+ in your path (assuming you know how to do this...) and from a command line/console type;
java <path_to_install>JavaInnotabCustomiser-<version_you_downloaded>.jar

Note: If you are running on a Mac and it complains that the file is from an unknown source, so won't open it; right click on it and choose "Open" from the popup - you will then be given the option to override by clicking the "Open" button on the dialog. Should only happen on the first run. If you get similar on the other OS's I'm sure you can figure it out!

The app writes two files to whereever you have put the JAR file. If it cannot write them there it will try to write them to your home folder. If it cannot write to either location, it will still work, but will be unable to save configuration options or log files...
  • The configuration file contains your preferred media locations, window sizes etc. and is a standard Java Properties file, so fully readable.
  • The log file by default logs in DEBUG mode (lots of messages). It is overwritten on each new run to avoid it getting too big. So; if you have a problem, make sure you get a copy of the log file before running the app again!

Platforms:
It has been written to run on all platforms (hopefully) but currently only tested on a MacBook. The only real difference that there should be is when finding your Innotabs.

On a Mac it looks like removable media are normally mounted in the /Volumes folder.
On Windows they show up as new drive letters.
On Linux it varies. In my experience they could appear in /mnt, /mnt/<username>, /media, or /media/<username>. Hence you may need to find the correct location. Basically you need to navigate to the folder where removable devices will appear.
The app will search for folders in there that look like Innotabs (i.e. contain a subfolder called "LLN") and only display those. You can click the Refresh button to make it search in the selected folder again (if you've only just plugged in the Innotab for example).
Obviously you will need read/write access to whatever/wherever the device is mounted to (not usually a problem on Windows or most others unless you have a very specific setup).

Supported Models
Written to hopefully support all known models, but it has only been tested against a 3S! - so any feedback on the other models would be welcome!
  • Innotab 1
  • Innotab 2 / Storio 2
  • Innotab 2S / Storio 2S
  • Innotab 3 / Storio 3
  • Innotab 3S / Storio 3S

Overview
The app does not care whether you plug the device into the computer via USB, or whether you just plug in the Micro SD card directly to the computer. I have found it easier to just plug the device in however as you can just update it directly.

Current media support is for;
  • E-Books
  • Games (captured ROMs or Folder based games)
  • Music
  • Videos

Current functions include;
  • Manual entry of UnitEID for devices that need it.
  • Auto-scan for UnitEID on connected devices (you must have at least one file already on there with a UnitEID - i.e. have transferred an MP3 via Learning Lodge!)
  • Support for multiple profiles (models / UnitEIDs) on the same card - so that the card can be setup for and used in multiple devices.
  • Copy media to Device
  • Copy media from Device
  • Delete media on Device
  • Update basic metadata (name, curriculum/author/description) on both local copies of media and media located on the Device.
  • Update Icons for all media types on both local copies of media and media located on the Device.

Notes on how it does things;
  • When updating media on the Device, it directly updates the relevant database/tables based on the device profile you are using (i.e. it picks the right version of the database based on what you've told it, ensures UnitEIDs are updated where needed, and knows the difference between the main and video databases!
  • When updating media information stored locally, it stores the information in a text file with the same name as the media item (xxx.txt) similar to/compatible with the AutoDB format. Icons are by preference always saved as PNG files with the same name as the media item.
  • When transferring folder based media from the device (E-Books, non-ROM games, etc.) the App will store them locally as a ZIP file to keep things tidy. The file has a different extension (*.ebkz for e-books, *.gamz for games) but is just a simple zip file. If your archive app won't read it, just change the extension to .zip (but do change it back again afterwards). The app automatically expands when transferring back to the device.
  • When changing icons, you can select any image (PNG,JPG,GIF,BMP) and it will scale and adjust it to the correct size and format for the relevant media. If the image is not square, then it will be stretched into a square! Hence you may want to do a little editing first. Might improve this later.

How to use it:
I will put a more detailed UserGuide in the download area linked to above soon. Brief guide however;

When it starts;
  • The Top section allows you to select a device and gives basic info about it.
  • The main section contains a tab for each Media type (Books, Games, Music, Videos)

Each Media tab contains;
  • Left section is local files. You can navigate to a folder containing the media type in question. It should only list files that are correct for the media type (i.e. in Music it will only list MP3s, in Games it will list .bin files, folders that appear to contain games, and compressed game archives .gamz). Media will be shown with attached thumbnails if available.
  • When you select an item from the list, the details will be updated in the bottom panel below the list. From there you can edit the metadata (name etc) and update the thumbnail image.
  • Right section is files on the device. Nothing will be shown there until you have selected and setup a device. Exactly the same as for local files otherwise. If you have configured multiple "Device Profiles" you can switch between them using the dropdown list at the top of this section.
  • The 3 buttons in the middle allow you to manage files;
    • >> = transfer selected files from your computer to the device
    • << = transfer selected files from your device to your computer
    • X = delete selected files from device (make sure you have a copy first!)

Selecting and Setting up a Device:
  • Click the "Select Device" button in the top section
  • If necessary, navigate to wherever removable media normally appear on your computer (see earlier notes).
  • If you have not already done so, plug in your device/SD card and wait for it to be registered on the computer.
  • Clicking the "Refresh" button will make it look for devices again.
  • The list on the left will ONLY show things that look like Innotab devices - i.e. folders/drives which contain an LLN subfolder and one of the databases. Therefore you MUST have connected the device via Learning Lodge at least once so that the SD card is initialised correctly for the device in question!
  • Once you see your device, select it from the list.
  • Details about the device are listed on the right.
  • You must create at least one Device Profile so that the software knows what model it is, and the UnitEID if one is needed. Click the "Add" button to do this.
  • The dialog will only display models that match the databases on the SD card. So if there is no "innopad_wf.db" database then you will not see the 2S/3S models listed. Similarly you can only enter a UnitEID for the 2S/3S models. Select the model type.
  • If a UnitEID is needed, you can either type/paste it into the box manually, or you can click the "AutoDetect UnitEID" button which will scan the databases for all available UnitEIDs. It will autoselect if there is only one, or give you a choice if multiple were found. Note: for AutoDetect to work, you must have at least one file with a UnitEID already on the device - copying an MP3 via Learning Lodge is the easiest way to do this!
  • Once a profile is created you can click the "Select This Innotab" button to go back, and everything from the device should appear in the right hand panels of the main screen.
  • If you use the same card in multiple different Innotabs, you can just create a profile for each device you use. You can then select the "active" profile from the drop down list at the top of the RHS panel on the main screen. (Right now, if doing this, if you want to copy media for different models - i.e. 2 3S models with different UnitEIDs - it will copy all of the media files over, and then do it again when you select the second profile and transfer again... the media files are just overwritten on the device, so there is only one copy, but two entries in the database. if this is a major hassle I'll see what I can do for people.)

I think that's it for now!

Please give me feedback. If it doesn't work, post details of your O/S, what you were doing and the log file that was generated when the problem occurred.

If you can think of new features, post them here and I'll see what I can do. Do people want photos supported? What about "OTHER" apps?
Reply
#2
And although I shouldn't need to say it (I hope!) you must of course have already applied the modified firmware to your Innotab as described elsewhere on these forums...
Reply
#3
I finally got this added to the downloads page. Smile
Reply
#4
Tell you what then; if anyone highlights any problems I'll put bug fix versions up on the download site at the top of this post for them to test out, and then once things are working I'll PM you and you can (when you get a chance Wink ) update the copy on the Downloads page.
Reply
#5
The downloads page just links to here Smile
Reply
#6
Does not start on my laptop. Stucks in grey window with version number. Have to use task manager and end the process (no task is listed like Firefox, explorer, ..).

Updated to Java 7.51.

Laptop runs on Win 7 premium home.
Reply
#7
Same here. I don't have a tablet hooked up, so maybe its waiting for that? But there is no way to close except forcing it to close via task manager. Also running win 7 on 64 bit PC.
Reply
#8
Ditto for me too. Laptop with Win 7 Prem. Locks up when starting, even tried opening it with firefox and no luck .

EDIT: just found a file called InnotabCustomizer.log with this in it:

10/02/2014 15:53:26.600 WARN No configuration file was found. Using defaults.
10/02/2014 15:53:26.600 INFO Detected operating system WINDOWS [Windows 7]
10/02/2014 15:53:27.365 DEBUG Creating device file for GAMES file C:\
10/02/2014 15:53:27.427 DEBUG Metadata file resolved to C:\DVDPATH.TXT

DVDPATH.txt is an empty file.

Hear is a SS: ScreenShot

PS: I tried it with my 3S plugged in and same result.
Reply
#9
Sorry all, hadn't checked back in a few days and had for some reason missed the email saying you had posted.

It should start fine without anything plugged in as it's not looking for anything at this stage. In fact the splash screen is just there while it does the basic initialisation of stuff, and is the last place I would have expected it to hang - especially as thoroughly as you all say it does!

Thanks for posting the log file;
It looks like a "special case" that I coded in to cover Windows machines (what a coincidence you are all using Windows!) Basically due to me not filtering all of the root folders (i.e. checking whether they are folders containing actual games rather than just the drives on your machine), it is mistakenly thinking they are all games folders.

I will post a quick fix shortly. If you can try that and let me know the results it'd be appreciated. If still not working, I'll have another look tomorrow. I'll add some more detailed logging around the area in question, so please post the log file again if it doesn't work (should be in the same folder as the jar file).

Yep. I didn't miss the email; I never got one after my last response. I will make sure I check back a bit more regularly!

Anyway, there's a new version on the download page. "0.6.1-winbug-1"
Added extra filtering for the Windows case and added a bit more debug logging.

If you are able to give it a quick run at some point and let me know how it goes I'll keep an eye out!
Reply
#10
Console output (Admin Privileged):
Code:
C:\Users\jrloper\Desktop>java -Xdiag -jar JavaInnotabCustomiser-0.6.1-winbug-1.j
ar
Logging to C:\Users\jrloper\Desktop\InnotabCustomiser.log
java.lang.NullPointerException
        at com.acephir.innotab.ui.selector.LocalMediaSelector$LocalMediaListMode
l.refresh(LocalMediaSelector.java:212)
        at com.acephir.innotab.ui.selector.LocalMediaSelector$LocalMediaListMode
l.<init>(LocalMediaSelector.java:179)
        at com.acephir.innotab.ui.selector.LocalMediaSelector.<init>(LocalMediaS
elector.java:94)
        at com.acephir.innotab.ui.tabs.BaseTabPanel.<init>(BaseTabPanel.java:75)

        at com.acephir.innotab.ui.tabs.books.BooksPanel.<init>(BooksPanel.java:1
4)
        at com.acephir.innotab.ui.InnotabCustomiser.initialize(InnotabCustomiser
.java:176)
        at com.acephir.innotab.ui.InnotabCustomiser.<init>(InnotabCustomiser.jav
a:107)
        at com.acephir.innotab.ui.InnotabCustomiser$1.run(InnotabCustomiser.java
:80)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$200(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
ce)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)

C:\Users\jrloper\Desktop>

Log output:
Code:
15/02/2014 11:38:29.169 WARN No configuration file was found. Using defaults.
15/02/2014 11:38:29.170 INFO Detected operating system WINDOWS [Windows 7]

System Info:
See Attachment


Attached Files
.zip   SystemInfo.zip (Size: 33.91 KB / Downloads: 1,875)
Reply


Forum Jump: