Tolino Firmware-Analyse

T

TolinoAnalyse

Guest
Hallo, ich habe gerade die update.zip des Tolinos analysiert. In einer APK, die ich untersucht habe, fand ich ein HTML-Dokument namens rc.html mit dem "<title>" "tolino remote control" gefunden. Weiß irgenjemand, was das ist?
 
T

TolinoAnalyse

Guest
Die Datei:


<html>

<head>

<meta name='viewport' content='width=device-width, initial-scale=1.0'>

<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>

<link rel='shortcut icon' href='http://mytolino.com/wp-content/themes/tolino/favicon.ico' type='image/vnd.microsoft.icon; charset=binary'>

<title>tolino remote control</title>

<style>

a {text-decoration:none}

@font-face {font-family:'icons';src: url('https://html5reader.thalia.de/library/assets/common/fonts/tolino-iconfont.woff') format('woff'), url('https://html5reader.thalia.de/library/assets/common/fonts/tolino-iconfont.ttf') format('truetype'), url('https://html5reader.thalia.de/library/assets/common/fonts/tolino-iconfont.otf') format('opentype')}

</style>

<script>

function transfer(e) {

document.forms[0].submit()

e.value=''

}


function keydownHandler(e) {

var evt = e ? e:event;

var chrTyped;

var sProperties = ''

+(evt.keyCode ==null ? '':' keyCode=' +evt.keyCode )

+(evt.charCode==null ? '':' charCode='+evt.charCode)

+(evt.which ==null ? '':' which='+evt.which)

// console.log(evt.keyCode)

switch(evt.keyCode) {

case 40: chrTyped='KEYCODE_DPAD_DOWN' ; break;

case 37: chrTyped='KEYCODE_DPAD_LEFT' ; break;

case 39: chrTyped='KEYCODE_DPAD_RIGHT' ; break;

case 38: chrTyped='KEYCODE_DPAD_UP' ; break;

case 35: chrTyped='KEYCODE_MOVE_END' ; break;

case 36: chrTyped='KEYCODE_MOVE_HOME' ; break;

case 46: chrTyped='KEYCODE_FORWARD_DEL'; break;

case 8: chrTyped='KEYCODE_DEL' ; evt.preventDefault(); break;

}


document.getElementById('sChrCode').innerHTML = sProperties;


if(typeof chrTyped != 'undefined') {

var xmlhttp = new XMLHttpRequest();

xmlhttp.open('GET', document.URL+'?key='+encodeURIComponent(chrTyped), false);

xmlhttp.send(null);

}


return true;

}



var transfer=true;

var keys='';

var i=0;

function keypressHandler(e) {

var evt = e ? e:event;

var chrTyped, chrCode = 0;

var sProperties = ''

+(evt.keyCode ==null ? '':' keyCode=' +evt.keyCode )

+(evt.charCode==null ? '':' charCode='+evt.charCode)

+(evt.which ==null ? '':' which='+evt.which)


if (evt.charCode!=null) chrCode = evt.charCode;

else if (evt.which!=null) chrCode = evt.which;

else if (evt.keyCode!=null) chrCode = evt.keyCode;


if (chrCode==0) chrTyped = 'SPECIAL KEY';

else chrTyped = String.fromCharCode(chrCode);


document.getElementById('sChrCode').innerHTML = sProperties;

document.getElementById('sChrName').innerHTML = ' Character: '+chrTyped.bold();


if(chrCode!=0) keys+=chrTyped;

console.log('keys='+keys);

console.log('i='+(i++));

if(transfer) {

transfer=false;

var xmlhttp = new XMLHttpRequest();

xmlhttp.onreadystatechange = function() {

if (xmlhttp.readyState == XMLHttpRequest.DONE) {

transfer=true;

console.log('XMLHttpRequest.DONE');

if(keys.length>0)keypressHandler();

}

}

var url=document.URL+'?key='+encodeURIComponent(keys);

console.log('GET '+url);

xmlhttp.open('GET', url, true);

keys='';

xmlhttp.send(null);

}


return true;

}


// TODO combine into keypressHandler

document.onkeypress=keypressHandler;

document.onkeydown=keydownHandler;


</script>

</head>

<body bgcolor='black' text='white' link='white' alink='white' vlink='white'>

<div style='font-family:icons; font-size:75px'>

<!--&#8676;<Xa href='?BACKWARD'>&#171;</a><span style='padding-left:0.3em'></span>-->

<a href='/'>&#187;</a>

<!--&#8677;-->

</div>

<form target='datatransfer'>

<input name='key' Xonchange='javascript:transfer(this)' onfocus='if(navigator.userAgent.indexOf("Chrome")>0)document.getElementById("warning").innerHTML="Soft keyboard does not work in Chrome!"'>

<div id="warning" style="color:red"></div>

<iframe name='datatransfer' style='display:none'></iframe>

<div id="sChrCode"></div>

<div id="sChrName"></div>

</form>

</body></html>
 
T

TolinoAnalyse

Guest
pasted-from-clipboard.pngDie Pfeile sehen nach einem Online-Reader aus, sind aber standardmäßig ausgeblendet.
 
T

TolinoAnalyse

Guest
Ein paar andere interessante Dateien aus der Firmware:

Kamera (kommt das in der Android-App vor?):ic_camera_ico.png


Ein App-Icon (früher das der App?): application_icon.png


Jeder Tolino hat auf dem mit Computer verbunden einen eigenen Hintergrund. Es gibt welche für page, vision, shine, Epos und "Loki". Vielleicht ein zukünftiges Modell? Es hat denselben Hintergrund wie der Shine, ist aber in einer anderen Datei: usb_storage_activity_cable_loki.png




Edit: res/values/strings.xml enthält: "<string name="settings_device_info_activity_hardware_model_loki">${PRODUCT_NAME} shine 3</string>" Loki scheint der interne Codename des Shine 3 zu sein.
 
Zuletzt bearbeitet:
T

TolinoAnalyse

Guest
Anscheinend gibt es bald trotzdem einen Tolino "Darknight" (könnte aber auch nur ein Codename sein, und der spätere Name ist anders), ich habe folgendes in der Modellliste der App gefunden:



<string name="settings_device_info_activity_hardware_model_darknight">${PRODUCT_NAME} Darknight</string>

<string name="settings_device_info_activity_hardware_model_epos">${PRODUCT_NAME} epos</string>

<string name="settings_device_info_activity_hardware_model_epos_2">${PRODUCT_NAME} epos 2</string>

<string name="settings_device_info_activity_hardware_model_loki">${PRODUCT_NAME} shine 3</string>

<string name="settings_device_info_activity_hardware_model_page">${PRODUCT_NAME} page</string>

<string name="settings_device_info_activity_hardware_model_page_2">${PRODUCT_NAME} page 2</string>

<string name="settings_device_info_activity_hardware_model_shine">${PRODUCT_NAME} shine</string>

<string name="settings_device_info_activity_hardware_model_shine_2">${PRODUCT_NAME} shine 2 HD</string>

<string name="settings_device_info_activity_hardware_model_shine_3">${PRODUCT_NAME} shine 3</string>

<string name="settings_device_info_activity_hardware_model_vision">${PRODUCT_NAME} vision</string>

<string name="settings_device_info_activity_hardware_model_vision_2">${PRODUCT_NAME} vision 2</string>

<string name="settings_device_info_activity_hardware_model_vision_3">${PRODUCT_NAME} vision 3 HD</string>

<string name="settings_device_info_activity_hardware_model_vision_4">${PRODUCT_NAME} vision 4 HD</string>

<string name="settings_device_info_activity_hardware_model_vision_5">${PRODUCT_NAME} vision 5</string>
 
T

TolinoAnalyse

Guest

Der Tolino Darknight​


Beim Analysieren der Firmware habe ich den Tolino "Darknight" gefunden. Ich habe bisher folgendes herausgefunden:


  • Er ist in der Liste bei den anderen Tolinos, hat aber keine Grafiken
  • Seine Standard-Bildschirmhelligkeit ist niedriger als bei anderen Tolinos (160, andere haben 212 oder 300)
  • Er hat die Hardware-ID "E606A0". Diese ähnelt der des Shine ("E60670") und der eines Testmodells (?) mit der ID "E606E0" und dem Namen "Goldsample"
  • Der Darknight hat auch den Anzeigenamen Darknight (Der "Loki" hat den Anzeigenamen (und ist der) Shine3).


Ich vermute, das dieser Tolino nie erscheinen wird, auf mich wirkt er eher wie eine ältere, nie umgesetzte Version des Tolinos, auch aufgrund der laut Board-ID älteren Hardware. Es besteht trotzdem eine geringe Wahrscheinlichkeit, da einige Texte für ihn noch vorhanden sind (Goldsample kommt viel weniger vor).
 

IngoPan

Member
Nicht mit der Standard-Firmware.
Danke. Und geht evtl, USB tethering zu aktivieren. Ich habe folgendes gefunden:

service call connectivity 34 i32 1 . Da passiert auch was aber ob das so OK ist weiss ich nicht.

Mit der App PdaNet kann man über den Tolino surfen (mit der Windows Applikation). Ich würde aber gerne von zu einem anderen, zweiten Android Device tethern. Ist das irgendwie möglich ? Oder fehlt es da schlichtweg an Firmware Capability.

Surfen via adb Bridge auf Android wäre mein Ziel....


LG
 
Oben