| 
			
			 | 
		#1 | 
| 
			
			
			
			 Member 
			
			![]() Posts: 11 
				Karma: 10 
				Join Date: Dec 2012 
				
				
				
				Device: Kobo Touch 
				
				
				 | 
	
	
	
		
		
			
			 
				
				Determine device firmware version
			 
			
			
			TL;DR: Does anyone know how to programmatically obtain the currently installed firmware version on a Kobo? 
		
	
		
		
		
		
		
		
		
		
		
		
	
	I've been working on a program which will automatically download books from a calibre content server onto the Kobo. Currently, my method for forcing the device to add the downloaded books to its library is to fake a USB plug in event, fake a tap on the "Connect" button, and then fake a USB unplug. This works fine on my device, but the problem is that I need the screen co-ordinates of the connect button. The location of the button is fairly predictable, but the UI has changed once or twice, so it might be in different places on different firmwares, and of course it will depend on the screen resolution, which I think varies with the actual model. So my questions are basically 
  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#2 | 
| 
			
			
			
			 Grand Sorcerer 
			
			![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 6,269 
				Karma: 16544702 
				Join Date: Sep 2009 
				Location: UK 
				
				
				Device: ClaraHD, Forma, Libra2, Clara2E, LibraCol, PBTouchHD3 
				
				
				 | 
	
	|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| Advert | |
| 
         | 
    
| 
			
			 | 
		#3 | 
| 
			
			
			
			 Linux User 
			
			![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,282 
				Karma: 6123806 
				Join Date: Sep 2010 
				Location: Heidelberg, Germany 
				
				
				Device: none 
				
				
				 | 
	
	
	
		
		
		
		
		 
			
			You could just ask the user to do it manually once (and record and remember and replay that touch event). Basically just read the touchscreen input event between faking the USB connect and unplug (assuming the user will tap connect when nothing happens) and write it back to it next time.
		 
		
	
		
		
		
		
		
		
		
		
		
		
	
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#4 | ||
| 
			
			
			
			 Member 
			
			![]() Posts: 11 
				Karma: 10 
				Join Date: Dec 2012 
				
				
				
				Device: Kobo Touch 
				
				
				 | 
	
	
	
		
		
		
		
		 Quote: 
	
 Looks like the comma-separated fields break down into serial number (which starts with the model number), kernel version, firmware version, kernel version again, kernel version yet again, and then something I'm not certain, maybe a different representation of the firmware version? No idea why the kernel version is repeated three times, but looks like there's enough info there to identify model and firmware version. Quote: 
	
  | 
||
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#5 | |
| 
			
			
			
			 Linux User 
			
			![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,282 
				Karma: 6123806 
				Join Date: Sep 2010 
				Location: Heidelberg, Germany 
				
				
				Device: none 
				
				
				 | 
	
	
	
		
		
		
		
		 Quote: 
	
   The button positions may also be different depending on the language setting.
		 | 
|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| Advert | |
| 
         | 
    
| 
			
			 | 
		#6 | |
| 
			
			
			
			 Grand Sorcerer 
			
			![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 24,905 
				Karma: 47303824 
				Join Date: Jul 2011 
				Location: Sydney, Australia 
				
				
				Device: Kobo:Touch,Glo, AuraH2O, GloHD,AuraONE, ClaraHD, Libra H2O; tolinoepos 
				
				
				 | 
	
	
	
		
		
		
		
		 Quote: 
	
  | 
|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#7 | 
| 
			
			
			
			 Member 
			
			![]() Posts: 11 
				Karma: 10 
				Join Date: Dec 2012 
				
				
				
				Device: Kobo Touch 
				
				
				 | 
	
	
	
		
		
		
		
		 
			
			You may be interested to know that I eventually decided to do it your way and record the user's manual tap. I still regard it as an interim solution though, and eventually I would like to have a way to do this without any user interaction at all (though of course what I'd *really* like is a way to trigger a library update that doesn't involve faking USB connections and screen taps.)
		 
		
	
		
		
		
		
		
		
		
		
		
		
	
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#8 | 
| 
			
			
			
			 Wizard 
			
			![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 4,466 
				Karma: 6900052 
				Join Date: Dec 2009 
				Location: The Heart of Texas 
				
				
				Device: Boox Note2, AuraHD, PDA, 
				
				
				 | 
	
	
	
		
		
		
		
		 
			
			Maybe you could check out Tshering's  scripting for that feature of his Kobo Start Menu (KSM)? (I mean the simulation of USB connect and disconnect, to have Kobo processing initiated.)  
		
	
		
		
		
		
		
		
		
		
		
		
		
			Luck; Ken Last edited by Ken Maltby; 09-27-2015 at 10:54 AM.  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#9 | 
| 
			
			
			
			 Member 
			
			![]() Posts: 11 
				Karma: 10 
				Join Date: Dec 2012 
				
				
				
				Device: Kobo Touch 
				
				
				 | 
	
	
	
		
		
		
		
		 
			
			That is essentially the method I use (except implemented in C rather than shell-scripting) - however, tshering's method still requires the user to tap the "Connect" button, as far as I can make out. I don't actually run KSM, so maybe there is a feature I am unaware of that doesn't require user interaction?
		 
		
	
		
		
		
		
		
		
		
		
		
		
	
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#10 | |
| 
			
			
			
			 Wizard 
			
			![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 4,466 
				Karma: 6900052 
				Join Date: Dec 2009 
				Location: The Heart of Texas 
				
				
				Device: Boox Note2, AuraHD, PDA, 
				
				
				 | 
	
	
	
		
		
		
		
		 Quote: 
	
 It won't hurt anything to install KSM7, the stock software is unaffected. Luck; Ken  | 
|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#11 | 
| 
			
			
			
			 Linux User 
			
			![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,282 
				Karma: 6123806 
				Join Date: Sep 2010 
				Location: Heidelberg, Germany 
				
				
				Device: none 
				
				
				 | 
	
	
	
		
		
		
		
		 
			
			Great. I don't think there is a better solution, for now. Unless you know how to patch / ld_preload nickel to convince it to do it another way. Even updating the database directly [if you knew how], it doesn't work, as nickel ignores it until reboot or, until usb connect as it were. Since nickel believes to be the exclusive user of the database, it does not revalidate caches etc.
		 
		
	
		
		
		
		
		
		
		
		
		
		
	
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
![]()  | 
            
        
    
            
  | 
    
			 
			Similar Threads
		 | 
	||||
| Thread | Thread Starter | Forum | Replies | Last Post | 
| How to determine firmware on new Kindle Paperwhite? | DuncanWatson | Kindle Developer's Corner | 4 | 05-09-2015 01:32 AM | 
| How do I determine which JB version I used to uninstall it? | twowheels | Amazon Kindle | 4 | 10-23-2011 04:04 PM | 
| Criteria to determine if book is already on device? | ATimson | Devices | 2 | 10-09-2011 04:34 AM | 
| Gender does determine what device you use. | OldGunbunny | News | 55 | 08-30-2011 01:48 PM | 
| How to determine if a Cybook Opus is the new version without opening the box | morpheus99 | Bookeen | 3 | 07-27-2010 11:30 AM |