Pages

Τρίτη 22 Ιανουαρίου 2013

MK809 Android TV και Development ModeMK809 Android TV in Development Mode

Εισαγωγή

Introduction

Πριν από λίγο καιρό αγοράσαμε, εγώ κι ένας φίλος, από ένα MK809. Πρόκειται για ένα μικρό stick που περιέχει ένα διπλοπύρηνο ARM μικροελεγκτή στα 1.6GHz με εσωτερική μνήμη 4GB και 1GB DDR3. Γενικά, έχει πολλά καλούδια, αλλά το ωραιότερο είναι πως τρέχει Android 4.1.1.

A few days ago, me and a friend of mine bought a MK809 each. It is a small stick that contains a dual core ARM processor running at 1.6GHz, with internal storage memory of 4GB and 1GB of DDR3 RAM. It provides many nice features but the better of them is it runs Android 4.1.1.

Πήραμε το εργαλείο στα χέρια μας και αρχίσαμε να παίζουμε μαζί του. Εγκαταστήσαμε ότι εφαρμογές και παιχνίδια θέλαμε, XBMC 12.0 και άλλα. Σερφάραμε στο Internet και ρίξαμε μέσα και ένα VNC έτσι για να κάνουμε τον χαβαλέ μας. Όλα ήταν τέλεια!

When this small tool reached our hands we started "playing" with it. We installed whatever applications and games we wanted, XBMC 12.0 and many more. We surfed the internet and we also installed a VNC client just for fun. It was awesome!

Angry Birds, γιατί τα παιχνίδια δεν είναι μόνο... για να παίζουμε!

Angry Birds, because games are not only... to play!

Ο τίτλος της παραγράφου φαίνεται λίγο περίεργος;!!! Ναι. Εδώ και αρκετά χρόνια ξέρουμε πολύ καλά πως τα πάντα γίνονται για τα παιχνίδια. Η πρώτη γλώσσα προγραμματισμού που έμαθα ήταν η BASIC μιας και έπαιζα με το αγαπημένο μου ZX Spectrum της εποχής, αλλά η δεύτερη ήταν η Assembly του για να μπορώ να σπάω τα παιχνίδια και να τους βάζω άπειρες ζωές κ.λ.π. Με παρόμοιο τρόπο ξεκίνησε και αυτή εδώ η ιστορία που καταλήγει στο παρών blog post· μόνο που αυτή τη φορά το παιχνίδι ήταν η δημοφιλής σειρά Angry Birds και ο τρόπος στο να μεταφέρουμε τα αστεράκια που έχουμε από το κινητό μας στο MK809.

Do you find the title of this paragraph strange?!!! Well, we know that games are responsible for many things that happened on computer science and evolution all these past years. The first programming language I learned was BASIC since I owned a ZX Spectrum then, but the second one is Z80 Assembly for that computer just to be able to crack its games and have infinite lives etc. In a similar way this story started and ended with this blog post; the only difference is the very popular series of Angry Birds games and the way to transfer our stars from our smartphone to MK809.

Τα διάφορα προγράμματα για Backup ΔΕΝ ΛΕΙΤΟΥΡΓΟΥΝ!...

Various backup applications DO NOT WORK!...

Αρχικά οι δοκιμές ήταν να μεταφέρουμε τα αστεράκια που με τόσο κόπο είχαμε κερδίσει όλα αυτά τα χρόνια που έχουμε λιώσει τις touchscreen των κινητών μας, με τη βοήθεια backup προγραμμάτων που υπάρχουν στο Google Play... Δεν υπήρξε καμιά επιτυχία σε αυτό. Τι να δοκιμάζουμε προγράμματα που κάνουν backup/restore στην κάρτα μνήμης... Τι να δοκιμάζουμε άλλα που δουλεύουν και μέσω dropbox... Τίποτα. Μόνο αποτυχίες.

In the beginning we tried to transfer the Angry Birds stars that we gained in such a hard play, melting the touchscreens of our smartphones! We used some backup applications, downloaded from Google Play... Well,... no success... We tried applications that backup and restore the stars in memory card... other programs that use dropbox... Nothing. Failure... No Success at all!

Κάποια στιγμή, θυμήθηκα ότι παλιότερα μέσω του adb που εχει το Android Development Toolkit για το Eclipse, μπορούσα και έγραφα αρχεία μέσα στο κινητό μου ακόμα και αν δεν ήμουν root. Ψάχνοντας στο Internet βρήκαμε κάποιο blog post που περιγράφει μια τέτοια διαδικασία, οπότε ήμουν σίγουρος πως θα πετυχαίναμε το επιθυμητό αποτέλεσμα!...

At a moment I remembered that once, using adb which is in Android Development Toolkit for Eclipse, I could write files in my cellphone even if I hadn't root access. Searching the internet we found a blog post that describes such a procedure, so I was sure we could do the trick successfully!...

ΜΚ809 USB Development Mode

Ήρθε η ώρα για το ψητό! Ας συνδέσουμε το MK809 στον υπολογιστή και να το δούμε από το adb του Android Development Toolkit. Τρέχουμε από ένα τερματικό την εντολή adb devices και... Πού είναι το ΜΚ809, οέωωω! Χμμμ... Κάτι δεν πάει καλά!

Time to play! Lets connect MK809 to the computer and see if we can use adb of Android Development Toolkit. In a terminal we execute the command adb devices and... What! Were the heck is MK809?!!! Hmmm... Something is wrong!

Μετά από αρκετή αναζήτηση στο internet, βρήκα ένα blog post που έλεγε πώς να κάνεις root το ΜΚ809, αλλά... Δεν δούλεψε... Ήταν για bugindows... Επίσης, περισσότερο έμοιαζε για άλλη έκδοση του MK80*, μιας και το blog post ανέφερε κάτι για μια πλαϊνή θύρα USB On-The-Go. Αυτή η θύρα δεν υπάρχει στο MK809.

Again, after a lot of internet searching, we found another blog post describing how to root ΜΚ809, but... didn't work... It was for bugindows... At the same time looked that is was for another MK80* device, as blog post was using a USB On-The-Go port at the side of the device. MK809 does not have a USB connector at its side.

Φυσικά το post μου έδωσε μερικές ιδέες μιας και ήταν κοντά στην πραγματικότητα. Μετά από μερικά lsusb και δοκιμές, βρήκα ότι το ΜΚ809 το έβλεπε ο υπολογιστής μου ότι συνδεόταν, το λειτουργούσε σαν USB Stick, αλλά developer mode δεν υπήρχε:

Of course, that post gave me some ideas as it was for a similar device, there should be similarities in the logic of the workflow. After some lsusb and tests, I found out that my computer could find the ΜΚ809 upon connection and it was using it as a USB memory stick, but there was no developer's mode:

orion:/etc/udev # lsusb
Bus 001 Device 002: ID 0bda:0158 Realtek Semiconductor Corp. USB 2.0 multicard reader
Bus 002 Device 002: ID 5986:0130 Acer, Inc 
Bus 002 Device 027: ID 2207:0010  
Bus 003 Device 005: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Η τρίτη γραμμή του lsusb είναι που φαίνεται λίγο παράξενη. Αυτή είναι η γραμμή που προστίθεται όταν συνδέσουμε το MK809. Μετά από ώριμη (;) σκέψη καταλήγουμε στο ότι το σύστημα δεν έχει τον απαραίτητο driver για να το λειτουργήσει...

The third line of the lsusb snapshot (boldfaced) looks a little bit weird. That is the added line each time we connect MK809. After some mature (?!!! :)) thinking we end up to the conclusion that the system does not have the correct driver module to use it...

Η πραγματικότητα είναι ακόμα πιο περίεργη. Ψάχνοντας λίγο στο διαδίκτυο παρατήρησα ότι το RK3066 που είναι το ολοκληρωμένο που χρησιμοποιεί το MK809 δεν έχει κάτι ιδιαίτερο, εκτός του ότι είναι αρκετά νέο! Άρα, οι ήδη υπάρχοντες drivers θα μπορούσαν να το λειτουργήσουν μια χαρά, μόνο που ήταν αρκετά νέο device για να το αναγνωρίζουν!... Εδώ ξεκινάει ένα μικρό παιχνίδι με το udevd!

Reality is even more weird... Searching a little more the internet (what else could we do?) we found that RK3066, which is the processor of MK809 does not have anything particular compared to other similar devices, except that it is a very new chip. So, it seemed the already existed drivers could handle it without problem, but they didn't know its existence!... Time to play with udevd!

udevd rules για την αναγνώριση του ΜΚ809

udevd rules to recognise ΜΚ809

Άντε να δούμε τι θα κάνουμε για να αναγνωρίσει το σύστημα το καινούργιο chip του MK809. Καταρχήν θα πρέπει να προσθέσουμε μια συνθήκη στο udevd που να αναγνωρίζει το USB Device με id 2207:0010. Στη διανομή openSUSE οι κανόνες του udevd βρίσκονται μέσα στον κατάλογο /etc/udev/rules.d/ κι εκεί θα πρέπει να προσθέσουμε το δικό μας. Επειδή η κάθε διανομή έχει τα δικά της, καλό θα είναι για μια άλλη διανομή να βρείτε πού υπάρχουν οι κανόνες και να κάνετε την προσθήκη σε εκείνο τον κατάλογο. Το αρχείο που θα φτιάξουμε είναι το 99-MK809-Android.rules:

Lets see what can we do to make our system recognise the new chip that MK809 uses. Our first step is to add a udevd rule to recognise USB Devices with id 2207:0010. In openSUSE udevd rules lie in /etc/udev/rules.d/ directory. Since in every distribution uses its own directory, it would be nice to find out (if you don't already know) which directory is the appropriate one for this job and make the described addition there. Th file we will add is named 99-MK809-Android.rules:

eliaschr@orion:~>su
Password: 
orion:/home/eliaschr # cd /etc/udev/rules.d/
orion:/etc/udev/rules.d # vi 99-MK809-Android.rules

#
# udev rules file for MK809 Android TV Stick
#
# Added by me (eliaschr) so as to be able to use MK809 in development mode
# To use it, first enable "USB debugging" in "Developer options" (System Settings)
# and then in the "USB" tab (Device Settings) select "Connect to PC".
#
SUBSYSTEM=="usb", ATTR{idVendor}=="2207", ATTR{idProduct}=="0010", , MODE="0666", SYMLINK+="MK809_adb"

Σώστε το αρχείο και βγείτε από το vi. Φυσικά μπορείτε να χρησιμοποιήσετε όποιον editor θέλετε, ή ακόμα και μια γραμμή εντολής που να φτιάχνει το αρχείο, αρκεί το αποτέλεσμα να είναι το ίδιο.

Save the file and quit vi. Of course you can use whatever text editor you like, or even a cat bash command (or any other you like) to create the file, as long as it produces the same result.

ΕΝΗΜΕΡΩΣΗ: Σε ένα φίλο που έχει ένα κινητό Huaway Ideos3 έπρεπε να προσθέσουμε ακόμια μια γραμμή στο αρχείο του udev που μόλις δημιουργήσαμε για να μπορέσει το σύστημα να το διαβάσει:

UPDATE: A friend of mine owns a Huaway Ideos3. We had to add another line for that in the udev rule we created in order to make the system recognise his cell phone also:

SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", ATTR{idProduct}=="1038", , MODE="0666", SYMLINK+="Ideos3_adb"

Το επόμενο βήμα είναι να πούμε στο adb να ψάχνει και αυτή τη συσκευή. Για να γίνει αυτό θα πρέπει να πειράξουμε το αρχείο adb_usb.ini που υπάρχει μέσα στον κατάλογο .android στο home directory του χρήστη μας:

Next step is to make adb to include this device in its search process. In order to make it possible we have to alter adb_usb.ini file in .android subdirectory in our user's home:

eliaschr@orion:~> cd .android
eliaschr@orion:~/.android> vi adb_usb.ini

Εκεί προσθέτουμε μια γραμμή που περιέχει το:

There, we add a line containing just:

0x2207

Σώστε το αρχείο και βγείτε από το vi. Μια σημείωση είναι πως αν είχαμε χρησιμοποιήσει πιο πριν το adb, τότε ο server του Android Development Toolkit θα τρέχει, που σημαίνει πως για να διαβάσει τις καινούργιες ρυθμίσεις του αρχείου που μόλις πειράξαμε θα πρέπει να τον ξαναξεκινήσουμε. Η εκκίνηση γίνεται από το πρόγραμμα adb. Απλά θα πρέπει εμείς να τον σκοτώσουμε. Αρκεί να εκτελέσουμε την ακόλουθη εντολή:

Save the file and exit vi. Note that if we used adb earlier while making our experiments, then the Android Development Toolkit server is up and running, meaning that we have to restart it in order to read the new settings. You can restart it using adb. Just kill it first with the following command:

eliaschr@orion:~> adb kill-server

Το τελευταίο κομμάτι που πρέπει να γίνει είναι να υποχρεώσουμε το udevd να διαβάσει τους καινούργιους κανόνες:

The last part is to force udevd to read the new rules:

eliaschr@orion:~>su
Password: 
orion:/home/eliaschr # udevadm control --reload-rules
orion:/home/eliaschr #

Στη συνέχεια συνδέουμε το MK809 με ένα καλώδιο micro USB στον υπολογιστή μας. Στα Settings, από την αριστερή μεριά, στο block SYSTEM επιλέγουμε το "{} Developer options". Στη δεξιά μεριά της οθόνης βλέπουμε όλες τις διαθέσιμες ρυθμίσεις. Αν είναι απενεργοποιημένες, τότε θα πρέπει να τις ενεργοποιήσουμε από τον διακόπτη πάνω και δεξιά στην οθόνη, γυρίζοντάς τον στο "ΟΝ". Από τις επιλογές ενεργοποιούμε τις δύο βασικές στο block "DEBUGGING", που είναι οι "USB debugging" και "Allow mock locations". Η επιλογή "Select debug app" δεν περιέχει κάποια επιλογή, αλλά αυτό δεν μας ενοχλεί.

Lets connect MK809 using a micro USB cable to our computer. Also in MK809 screen, in Settings, at the left side of the screen, in SYSTEM block we select "{} Developer options". In the right part of the screen we can see all the avilable options. If they are disabled we have to enable them first using the switch widget at the top right of the screen, by sliding it to "ΟΝ". From the available options we select the two basic ones in "DEBUGGING" block; they are "USB debugging" and "Allow mock locations". "Select debug app" option does not contain any value, but this is valid.

Τέλος, από την αριστερή πλευρά της οθόνης των ρυθμίσεων επιλέγουμε το "USB" στο block "Device". Τότε στη δεξιά μεριά της οθόνης εμφανίζεται η μόνη επιλογή "Connect to PC". Μόλις την ενεργοποιήσουμε θα δούμε το MK809 να εμφανίζει στην οθόνη στο κάτω μέρος της το μήνυμα "USB debugging connected". Στον υπολογιστή μας θα δούμε ότι το adb έχει αναγνωρίσει το MK809 αν εκτελέσουμε την εντολή:

Finally, on the left side of the settings screen we select "USB" in the "Device" block. Then, in the right side we can see the one and only "Connect to PC" option. When we enable this option we can MK809 ahowing a message at the bottom of the screen saying "USB debugging connected". On out computer now, we can use adb and confirm that it can recognise MK809 device, using the command:

eliaschr@orion:~> adb devices
List of devices attached 
0123456789ABCDEF        device

eliaschr@orion:~> 

Μπορούμε, λοιπόν, να δουλέψουμε κανονικά το ΜΚ809 σε Developer Mode.

So, we can use MK809 in Developer Mode without problems.

Bonus για τους αναγνώστες του άρθρου: Angry Birds - Τα scores μας!

Bonus part ro the readers of this article: Angry Birds - Lets copy our scores!

Λίγες τεχνικές λεπτομέρειες
Some technical details

Η σειρά των παιχνιδιών Angry Birds έχει κάνει γερό πάταγο και δε νομίζω να υπάρχει κανένας που να μην έχει ασχοληθεί έστω και λίγο μαζί τους. Θα ξεκινήσουμε από μερικές μικρές λεπτομέρειες σχετικά με τα δεδομένα που μας ενδιαφέρουν.

The Angry Birds series of games is very popular these days. I don't thing there is anybody that hasn't played one of these games, even for a short time. We will present some of its technical details for their necessary data storage.

Αυτή τη στιγμή υπάρχουν τα εξής παιχνίδια της εν λόγω σειράς:

At the time of this writing the series of these games has:

  • Angry Birds
  • Angry Birds Seasons
  • Angry Birds Rio
  • Angry Birds Space
  • Angry Birds Star Wars

Φυσικά μιλάμε για τις δωρεάν εκδόσεις των παιχνιδιών. Το κάθε ένα από αυτά κρατάει κάποια στοιχεία που έχουν να κάνουν με τα scores των παικτών, κάποια settings κ.λ.π.

Of course we are talking about the free versions of the games. Each one writes some data to keep players' scores, settings etc.

Τα directories που καταγράφονται οι πληροφορίες μέσα σε μια Android συσκευή, είναι:

The directories that hold these files in an Android device are:

  • Angry Birds: /data/data/com.rovio.angrybirds/
  • Angry Birds Seasons: /data/data/com.rovio.angrybirdsseasons/
  • Angry Birds Rio: /data/data/com.rovio.angrybirdsrio/
  • Angry Birds Space: /data/data/com.rovio.angrybirdsspace.ads/
  • Angry Birds Star Wars: /data/data/com.rovio.angrybirdsstarwars.ads.iap/

Μέσα εκεί υπάρχει ένας υποκατάλογος με ονομασία files κι εκεί περιέχονται τα δεδομένα που μας ενδιαφέρουν. Σε γενικές γραμμές τα δύο βασικά αρχεία είναι τα highscores.lua και settings.lua. Επιπλέον, τα Angry Birds Space και Angry Birds Star Wars έχουν άλλα τρία αρχεία: eaglepurchases.lua, episodepurchases.lua και gamepurchases.lua. Αυτά είναι τα αρχεία που θα πρέπει να μεταφέρουμε από τη μια συσκευή στην άλλη, προκειμένου να διατηρήσουμε τα highscores μας.

In there, there is a subdirectory called files that stores the necessary files we need. In general terms, two are the files that we have to manpulate and these are highscores.lua and settings.lua. Additionally, Angry Birds Space and Angry Birds Star Wars include three other files, also: eaglepurchases.lua, episodepurchases.lua and gamepurchases.lua. These are the files we must copy from the source device to the other, in order to transfer our highscores to the latter.

Μεταφορά αρχείων με το adb
Files transfer using adb

Αρχικά συνδέουμε τη συσκευή η οποία περιέχει τα scores που θέλουμε να μεταφέρουμε. Είναι η συσκευή που έχουμε περάσει ατελείωτες ώρες, παίζοντας, βρίζοντας κ.λ.π. μέχρι να γεμίσουμε τα πάντα με τρία αστεράκια :)

First we connect the source device that contains the scores we want to transfer from, to our computer. Its the device that we've spent infinite ours of playing, cursing etc, until we reach our goal to have three stars in every level :)

Όταν τη συνδέσουμε εκτελούμε τις ακόλουθες εντολές:

In a terminal execute the following commands:

eliaschr@orion:~> mkdir AngryBirdsBackup
eliaschr@orion:~> mkdir AngryBirdsBackup/ab/
eliaschr@orion:~> mkdir AngryBirdsBackup/abs/
eliaschr@orion:~> mkdir AngryBirdsBackup/abr/
eliaschr@orion:~> mkdir AngryBirdsBackup/absp/
eliaschr@orion:~> mkdir AngryBirdsBackup/absw/

Με αυτές δημιουργήσαμε ένα directory για κάθε παιχνίδι, που θα κρατήσει τα ευαίσθητα δεδομένα μας :). Ήρθε η ώρα να μεταφέρουμε τα αρχεία από τη συσκευή στον υπολογιστή μας:

These commands create one directory for each game; that will hold our sensitive data :). Time to copy the files from the source device to our computer:

eliaschr@orion:~> cd AngryBirdsBackup/
eliaschr@orion:~/AngryBirdsBackup> #
eliaschr@orion:~/AngryBirdsBackup> # Get Angry Birds files
eliaschr@orion:~/AngryBirdsBackup> adb pull /data/data/com.rovio.angrybirds/files/highscores.lua ab/
eliaschr@orion:~/AngryBirdsBackup> adb pull /data/data/com.rovio.angrybirds/files/settings.lua ab/
eliaschr@orion:~/AngryBirdsBackup> #
eliaschr@orion:~/AngryBirdsBackup> # Get Angry Birds Season files
eliaschr@orion:~/AngryBirdsBackup> adb pull /data/data/com.rovio.angrybirdsseasons/files/highscores.lua abs/
eliaschr@orion:~/AngryBirdsBackup> adb pull /data/data/com.rovio.angrybirdsseasons/files/settings.lua abs/
eliaschr@orion:~/AngryBirdsBackup> #
eliaschr@orion:~/AngryBirdsBackup> # Get Angry Birds Rio files
eliaschr@orion:~/AngryBirdsBackup> adb pull /data/data/com.rovio.angrybirdsrio/files/highscores.lua abr/
eliaschr@orion:~/AngryBirdsBackup> adb pull /data/data/com.rovio.angrybirdsrio/files/settings.lua abr/
eliaschr@orion:~/AngryBirdsBackup> #
eliaschr@orion:~/AngryBirdsBackup> # Get Angry Birds Space files
eliaschr@orion:~/AngryBirdsBackup> adb pull /data/data/com.rovio.angrybirdsspace.ads/files/highscores.lua absp/
eliaschr@orion:~/AngryBirdsBackup> adb pull /data/data/com.rovio.angrybirdsspace.ads/files/settings.lua absp/
eliaschr@orion:~/AngryBirdsBackup> adb pull /data/data/com.rovio.angrybirdsspace.ads/files/episodepurchases.lua absp/
eliaschr@orion:~/AngryBirdsBackup> adb pull /data/data/com.rovio.angrybirdsspace.ads/files/gamepurchases.lua absp/
eliaschr@orion:~/AngryBirdsBackup> adb pull /data/data/com.rovio.angrybirdsspace.ads/files/eaglepurchases.lua absp/
eliaschr@orion:~/AngryBirdsBackup> #
eliaschr@orion:~/AngryBirdsBackup> # Get Angry Birds Star Wars files
eliaschr@orion:~/AngryBirdsBackup> adb pull /data/data/com.rovio.angrybirdsstarwars.ads.iap/files/highscores.lua absw/
eliaschr@orion:~/AngryBirdsBackup> adb pull /data/data/com.rovio.angrybirdsstarwars.ads.iap/files/settings.lua absw/
eliaschr@orion:~/AngryBirdsBackup> adb pull /data/data/com.rovio.angrybirdsstarwars.ads.iap/files/episodepurchases.lua absw/
eliaschr@orion:~/AngryBirdsBackup> adb pull /data/data/com.rovio.angrybirdsstarwars.ads.iap/files/gamepurchases.lua absw/
eliaschr@orion:~/AngryBirdsBackup> adb pull /data/data/com.rovio.angrybirdsstarwars.ads.iap/files/eaglepurchases.lua absw/

Αυτά θα αντιγράψουν τα απαραίτητα αρχεία στον υπολογιστή μας. Υπενθυμίζουμε ότι δεν χρειάζεται να είμαστε root για να γίνουν οι αντιγραφές.

Now the necessary files are in our computer's storage. Remember that we don't need to be root user to make the copies.

Αποσυνδέουμε τη συσκευή μας και συνδέουμε το MK809. Αρχικά θα πρέπει να εγκαταστησουμε τα παιχνίδια Angry Birds που μας ενδιαφέρουν. Είναι απαραίτητη προϋπόθεση να παίξουμε τουλάχιστον μια πίστα σε κάθε ένα, για να δημιουργηθεί η δομή των φακέλων όπως ακριβώς χρειάζεται. Αν δεν γίνει αυτό δε θα μπορέσουμε να αντιγράψουμε τα αρχεία με τα scores μας!.

We disconnect the source device and connect MK809. But before we do that we have to install the Angry Birds games in MK809 and must have played at least one level in each one. The games will create the necessary file structure in the device. Fail to do that, we will not be able to copy the score files.!.

Ενεργοποιούμε το Connect to PC (προϋπόθεση φυσικά είναι να έχουμε κάνει και τα υπόλοιπα βήματα για να μπορέσουμε να λειτουργήσουμε το MK809 από το adb). Αφού ο υπολογιστής μας το δει εκτελούμε τις αντίθετες αντιγραφές για να μεταφέρουμε τα αρχεία που βρίσκονται στον υπολογιστή μας μέσα στο MK809:

Enable Connect to PC (keep in mind that all the previous steps to make MK809 be recognised by adb must be completed). After our computer sees the device we can make the same copies of the files, but in reverse direction; from PC to MK809:

eliaschr@orion:~/AngryBirdsBackup> #
eliaschr@orion:~/AngryBirdsBackup> # Save Angry Birds files
eliaschr@orion:~/AngryBirdsBackup> adb push ab/highscores.lua /data/data/com.rovio.angrybirds/files/
eliaschr@orion:~/AngryBirdsBackup> adb push ab/settings.lua /data/data/com.rovio.angrybirds/files/
eliaschr@orion:~/AngryBirdsBackup> #
eliaschr@orion:~/AngryBirdsBackup> # Save Angry Birds Season files
eliaschr@orion:~/AngryBirdsBackup> adb push abs/highscores.lua /data/data/com.rovio.angrybirdsseasons/files/
eliaschr@orion:~/AngryBirdsBackup> adb push abs/settings.lua /data/data/com.rovio.angrybirdsseasons/files/
eliaschr@orion:~/AngryBirdsBackup> #
eliaschr@orion:~/AngryBirdsBackup> # Save Angry Birds Rio files
eliaschr@orion:~/AngryBirdsBackup> adb push abr/highscores.lua /data/data/com.rovio.angrybirdsrio/files/
eliaschr@orion:~/AngryBirdsBackup> adb push abr/settings.lua /data/data/com.rovio.angrybirdsrio/files/
eliaschr@orion:~/AngryBirdsBackup> #
eliaschr@orion:~/AngryBirdsBackup> # Save Angry Birds Space files
eliaschr@orion:~/AngryBirdsBackup> adb push absp/highscores.lua /data/data/com.rovio.angrybirdsspace.ads/files/
eliaschr@orion:~/AngryBirdsBackup> adb push absp/settings.lua /data/data/com.rovio.angrybirdsspace.ads/files/
eliaschr@orion:~/AngryBirdsBackup> adb push absp/episodepurchases.lua /data/data/com.rovio.angrybirdsspace.ads/files/
eliaschr@orion:~/AngryBirdsBackup> adb push absp/gamepurchases.lua /data/data/com.rovio.angrybirdsspace.ads/files/
eliaschr@orion:~/AngryBirdsBackup> adb push absp/eaglepurchases.lua /data/data/com.rovio.angrybirdsspace.ads/files/
eliaschr@orion:~/AngryBirdsBackup> #
eliaschr@orion:~/AngryBirdsBackup> # Save Angry Birds Star Wars files
eliaschr@orion:~/AngryBirdsBackup> adb push absw/highscores.lua /data/data/com.rovio.angrybirdsstarwars.ads.iap/files/
eliaschr@orion:~/AngryBirdsBackup> adb push absw/settings.lua /data/data/com.rovio.angrybirdsstarwars.ads.iap/files/
eliaschr@orion:~/AngryBirdsBackup> adb push absw/episodepurchases.lua /data/data/com.rovio.angrybirdsstarwars.ads.iap/files/
eliaschr@orion:~/AngryBirdsBackup> adb push absw/gamepurchases.lua /data/data/com.rovio.angrybirdsstarwars.ads.iap/files/
eliaschr@orion:~/AngryBirdsBackup> adb push absw/eaglepurchases.lua /data/data/com.rovio.angrybirdsstarwars.ads.iap/files/

Μετά από αυτές τις εντολές, μπορείτε πλέον να κλείσετε το Connect to PC από το MK809 και να το αποσυνδέσετε. Τρέξτε τα αγαπημένα σας παιχνίδια και απολαύστε όλα τα αστέρια που είχατε κερδίσει από πριν, σε ατελείωτες ώρες παιχνιδιού και κατάρων :)

Now, you can disable Connect to PC from MK809 and disconnect it. Execute your favourite games and enjoy them, having the stars and scores you previously gained so hard, through curses and infinite hours of play, on a different device :)

Χρυσοχέρης Ηλίας

Elias Chrysocheris