Installing Google Play Store on the Asus Tinker Board
Google Play Store
Asus has released a new build of Android for the Asus Tinker Board last week. It’s a fairly minor upgrade. It’s still based on Android 6.0.1 with kernel 3.10.0 but sees a number of fixes. However, there is no Google Play Store. This makes installing and upgrading apps tiresome. Fortunately, there’s a solution. This walk-through explains how to install the Play Store on the Tinker Board.
- The first step is to install the latest Android system image to a microSD card.
- Next, determine the local IP address of your Tinker Board. Go to the Application folder, select Settings, then select About tablet (in the System section), and choose Status. As you can see from the graphic below, the IP address on my local network is 192.168.1.106. Your IP address is likely to be different. Use your local IP address instead of 192.168.1.106.
- Next, we’ll use the adb command line tool as it enables us to communicate with an Android device. adb stands for Android Debug Bridge. Check you have adb installed on your Linux box. If not, install it via your distribution’s package manager, or from the command-line (e.g. for Debian based distributions):
sudo apt install adb
- Download Google Play Services, Google Services Framework, and Google Play Store apks from apkmirror.com to a Linux box. The Tinker Board uses the armeabi-v7a and armeabi instruction sets. Download links: Google Play services, Google Services Framework, Google Play Store.
- Rename the downloaded files (using mv) to playservices.apk, gsf.apk and playstore.apk respectively.
- Copy the files to the Tinker Board. At a Linux shell, type the following commands replacing 192.168.1.106 with your local IP address for the Tinker Board:
adb connect 192.168.1.106
adb root
adb connect 192.168.1.106
adb shell
mount -o remount,rw /system
exit
adb push playservices.apk /system/priv-app/
adb push gsf.apk /system/priv-app/
adb push playstore.apk /system/priv-app/
- From the Application folder, go to Settings, Apps, and give all permissions to both the Google Play services app and the Google Play Store app. For brevity, I show a screenshot for Google Play Store only.
- Reboot the Tinker Board.
- On my system, Google Play Services kept shutting down. Fortunately, an update of Google Play services fixes the problem. So at a Linux shell, type the following:
adb connect 192.168.1.106
adb root
adb install -r playservices.apk
- If everything is ok, you’ll now have the Google Play Store.
Here’s Google Play Store in action.
Click to rate this software
[Total: 0 Average: 0]
[…] Android, this isn’t a concern. However, a real omission is Google Play Store, although this walk-through shows you how to install this essential app on the […]
Many thanks Steve! I’ll try this out tonight.
It’ll be great if you let us know how you get on. I’m loving Google Play Store on the Tinker board.
As per your instructions…
It works like a champ! 🙂
In my instance, after uploading the APKs, and visiting what initial app-security settings were available, I rebooted. After it came back up once, I saw elements of the setup-wizard already working. I revisited the app-security panel and dressed out the rest of the permissions, then rebooted again. At this point, the setup-wizard optimized 3 apps during system boot, and then upon clicking ‘Google Playstore’, I was prompted to enter my credentials. 🙂
I did get a bit of ‘expected service crashes’ (3) along the way, but after all was said and done, the image is now stable. I’m running an update of all my apps now, as I type this, and it’s having no problems working with my registered Google account.
Excellent work on the HowTo!
(btw, I used an RPi3 system, running a custom loadout of Raspbian-LITE with Mate Desktop to pull down the link I’d emailed myself, do the steps, and answer back with the results. Man… I really love these embedded systems! Loaded out properly, they make for some wicked-fast desktop environments –in spite of what any detractors may want to offer about Linux Desktops. I’m getting to where this is my preferred way to use the net from home.)
[fyi-only; addendum for project detail reference]
This initial build I’ve done was a POC (proof of concept) build, so now that I’m seeing it working, I’m thinking I’d like to image this drive and port that to a much larger, faster SD. I did the POC on an old 4GB… no telling what speed this thing is… but I know it’s sluggish. I’m thinking that the new Class-10 Samsung SDXC cards I have will be perfect for a production install, for day-to-day use around the house as a touch-based Android mega-tablet –I’ve got this thing paired up with a 23″ Dell Touchscreen monitor that supports 10-point multi-touch, and it’s working perfectly other than the need to upgrade the storage medium.
Do you think ‘Win32Diskimager” (if I’m recalling the name correctly; it’s early yet here) is up to the task of making a clean-backup, and restoring that to a 32GB disk? I’m thinking that I should only need to followup the restore with a visit from Gparted to resize the partitions manually, and then boot it up. Whacha think? 🙂
I’m thinking that a fresh installed image, with the APKs already in place and reset to factory defaults may work as a good image source for my own deployments. But I’m also of the thought that I probably shouldn’t post it as it may violate Google’s terms of use…or something like that.
Although, along those lines… I wonder… can other APKs be preloaded into an image using the technique your howto describes for the privileged package push? I think it’d be kinda neat to preload Kodi-17, and a few other choice apps, and then make my final in-house image from that.
Google Play Store really makes a huge difference. Well done for getting it working!
While I’m more of a Linux guy, Win32Diskimager is certainly up to the task of cloning SD cards – done that on other SBCs, so no reason why it shouldn’t work on the Tinker Board.
I think for your own personal use you’ll be ok with the build, but distributing an image with Google Play Store is difficult, a number of factors to consider.
I ran with the idea of Win32DiskImager, and it worked for doing the cloning, but I later found that Gparted (running from a USB hard drive containing a 100GB Linux partition loaded with Ubuntu 16.04) didn’t recognize the file system. It could simply be that I need to make a bootable USB disk of the newest Gparted-Live, but I’m short on time and at this point it’s faster to just wipe the 32GB disk, do a clean install of the Asus image, boot it up and do the HowTo steps to inject the playstore, and then after all is well with the permissions settings, shut it down, image that and compress the image.
I’ll keep that one for inhouse only, that way I don’t get any grief about it over distribution rights. 🙂
I should probably mention:
I used a Windows 10 Pro system for the imaging. That said though, I prefer Linux too. I’m running a mix of OS’s across my network, and use 2 separate virtualization hosts made from refurbished rackmounted servers, both running ESXi at the low level and hosting 12 VMs, aside from the rest of my home infrastructure. I work in IT professionally, but I also maintain a lab at home for doing POC builds and self-training, as well as for maintaining a managed network, rather than just a simple class C –my subnet is a 22bit, internally, with a separate 28bit VPN net, and it’s all running through domain authentication for unified auth throughout.
It’s a fairly complex setup… sort of a mini-Data-Center.
Sounds it!
May I ask which version of the Play Services you used for a stable system? I tried 11.0.38 and 11.0.33beta (the two are available from the web site you linked) but Play Services keeps crashing unfortunately. Logcat shows
java.lang.SecurityException: “gps” location provider requires ACCESS_FINE_LOCATION permission.
and
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file “/system/framework/com.android.location.provider.jar”, zip file “/system/framework/com.android.media.remotedisplay.jar”, zip file “/system/priv-app/playservices.apk”],nativeLibraryDirectories=[/system/lib/playservices, /system/priv-app/playservices.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]] couldn’t find “libgmscore.so”
which may be a hint for a broken play services apk.
Click the links for Google Play services, Google Services Framework, Google Play Store in the article, they take you to the versions I used. For Play Services, I used 10.5.62 (438-153733333).
Thanks Steve for coming back so quickly. Tried your versions, unfortunately same result. Keeps telling me “Unfortunately, Google Play services has stopped” every 5 seconds or so. I used the SD card image from here https://www.asus.com/Single-Board-Computer/Tinker-Board/HelpDesk_Download/ labeled “TinkerOS_Android V13.11.0.3 (Beta version)”. Is that the same that you’ve used?
Hi Torsten. Sorry to hear of your difficulties in getting Google Play Store working. I am using TinkerOS_Android V13.11.0.3 (Beta version). As the walkthrough says, I also got the Google Play services has stopped messages constantly. But running the additional commands fixed the issue:
adb connect 192.168.1.xxx
adb root
adb install -r playservices.apk
Ok.. will try that again, maybe it helps now. Just to be sure: the “playservices.apk” you use in this step is still the same 10.5.62 or have you downloaded some newer one before doing this step?
Thanks again for your nice walkthough.
Haaa.. don’t ask me why but after another error message, suddenly the play store appears. I always used a newer version of the playservices.apk during the last step, I misunderstood ” Fortunately, an update of Google Play services fixes the problem.”.. Thanks for your nice blog post.. really a great plus that one can run the play store on the Tinkerboard :-). Have a great weekend Steve!!!
Hey man, I ran back thru this howto on the new (non-beta) Android image, cleanly installed fresh. I took the step including ‘install -r’ and ran all 3 packages with that after pushing them individually, directly after doing the push while the system partition was still in rw mode.
This produced a clean install with no services errors –once I had manually setup my existing Google account credentials.
So upshot: I’d extend the howto instructions to manually perform the install steps after the push steps, in the same exact order.
Right now, my wife is gaming on it. 🙂
it’s working like a champ!
Howdy Sty, I checked the howto on the latest Android image; had to run the same steps to get it working here.
BTW, what games do you recommend on Android?
How do you guys get around the fact that the Tinker Board isn’t in the Google Certified list and wont run things like Netflix or Youtube apps when you instlall them with Playstore?
We get around that ‘fact’ by noting the Tinker Board runs Netflix and YouTube flawlessly – see https://www.ossblog.org/asus-tinker-board-inexpensive-home-theatre-solution/
I followed ETA primes setup for the Google Play Store on my Tinkerboard and after about 48 hours it started crashing my board. I also couldnt run netflix or youtube because of that certified thing I mentioned. I dont have a linux system or I would try your procedure. It seems to be a little better from what I can see.
On another note, Asus support says they will have a new version soon with the Google play store fixed and also will have a procedure for updated to the new Android OS in place instead of having to flash a new system. So that is all good.
Hi Jeffrey
While the walkthrough explains from a Linux perspective, you can mirror it in Windows. adb is available as a Windows binary.
Now you got me all worked up about doing this LOL. I am going to flash a fresh copy of the Android OS and try it out. I assume that I have to put the Tinkerboard in Developer mode for all of this???
I didn’t put the Tinker Board in Developer mode. Let us know how you get on!
I do have a question already LOL. Your comment above about “The Tinker Board uses the armeabi-v7a and armeabi instruction sets”. How does that affect what I am doing. The first two links were obvious what to download but third link there are lots of options. Not sure which to download. Was wondering if that comment tells me something about that?
The link I gave for Google Play Store 7.7.31 only has 1 variant, so download that. The reason I mention the instruction sets is to notify folk that apkmirror has releases that aren’t compatible with Tinker Board.
The ADB from Windows 10 pro to the Tinkerboard is a little erratic but I got through it and they are all three running without crashing the system or giving errors. I must be missing something though because when I go into the Google Play store and search on Netflix it doesnt show up. Lots of other look alikes are there but no netflix. When I search on chrome for netflix and click to install it from the google play store it says that ” ! our device isn’t compatible with this version”
Am I suppose to be installing netflix some other way?
I think I installed Netflix from apkmirror.
I guess I misunderstood. I was under the impression that you were able to install Netflix from the Google store. Do you know which version of Netflix worked for you?
I ended up installing Netflix 4.16.0 build 15122 and it seems to work perfectly. That is only App issue I have seen with the play store so far. Thanks for all the help!!
Indeed Netflix, Amazon Video, … all run fine. The only apps I have problems with are “Zattoo” and “Wilmaa”, which complain in logcat about “DRM module not found”. But this is probably a problem with the Android image provided by Asus and not related to Google Play.
Followed the above instructions (using the same versions)… Still getting “Google play services stopped working” randomly now and then…
However, the most significant seems to be that the initial Android release appears to be way way faster/responsive than the last one.
Thank you for this walk-through. Now, is there a way to root? I wanted to run some apps that require it, but this is no phone…
From others, it can be done using SuperSu, but it involves editing the update-binary script file. Way too involved as a comment on this blog post, which is about Google Play Store only. If someone wants to send me a walkthrough for rooting, please do.
Yes! I would like to have something like the description you meant!
I was not able to have the sudo rights, at the en I skipped the trouble installing APKPURE
well tryd and still crushing, made new os install 3 times and same thing happes. google play just keep crushing
Nice post.
How to upgrade the play services in tinker
Im getting this error when trying to run the mount /system/ command. Is there a way to free this up from other processes or am I approaching this problem wrong?
1|rk3288:/ # mount -o remount,rw /system
mount: ‘/dev/block/platform/ff0c0000.dwmmc/by-name/system’->’/system’: Device or resource busy
Update:
used this line instead of suggested above.
mount -o rw,remount /system