Storio Max 2.0

  • Hallo community!


    Habe gerade den "Storio Max 2.0" meiner Tochter gerootet. Ich wäre interessiert, sich hier auszutauschen, es gibt erstaunlich wenig Informationen zu diesem Kinder-Handheld. Viel im Netz bezieht sich auf ältere Storios.

    Das Storio Max 2.0 hat (bis auf den beseren Bildschirm) wohl die gleiche Hardware/Software wie der Storio Max.


    Was ich bisher hinbekommen habe:

    - adb zugriff als root

    - Spiele-cartridges können entschlüsselt werden als normales apk. Die apk's sind dann geräteunabhängig und könnten untereinander getauscht werden.

    - über adb kann ich den "normalen" android launcher auf den Storio starten und apk's installieren. Z.B. geht Angry birds, Total Commander, burn the rope habe ich alle gestartet bekommen.

    - ich kann auf die fakeapp.db zugreifen, um im Storio-launcher (da wo sich die Kinder dran anmelden) Lernspiele etc. hinzufügen. Hier ist aber noch viel herauszufinden, geht noch nicht alles.


    Ehe ich mir die Mühe mache hier eine Anleitung zu posten: Besteht überhaupt interesse? Hat hier jemand noch (für die eigenen kids?) einen Storio Max / Storio Max 2.0 in Verwendung?


    posted mal bitte bei interesse.

  • root auf dem Storio Max 2.0 und vermutlich auch auf den anderen "modernen" android basierten Storio-Geräten:


    Dieser Schritt stammt von iso-mick von spiffy-hacks. [https://spiffyhacks.com/thread-971.html] und bezieht sich auf das InnoTV, geht aber 1:1 auf einem Storio Max 2.0


    Gebraucht wird: Linux, Hex-Editor, microsd-Kartenleser, Schraubendreher um den Storio zu öffnen. Als erstes ändern wir die System-Partition des Storios um adb zu erlauben:

    Bei dd müsst ihr natürlich schauen wo eure sd-Karte eingebunden wurde, d.h. /dev/sdx entsprechend anpassen.

    Auf meinem Storio 2 Max liegen die Boot und System-Partition genau wie hier angegeben, "system2" gibt es nicht.

    Ich habe die Partitionsdaten an Offset 00400190h gefunden (einfach nach "mtdparts=" im hex-Editor suchen).


    Nun schreiben wir die geänderte System-Partition des Storio zurück. Auch hier wieder, wie bei allen dd operationen, sdx an eure mounts anpassen!


    Code
    sudo dd if=innotvsystem.img bs=512 obs=512 seek=557056 of=/dev/sdb
    
    When completed it should say something like:
    3145728+0 records in
    3145728+0 records out
    1610612736 bytes (1.6 GB) copied

    als nächstes patchen wir die boot-partition:


    wir brauchen hier zusätzlich das Programm "imgRePackerRK" von [https://forum.xda-developers.c…-unpacker-packer.2257331/]

    Hier war es bei mir jetzt leicht anders, ich musste eine gepatchte adbd binary einspielen:


    besorgt euch hier [https://github.com/wuxianlin/android_tools]

    die Datei adbd-Insecure-v2.00.apk

    Die android apk's lassen sich wie normale *.zip Dateien öffnen. Im Verzeichnis assets kopiert ihr euch die "adbd.17.png" raus, benennt diese in "adbd" um und

    kopiert diese nun nach /ramdisk.dump/sbin/ in eurem boot-dump verzeichnis! Überschreibt dabei die alte Datei.


    Weiter mit der Anleitung von iso-mick: Achtet wieder auf eure /dev/sdx Anpassungen! Es wird nun der bootcode wieder compiliert und auf die sd geschrieben:

    Code
    To repack:
    imgRePackerRK innotvboot.img.cfg
    (notice the .cfg at the end)
    
    To re-flash:
    
    sudo dd if=innotvboot.img bs=512 obs=512 seek=49152 of=/dev/sdb
    
    Re-insert SD, and reboot

    Also sd-Karte wieder in das Storio, zuschrauben, starten. Wenn ihr es nun per USB mit dem PC verbindet sollte eine adb-root Verbindung bestehen. :)

    Ggf. braucht ihr noch adb aus dem Platform-tools für Android [https://developer.android.com/studio/releases/platform-tools]


    Dann per shell:

    "adb devices"

    sollte den Storio anzeigen.

    "adb shell"

    logt euch ein als root

  • Wenn ihr root-Zugriff auf eurem Storio max 2 habt lassen sich endlich einige Dinge ändern. Fangen wir mit dem viel zu lauten Einschalt-Sound an, wenn das Vtech Storio Video kommt:


    //Das Startvideo vom Gerät holen:

    adb pull /system/InnoTabMaxLogo/StorioMax/StorioMAX_Logo.mp4


    Jetzt könnt ihr die Lautstärke des Videos ändern. Wer kein passendes Tool am PC hat kann einen online-Dienst nutzen, z.B. hier: [https://www.videolouder.com/de/]

    Ich habe glaube ich um 40 db reduziert, ist dann erträglich beim einschalten.


    //Geht per adb auf den Storio

    adb shell

    // system schreibbar mounten

    mount -o rw,remount /system

    // wieder adb beenden

    exit


    //geänderte mp4 wieder auf das Storio laden (die alte Datei wird dabei überschrieben, macht euch vorher ein backup!)

    adb push StorioMAX_Logo.mp4 /system/InnoTabMaxLogo/StorioMax/StorioMAX_Logo.mp4


    // system wieder read-only herstellen:

    adb shell

    mount -o ro,remount /system


    fertig

  • Spiele-Cartridges unverschlüsselt als Datei rippen.


    Hintergrund-Info: Nach einlegen eines Cartridge muss meistens ein Update des Spiels vom Vtech Server geladen werden. Hat man ein "Storio Max" oder wie ich ein "Storio Max 2" werden zudem (wegen dem hochauflösenderen Screen) bessere Grafiken nachgeladen, wenn ein älteres "Storio 2" Cartridge eingelegt wurde. Zum Spielen muss das Cartridge immer gesteckt sein. Der Storio speichert die letzten drei gesteckten Spiele zwischen, so dass beim Wechsel eines Spiels kein update geladen wird, d.h. man kann offline bleiben. Nach einstecken eines vierten Spiels wird das älteste verworfen - und es muss dann wieder zwingend online ein update geladen werden, wenn es wieder eingesteckt wird. Nervig und nach dem rippen nicht mehr nötig.



    Spiel rippen per adb. Keine externen tools etc. notwendig!


    Spiele-Cartridge einstecken, falls erstmalig/neu auf dem Gerät muss Wlan aktiv sein, Gerät lädt dann i.d.R. ein update. Falls das Spiel zu den letzten drei gespielten gehört hat es den download noch gespeichert. Sobald es spielbereit ist:

    1) per usb in die adb shell einlogen

    adb shell

    2) wechsel ins dir /data/app-private/

    cd /data/app-private

    3) lasst euch den Inhalt anzeigen


    ls -l


    hier werden die zuletzt eingelegten Cartridges angezeigt, z.B. sieht es so aus:


    com.vtech.innotab.cart.m54_272004_000_000-1.apk -> /mnt/.../-Vf1eq5ZA1NSkmjfMAk-8eGu7e3BuQ2PgOjv3zKkd00HQn93IKoYNMYBDR4JO0EjclgkZiXkXECWy8ldk9OoEmH8TQHhoP9D1kuNrmruLQZ2tq-wGUlq4ecdsjWVO4pj.ita


    Interessant sind die *.ita dateien mit dem cryptischen String als Namen.


    .ita ist ein vom cartriges (bzw. per Wlan) geladenes Spiel als verschlüsselte Datei. "com.vtech.innotab.cart.m54_272004_000_000-1.apk" ist der von Vtech vergegebene Name der apk.



    4) Datei decrypten: cp /mnt/.../****string*****.ita /mnt/external_sd/output.apk


    konkret im Beispiel von oben:

    Code
    cp /mnt/.../"-Vf1eq5ZA1NSkmjfMAk-8eGu7e3BuQ2PgOjv3zKkd00HQn93IKoYNMYBDR4JO0EjclgkZiXkXECWy8ldk9OoEmH8TQHhoP9D1kuNrmruLQZ2tq-wGUlq4ecdsjWVO4pj.ita" /mnt/external_sd/com.vtech.innotab.cart.m54_272004_000_000-1.apk

    mnt/external_sd gibt es nur, wenn ihr eine externe micro-sd Karte eingelegt habe. Alternativ könnt ihr als Ziel auch nach /data/app kopieren etc.



    Was passiert hier beim kopieren:


    /mnt/... ist ein fuse filesystem, das auf den Android-Storios die Entschlüssellung macht. Der String der *.ita -Datei enthält encrypted den Dateinamen inkl. path und ist base64 codiert.


    Wenn alles funktioniert hat habt ihr eine entschlüsselte apk des Cartridges. Congrats!


    Was ihr damit machen könnt, wie es in den Kids-launcher des Storios fest eingebunden wird usw. poste ich noch nachfolgend. Ich habe derzeit ca. 15 Spiele gerippt und läuffähig auf dem Storio, so das Töchterchen ohne die Cartridges wechseln zu müssen und offline alle ihre Spiele hat. :)

  • Adderly

    Entschuldige, was muss ich da jetzt machen?


    Habe ein VTech Storio MAX XL 2.0


    HxD Zeigt mir folgendes an

    Code
    mtdparts=rk29xxnand:
    0x00002000@0x00002000(misc),0x00006000@0x00004000(kernel),
    0x00006000@0x0000a000(boot),0x00010000@0x00010000(recovery),
    0x00020000@0x00020000(backup),0x00040000@0x00040000(cache),
    0x00002000@0x00080000(kpanic),0x00004000@0x00082000(app),
    0x00300000@0x00086000(system),
    0x00100000@0x00386000(data),-@0x00486000(userdata)

    Ich kapier den Satz nicht:

    Code
    The above is SIZE @ Address, BUT you have to add 0x2000 onto it, as this is how much the bootloader takes up.
    So the system partition starts at 0x00088000 (after we add 0x2000) and is 0x00300000 bytes long.


    Ich werde mal ein wenig Experimentieren und 0x00300000@0x00086000(system), in 0x00300000@0x00088000(system), umbenennen.

  • Livehack


    Auf der sd-Karte liegt die Android system-partition laut Partitionsliste, die wir im Hex-Editor gefunden haben, an Adresse 0x00086000 und ist 0x00300000 byte groß. Alle Angaben in hex und als "Größe der Partition"@"Adresse der Partition" dargestellt.

    Da der bootblock noch 0x2000 byte belegt (und in der Partitionsliste nicht mit angezeigt/berücksichtigt wird) musst du die Größe des Bootblocks noch zur Adressangabe der Partitionen hinzu addieren, um den realen Anfang auf der sd-Karte (oder in einem vollen Image davon) zu bekommen:


    0x00086000 + 0x00002000 = 0x00088000 für das system

    0xa000 + 0x2000 = 0xc000 für die Boot-Partition.


    0x00088000 ist hexadezimal also der tatsächliche Anfang der Android System-Partition. Das ist übrigens exakt gleich wie im Storio Max, Storio Max 2 und dem Storio-TV oder in den USA die Innotab Geräte. Alle haben die Android Firmware auf einer internen 8 gb sd. Wie wir jetzt wissen ist es auch beim Storio Max XL 2.0 der Fall. Dieser Hack sollte also auf allen Geräten adb root erlauben.


    Umgerechnet von hex in dezimal haben wir dann:

    0x88000 = 557056 als Anfang der System-Partition

    0x300000 = 3145728 als Größe/Länge der System-Partition.


    Diese Werte werden dann in dd verwendet, um ein weiteres image ausschließlich der system-partition zu erstellen. Diese kann du unter linux dann mounten und verändern.


    (zur Kontrolle: dd verwendet 512 bytes in einem block, daher 0x300000=3145728 * 512 = 1.610.612.736 bytes Größe, wenn du die system-Partition als image mit dd erstellt hast. )

  • Adderly

    Vielen Dank, die build.prop ist schon bearbeitet. Habe mir auf die schnelle Mint in einer VM installiert und da war noch kein gedit drauf.

    Jetzt warte ich dass der Befehel "sudo dd if=innotvsystem.img bs=512 obs=512 seek=557056 of=/dev/sdb" endlich durch ist....


    Edit: Habs tatsächlich dank deiner Anleitung geschafft und ADB läuft im root Modus . Jetzt kanns los gehen :thumbup:


    Edit2: Habe zwar den Zugriff mit ADB aber leider kann ich weder den Android Launcher starten noch eines meiner Spiele rippen. Vielleicht liegt es am XL 2.0 Model?


    Edit3: Mittels ADBFileExplorer (Windows) konnte ich ein Spiel nun direkt auf meinen PC rippen.

    GitHub - Aldeshov/ADBFileExplorer: File Explorer for Android devices
    File Explorer for Android devices. Contribute to Aldeshov/ADBFileExplorer development by creating an account on GitHub.
    github.com


    Wenn ich das spiel jetzt mit "adb install spiel.apk" installiere kommt die Meldung "Failure [INSTALL_FAILED_ALREADY_EXISTS]". Ich bekomme aber keine Verknüpfung in den Spiele Ordner oder sonst eine Möglichkeit es zu starten.


    Edit3: Wie es schein fehlt der Android Launcher am Storio Max XL 2.0 daher habe ich Trebuchet mit adb installiert. Somit konnte ich dann mit dem Befehl "am start -a android.intent.action.MAIN -c android.intent.category.HOME" den Android Launcher aufrufen.

    Lade Trebuchet 1.0 für Android herunter | Uptodown.com

  • Standard Android Apps (.apk) installieren und starten auf einem gerooteten Storio Max 2:


    Ihr braucht wieder Zugriff über adb:


    Zunächst den "normalen" Adroid launcher in den Vordergrund bringen:


    am start -a android.intent.action.MAIN -c android.intent.category.HOME


    Das geht nur, wenn der Bildschirm aktiv d.h. "an" ist. Es kommt eine Abfrage, ob nur diesmal oder immer der launcher angezeigt werden soll. Ich habe "immer" ausführen aktiviert, um nicht jedesmal wieder diese Bestätigung machen zu müssen. Geht der Bildschirmschoner an dann ist die Abfrage weg und ihr seht wieder den Kids-Launscher. Falls ihr einen Storio Max XL habt lest den Beitrag oben von Livehack dazu, wie ihr einen alternativ-launcher intalliert.


    Hier könnt ihr jetzt apps installieren, die config ändern etc., apps starten


    Interessant ist, das der standard android launcher die ganze Zeit im Hintergrund läuft. Der Storio-launcher, den die Kinder nach dem Starten sehen, ist einfach eine apk, die vom system gestartet wird. Leider habe ich noch keinen einfachen Weg gefunden den android-laucher ohne adb direkt einblenden zu lassen. Es geht wohl die apk sidebar-lite, womit ihr dann den launcher starten könnt *ungetestet*.


    //Alternativ kann man über adb apk's installieren:


    adb install game.apk


    game.apk dann entsprechend den Namen anpassen.


    Ich habe Testweise Angry Birds Star Wars, Cut the Rope und als Filemanager TotalCommander für android installiert. Habe diese Spiele von

    archive.org gelade


  • Adderly

    Vielen Dank für deinen Tipp mit Sidebar_Lite_v4.4.0.zip.

    Die Angehängte Version konnte ich problemlos installieren.

    Ausserdem ziehe ich den Nova Launcher dem Trebuchet Launcher vor. Kann aber jeder für sich entscheiden.

    Link zum Nova:

    Nova Launcher 4.2.2 (noarch) (Android 4.1+) APK Download by TeslaCoil Software - APKMirror


    Ein kurzer wisch vom linken Bildschirmrand nach rechts und die Sidebar taucht auf.

  • 4) Datei decrypten: cp /mnt.../****string*****.ita /mnt/external_sd/output.apk


    konkret im Beispiel von oben:

    Code
    cp /mnt.../"-Vf1eq5ZA1NSkmjfMAk-8eGu7e3BuQ2PgOjv3zKkd00HQn93IKoYNMYBDR4JO0EjclgkZiXkXECWy8ldk9OoEmH8TQHhoP9D1kuNrmruLQZ2tq-wGUlq4ecdsjWVO4pj.ita" /mnt/external_sd/com.vtech.innotab.cart.m54_272004_000_000-1.apk

    Hier ist ein Fehler drin im Beitrag #6, Punkt 4).


    Korrekt müsse es cp /mnt/.../****string*****.ita /mnt/external_sd/output.apk

    lauten und im Code-Beispiel dann:

    Code
    cp /mnt/.../"-Vf1eq5ZA1NSkmjfMAk-..... usw

    sorry

  • Von cartridge gerippte spiele fest einbinden in die kids-Oberfläche (die Parklandschaft). Ihr braucht auch hier wieder adb root zugriff. Danach wird das cartridge nie wieder gebraucht und man kann alles offline spielen.


    Ziel: Spiele erscheinen in der Spiele-Bibliothek, siehe Bild




    Vorweg: Das liest sich hier gleich aufwändiger als es praktisch ist. Ein paar Mal gemacht brauche ich z.B. ca. 2 Minuten um ein neuen Spiel einzubinden. :)

    Es empfiehlt sich die WLan Verbindung zu kappen, damit nichts dazwischenfunkt.


    1. Eure vom cartridge gerippten apk's kopiert ihr nach /data/app mit einem Filemanager oder per adb. (Der Speicherort geht auch anders, z.B. external_sd, aber dann in Punkt 7 den path anpassen. Zum nachvollziehen des tutorials hier nehmt erstmal /data/app)

    adb push NAME.apk /data/app

    NAME natürlich anpassen.


    2. Ermittelt eure Geräte EID

    adb logcat | find "eid"

    Nun am Tablet selbst einige Vtech apps starten, bis ihr am pc über adb eure EID ausgegeben sieht. Notieren!


    3. holt die Datei "fakeapp.db" vom Storio, z.B. durch adb pull oder über einen filemanager etc.

    adb pull /data/data/com.vtech.innotab.vpm/databases/fakeapp.db

    Die Datei landet so in eurem adb-Verzweichnis auf dem PC . Backup machen!


    fakeapp.db ist eine SQL Datenbank, verschlüsselt mit SQLCipher.

    Zum entschlüsseln braucht ihr die eben ermittelte EID.

    Das Password ist 1668 gefolgt von eurer EID. (Beispiel: EID sei mal beispielsweise 123456789, dann ist das password: 1668123456789)


    4. Ihr braucht einen SQL Datenbank-Manager der SQLCipher unterstützt. Ich verwende z.B.

    SQLiteManager: The most powerful database management system for sqlite databases

    Die dort unregestriert downloadbare Version kann "nur" 20 Zeilen in der Datenbank bearbeiten, das reicht aber zunächst zum Testen aus.


    5. SQLlitemanager starten, dann die fakeapp.db öffnen. er fragt nach dem database-key. Dort die Nummer 1668 gefolgt von der eid aus Punkt 3 eintragen. Nun solltet ihr "drin" sein.


    6. In der sql-Datenbak sind verschiedene Einträge. Unter "tables" links findet ihr in der Tabelle "downloaded_cartridges" alle bisher ins tablet eingelegte Spiele, "album" verwaltet musikstücke. In der table "full" können wir jetzt die gerippten Spiele einntragen, damit sie in der Kinder-Oberfläche (in dem "Park") in der Spiele-Bibliothek angezeigt werden. Damit die Spiele wie in meinem ersten Bild auch ein Spiele-icon haben (die Kinder erkennen ihre Spiele nicht am Namen, sondern am Bild dazu) gibt es die table "icon".



    7. Für die spätere Verwendung des Spiele-icons geht am besten unter "downloaded_cartridges" auf das Spiel, klickt auf die Büroklammer im Reiter "icon", dann auf den Peil nach unten (unter dem nun angezeigtem Bild), um das icon zu speichern (als Dateiendung .png hinzufügen)

    (Alternative: Das icon stammt aus der Spiele-apk und kann dort (als file) auch rauskopiert werden. Das ist bei standard apps so zu machen, falls ihr z.B. Angry Birds installieren wollt. Das icon braucht die Auflösung 96x56).


    8. Tabelle "full". Schaut euch hier am besten die Einträge der auf dem Tablet vorinstallierten Spiele an. Mit + am unteren Rand im SQLlitemanager könnt ihr einen Eintrag hinzufügen. Hier braucht ihr den Namen der apk, die Größe der Datei, md5 der Datei (oder 32 mal 0 eintippen). PartNo ergibt sich als Teil des apk-Dateinamens, PackageName ist wieder der Dateiname ohne "-1.apk" am Ende. FileLocation wäre /data/app/NAME_der_APK inkl. der Endung!


    9. Optional: Das Spiele icon anlegen im Table "icon". Die "id" muss mit dem Eintrag in "full" übereinstimmen. Im Feld icon wieder die Büroklammer klicken, dann Peil-hoch für upload, die .png aus Punkt 7 hochladen. Falls ihr hier was nicht richtig eintragt oder Punkt 9 überspringt bekommt das Spiel ein "standard" icon verpasst, laufen tut es trotzdem....


    10. geänderte fakeapp.db wieder auf den Storio laden. Vorher Backup machen! Verschiedene apps schreiben in die fakeapp,db. Wenn sie gelöscht wird auf dem Gerät stellt sie ein Dienst auch wieder her. Was mit euren manuellen Einträgen passiert, wenn ein neues cartridge mit vtech-download/synchronisation installiert wird, weiß ich nicht / ist bisher ungetestet. Also BACKUP machen!

    adb push fakeapp.db /data/data/com.vtech.innotab.vpm/databases/

    (die bestehende Datei wird automatisch überschrieben)


    11. adb reboot / Gerät manuell neustarten und testen, ob in der Spiele-Bibliothek euer Spiel erscheint, es startet und das icon stimmt.


    Aktuell starten so nur ripps, die als Cartridge bereits auf dem Storio installiert waren. Mit Hilfe von Livehack arbeiten wir gerade daran, generell alle ripps zum laufen zu bekommen. :)

    Wie im ersten Bild zu sehen lassen sich so auch nicht Storio-apk's einbinden, ihr habt ein Android 4.x mit allen app-Möglichkeiten! Ich habe beispielsweise Angry Birds Star Wars eingebunden.


    Derzeit kann man die ripps von cartridges nicht über den standard Android launcher starten.

    Ich glaube es liegt daran, das die Lernspiele die Profilverwaltung des kids-launchers von vtech verwenden. Daher müssen sie derzeit noch in die Storio-Oberfläche, wie hier beschrieben, eingebunden werden (für die Kinder so eh optimal). Ich glaube auch, das die gerippten apk's daher nicht auf anderen android-Geräten, außerhalb der Storios-Welt, laufen würden, da die vtech.services nicht vorhanden wären - aber ich mag mich irren.

    Wenn ihr über sidebar-lite oder adb den standard-launcher aufruft können dort alle nachinstllierten apps, die meisten storio-apps, aber eben leider (noch?) nicht die gerippten cartridges gestartet werden.

  • upgrade des sql-editors auf eine bessere Alternative: https://sqlitestudio.pl/


    SQLitestudio ist open source, hat eine portable version, sqlcipher wird unterstützt. Man kann Zeilen kopieren/einfügen. Um die fakeapp.db (siehe Beitrag #15) zu bearbeiten deutlich komfortabler.


    Beim laden der fakeapp.db muss man allerdings in Version 3.3.3 kurz Hand anlegen, da es sonst Probleme mit sqlcipher gibt.

    Im Pull-Down Menü "Database", dann "Add Database", dann kommt dieses Fenster. Oben sqlcipher wählen. Password/key ist wieder 1668 plus eure EID. Dann bei Cipher configuration zwingend: PRAGMA cipher_compatibility = 3; eintragen, sonst geht es nicht.

  • Debug-Modus für den Storio aktivieren / gerippte Spiele starten


    Der debug-Modus ermöglich, von der Start-Seite (Kid-Launcher) aus die Android settings-app zu starten (und bei Bedarf seinen Storio mit dem Vtech developer Server zu verbinden. Wer ist mutig genug das mal durchzutesten? ;) )


    Die Anleitung stammt von spiffyhacks vom user iso-mick und ist in seinem Post von 2015 dort für den innotab-TV gedacht. Sie funktioniert aber auch auf dem Storio Max oder Storio Max 2 etc. heute immer noch!

    Spiffy Hacks - Innotab Max Debug Mode


    Alternativ, falls der link nicht mehr geht, ladet das Programm "InnoMaxTestMode.rar" hier runter (für Windows) und klickt oben auf "usage", um eine Kurzanleitung auf english zu erhalten. Credits dafür: iso-mick. Schade, das er nicht mehr aktiv ist.

    InnoMaxTestMode.rar


    Ein "Nebeneffekt" des aktivierten debug-modus ist, dass sich so gerippte cartridges als apk ausführen lassen. Wenn ihr ein Spiel gerippt habt (oder eine apk eines gerippten Spiels sonstwo herhabt ) kopiert die apk einfach nach /data/app. NICHT(!) installieren, das macht das Sytem beim ersten Start automatisch. Der fakeapp.db SQL Eintrag auf die Spiele-apk muss dafür aber korrekt angelegt sein, Anleitungen stehen oben.


    Ich hatte den debug modus bei den hack-versuchen auf meinem Storio irgendwann mal aktiviert und so belassen. Gerippte cartridges liefen dadurch "zufällig", ohne das mir der Zusammenhang klar war. Danke an Livehack an dieser Stelle, dem wir die Erkenntnis dazu zu verdanken haben!

  • Der debug-modus (um gerippte Spiele starten zu können, siehe mein post #18 oben) geht nur sicher bis Firmware 62.xxx auszuführen.


    Auf einem "Storio Max XL 2" mit FW 75.xxxx ging es nicht, ebenso nicht auf einem "Storio Max 2.0" mit FW 71.xxxx. Danke an Livehack für's testen.


    Es gilt also wie üblich, mit firmware-updates vorsichtig zu sein. Hat man einmal den debug-modus aktiviert (und ein backup des erzeugten .seed-files) lässt sich der hack allerdings nach einem FW update wieder einspielen.


    Derzeit habe ich einen "manuellen" Weg, um auch auf FW >= 7 Storios den debug-modus zu aktivieren. Da ich die Verschlüsselung der .seed aktuell noch nicht vollständig kenne werde ich keine Anleitung posten. Kann aber einen patch-service per pm anbieten. ;)

  • Die interne 8gb SD-Karte durch ein größeres (u. schnelleres, wenn wir schon dabei sind) Modell austauschen


    Ihr Braucht: Original-SD Karte (und ein volles dd-image davon), eine größere SD-Karte (bis zu 32gb werden sicher unterstützt), Linux.


    1. Originale SD-Karte: Wir wollen die Partition "user-data" vergrößern, daher müssen wir hiervon zunächst ein DD-Image dieser Partition machen:

    dd if=/dev/sdx of=/userdata.img skip=4751360 status=progress

    sdx an den mountpoint eurer sd-Karte anpassen! Der Wert bei skip ergibt sich aus dem Anfang der user-data-Partition bei 488000h, siehe Post#2 in diesem Thread. Gilt für Storio Max2 und Max2XL, beim Storio Max anpassen!


    2. Das nun erzeugte image der user-data auf die neue SD Karte schreiben

    dd if=/userdata.img of=/dev/sdx status=progress


    3. mit gparted die Partition auf der neuen SD-Karte vergrößern. Nach hinten heraus solltet ihr mindestens 2.5 gb Platz lassen. Dieser wird benötigt, da die boot/system/recovery Partitionen noch auf die sd sollen. Da alle SD-Karten sich leicht in der Größe unterscheiden kann ich hier keinen fixen Werte vorgeben!


    4. Schaut euch die erstellte Partition unter "Info" in gparted an, die belegten Sektoren gehen von 0 bis xxxxxxx. Wert xxxxxxx notieren! Bei mir war es z.B. 57.214.975.


    5. Ein image der nun vergrößerten Partition von der neuen SD-Karte erstellen:

    dd if=/dev/sdx of=/userdata_big.img status=progress

    sdx wieder anpassen. Dieses image wird, je nach Größe eurer neuen sd-Karte, entsprechend Platz brauchen.


    6. Inhalt der original-Karte mit dd auf die neue sd-Karte überspielen.


    7. userdata_big Partition auf die neue sd aufspielen, an die richtige Stelle:

    dd if=/userdata_big.img of=/dev/sdx status=progress bs=512 obs=512 seek=4751360 count=57214975

    count=57214975 entsprechend anpassen aus Punkt4, was hier bei euch als letzter Sektor ausgegeben wurde der vergrößerten Partition! sdx anpassen.


    8. fertig.

    Im Storio ergibt sich bei einer sd-Karte mit 32gb folgendes:

    root@android:/ # df

    Filesystem Size Used Free Blksize

    ...

    /data 26.9G 898.7M 26.0G 4096

  • Debug-Modus auf Firmware 7 und höher für Storio Max, Max2, Max2XL


    Ohne den debug-modus gibt es derzeit keine Möglichkeit cart-ripps zu starten. Seit FW 7 ist der debug-modus aber nicht mehr von außen aktivierbar.

    Gebraucht wird zwingend ein vtech_debug.seed file (Anleitung in post#18), das nur mit einer FW bis Version 6x durch derzeit bekannte hacks zu erstellen ist. Die .seed können wir allerdings patchen und einem Storio mit FW7 oder höher "unterschieben", um doch an einen aktivierten debug-modus zu kommen.

    Das vtech_debug.seed file kann von einem Max, Max2 oder Max2XL stammen, das ist egal. Ich werde das file hier nicht posten, da es die eindeutige MAC Adresse des Gerätes sowie die individuelle EID enthält (könnte so auf eine blacklist kommen...). Wer ein Max/Max2 mit FW<7 hat und dieses nicht mehr braucht melde sich hier bitte gerne als Spender.


    1. Ihr braucht die MAC und EID des Storios, der den debug-Modus aktiviert bekommen soll. Wandelt die beiden Strings in Hex um. (https://string-functions.com/string-hex.aspx). Achtet darauf, das die MAC-Adresse nur Kleinbuchstaben enthält, ehe ihr sie als Hex Werte anzeigen lässt.

    2. Ladet euch das win-prg. InnoMaxTestMode.rar von Iso-mick aus post#18 runter. Ihr braucht das besagte vtech_debug.seed file und einen debugger, in diesem Beispiel hier x64dbg (https://x64dbg.com). Startet x32dbg aus dem Paket.

    3. Zieht die exe von isomick in den debugger. F9 zum Ausführen drücken, bis ihr das prg.-Fenster von "InnoMaxTestMode" seht.

    4. Dort "browse" drücken, dann die vtech_debug.seed auswählen. Zwischendurch in x32dbg immer wieder mit F9 weiterspringen, bis ihr das folgende Bild seht:

    5. Im InnoMaxTestMode Fenster, hier im Bild unten rechts zu sehen, sollte nun die EID und MAC-Adresse aus dem geladenen vtech_debug.seed file stehen (die Angaben habe ich hier unkenntlich gemacht)

    6. Falls noch nicht gemacht notiert euch diese angezeigte EID und MAC-Adresse, am besten in einem Editor, und kopiert zunächst die EID in die Zwischenablage mit STRG+C

    7. in x32dbg: Im Reiter Symbole gehen wir mit doppelklick auf die "inntotabtestmode.exe", die sollte danach im Titel vom x32dbg als aktueller Thread angezeigt werden.

    8. Klickt nun in den Reiter "Speicher Map", dann Rechtklick in das Fenster und "Muster finden" wählen (STRG+b).

    9. In dem sich öffnenden Fenster von x32dbg die EID (in Hex) bzw. als String im Feld ASCII eintragen (STRG+V um sie aus der Zwischenablage einzufügen). Ihr solltet 3 Speicheradressen mit der EID angezeigt bekommen. Klickt auf die erste.

    10. Nun dürft ihr hier jeweils mit der Leertaste "wert ändern" die angezeigte EID aus der .seed in die Ziel EID abändern. Dafür sind die Hex-Werte nötig, die wir in 1. erzeugt haben.

    11. Wiederholt Punkt 8. bis 10. für alle drei Fundstellen der EID im Speicher. Zur Kontrolle könnt ihr wie in Punkt 8 geschrieben die neu eingetragene EID als ASCII-String suchen, sie müßte 3 Mal gefunden werden, sonst habt ihr einen Tippfehler gemacht.

    12. Nun die MAC Adresse aus dem .seed file in Hex-Form suchen: wieder Reiter "Speicher Map", dann Rechtklick in das Fenster und "Muster finden" wählen. Es gibt wieder 3 Fundstellen. Doppelklick darauf, dann wieder Zeichen für Zeichen die MAC Adresse in Hex-Form in unsere "Ziel-MAC" abändern. Zur Kontrolle in der Speicher-Map die neu eingehackte MAC suchen, sie sollte wieder 3x gefunden werden.

    13. Jetzt zurück ins Programmfenster von inntotabtestmode.exe, hier "create pick file" klicken, es wird eine Datei vtech_debug.pick erzeugt. (Ggf. in x32dbg. mit F9 durchlaufen lassen).


    Lohn der Mühe ist, das wir ohne die Verschlüsselung der .seed und .pick kennen zu müssen, dem Programm von isomick (zugegeben sehr dirty) unsere Ziel EID und MAC untergeschoben haben. Die erzeugte .pick in den Vtech Ordner kopieren, Fertig.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!