How to Run Android Apps Inside Chrome on Any Desktop Operating System
Expand
Recently, Google made the first batch of Android apps available for Chrome.
It was only a matter of time before some clever users gave that power
to everyone. Now that time has come. Here's how to install (nearly) any
Android app on any operating system.
Obvious Disclaimer: This is still eight million kinds
of broken and absolutely nothing here comes with a guarantee. In
addition to apps that are in no way officially supported, you're also
going to be messing around with low-level stuff in Chrome. This is
probably not something you should attempt on a work computer, nor should
you expect this to be simple or bug-free. This process is the opposite
of both those things. You will need Chrome 37+ for the following guide.
Expand
Glossary
This process is pretty new, so to make things simple, we'll define a few terms first:
ARC: The App Runtime for Chrome (or ARC) is the piece
of software that allows Android apps to run in Chrome. In the same way
that ART (and the older Dalvik)
currently run Android apps in Android itself. By making a modified
version of the Android runtime for Chrome, Google can allow developers
to add support for Chrome without rebuilding their apps from the ground
up.
ARChon Custom Runtime: ARC is officially only designed
for Chrome OS at the moment. To get around this, developer vladikoff
created the ARChon Custom Runtime, which not only allows Windows, OS X,
and Linux to run Android apps, but also removes the limit on how many
can be run.
Google Play Services: We've discussed what Google Play Services are
in the past. As we've explained before, app developers can plug into
these APIs to get pre-written functionality. Think of them as plugins
that Google gives to developers for their apps. In the context of this
article, we'll be talking about apps that may or may not be supported in
Chrome based on whether or not they include functionality from Google
Play Services.
Unpacked Extension: Extensions normally come from the
Chrome Web Store or prepackaged in a .CRX file. For the purposes of
Android apps, we're going to use unpacked extensions. These are folders
that contain all the files for an extension (or, in this case, Android
APK). They function the same as extensions, but are not wrapped up in a
single file.
Step One: Install the ARChon Runtime
Chrome OS uses a specialized runtime that allows Android apps to run
natively inside it. This means that it's not an emulator or
virtualization stack, but a proper runtime. In layman's terms, Chrome OS
is using the same type of engine that Android uses to run software
directly. So instead of a
Genymotion-like situation where you have a whole Android phone running on your computer, here you can launch Android apps from the Chrome launcher.
To begin, we'll need to download the ARChon Custom Runtime. This is
necessary to run Android apps in Windows, OS X, and Linux. While you can
technically run Android apps in Chrome OS, you're currently limited to
one of four apps. The methods in the rest of this article will run
alternative apps by spoofing the signed key on those apps, but if you
want to run any app you'd like, download ARChon. Here's how:
- Download the ARChon runtime here.
- Unzip the archive.
- Open your extensions page in Chrome by going to Menu > More Tools > Extensions
- Enable Developer mode in the top right corner, if it is not already enabled.
- Select "Load unpacked extension."
- Choose the folder containing the ARChon runtime you unzipped earlier.
The ARChon runtime will now be running as an extension in Chrome. You
may see a couple warnings like the following on the extensions page.
However, these are normal and shouldn't affect your ability to run
Android apps.
Next, you'll need some Android apps to run. This is a little
complicated, since Android APKs are not properly packaged for Chrome.
However, with a little elbow grease (or some help from your friendly
neighborhood internet), you can get some of them to launch. Whether they
function properly is an entirely different matter.
Step 2: Install Existing Android Apps
The quickest, most dead-simple way to get some working Android apps is to find some online. Forums like
this subreddit
are already working on getting some functional. However, this is a far
cry from the 1.3 million apps on the Play Store. While most of those
will probably remain out of your reach due to incompatibility issues,
we'll also look at how to (try to) create your own.
Disclaimer: Distribution of modified apps is,
generally speaking, some degree of copyright violation. In practice,
there's little distinction between downloading a pre-modified app, and
downloading the regular version and modifying it yourself. For this
reason, it's unlikely any developer of a free app will be too concerned
if you download a pre-modified app to play around with. However,
downloading a modified paid app is piracy. Please support developers and
don't download modified versions of paid apps without paying for them.
And, while it should go without saying, don't write a bad review or
criticize the developer if an app is broken in Chrome. You're on your
own here.
Some helpful internet users have created a
growing list of apps that work in Chrome. You can find download links in that document, or find more in communities currently working on Chrome APKs. Once you have a .zip file containing one of these modified APKs, here's how to install it:
- Unzip the file and place the folder (likely named something like "com.twitter.android") in a place you can easily find.
- Open the Extensions page in Chrome.
- Click "Load unpacked extensions."
- Select the folder with the modified APK you downloaded.
The app will now appear in your list of Chrome extensions. If you're a
particular fan of Chrome apps, you might also notice that a shortcut has
been added to the
Chrome app launcher. Depending on how it was packaged, it may have a benign Android icon and the package name instead of a proper app name.
(Optional) Step 3: Repackage Your Own Android Apps for Chrome
There are a few ways to make and tweak APKs so that they can run on
Chrome. These methods are also under active development, so if you're
reading this later, there may be even easier ways that have been
developed to convert them. For the sake of completeness, we'll go over
how to install the
chromeos-apk tool, as well as how to convert them manually, should you need to do any extra tweaking.
Windows:
- Download the node.js .msi file (not the .exe) from here.
- Install node.js.
- In a command prompt, run the following command: npm install chromeos-apk -g
That's it. You now have the chromeos-apk tool installed on your machine
and can call it from any folder in the command line. You can skip ahead
to the section below on how to use it.
OS X/Linux:
The chromeos-apk tool was originally developed for Linux and OS X devices. Here's how to install it there:
- In a terminal, run the following command:
sudo apt-get install npm
- (Ubuntu only): Run the following command:
sudo apt-get install lib32stdc++6
- Download node.js.
- Unzip the tar.gz file you downloaded from the above link.
- Per the README file, open a terminal to the unzipped folder containing node.js. And run the following commands in order:
./configure
make
make install
- Run the command:
sudo npm install chromeos-apk -g
- To make sure you're updated to the latest version (now or in the future), run:
sudo npm install -g chromeos-apk@latest
How to Use the Chromeos-apk Tool
You now have the chromeos-apk tool installed on your machine. To use
it, first you'll need to acquire an APK. If you're trying to convert a
free app, you can use
this tool to pull an APK directly from the Play Store. You can also use this tool
to get an APK from an app installed on your phone. Many file managers
and backup utilities like ES File Explorer and Titanium Backup can also
pull APKs on your device.
Once you have your APK, it's super simple to create a Chrome-friendly
version. Open a command prompt or terminal in the folder where you have
the APK stored, then do the following:
- Run the following command:
chromeos-apk [NAME OF APK]
- Example:
chromeos-apk com.evernote.apk
- Example:
- If prompted, enter the package name of the app. This can usually be found in the URL of the Play Store listing. For example, in this URL, the portion after "?id=" is the package name. In this case, "com.evernote".
You now have a modified APK, ready for Chrome! You can install it using
the same instructions in Step 2 earlier in this post. Namely, open your
extensions page, click "Load unpacked extension," and choose the folder
you just created.
At the time of this writing, the chromeos-apk tool still only gets the
app working. It won't remove the key (which allows you to run more than
one app at once), nor does it fix the app icon. We'll handle that in the
cleanup section.
Alternative: Convert APKs Manually
If you can't (or don't want to) use the command line utility to modify
APKs for Chrome usage, you can repackage them yourself. You'll still
need to download chromeos-apk from Github
here.
You'll also need an APK for the app in question, so use the methods
described in the section above to get them. Then, follow these steps:
- There is a folder named "_template" inside the chromeos-apk tool you downloaded. Make a copy of this somewhere else (preferably near the APK you downloaded).
- Copy the APK into "_template > Vendor > chromium > crx". There should be a README file in the correct folder that says "APK goes here." in the correct folder.
- Rename the "_template" folder to the package name. The package name can usually be found in the Play Store listing URL after "?id=".
- Modify the "manifest.json" file in the main folder of the package. This is considerably easier to do with an app like this.
- Add the app's package name (like "com.pandora.android") to the "package name" field.
- Add the app's regular name (like "Pandora") to the "name" field.
- Delete the entry named "key", which will have a very long, seemingly random string for a value.
- Save the modified JSON file as "manifest.json" and replace the existing version with the new, edited one.
- Download the app icon from Play Store.
- On a Play Store listing page like this one, right-click the icon image.
- In the URL bar, change "w300-rw" to "w128". Hit enter.
- Right-click the new image and save it as "icon.png" in the main folder of the modified template folder.
Congratulations! You have just manually modified an APK to run in
Chrome. The entire process isn't terribly complicated, it's just time
consuming if you're altering each app manually.
You'll also note that none of this process involves changing the app
itself. The APK sits inside an elaborate wrapper. Either it works or it
doesn't. Time will tell if Android apps can or will be targeted for
desktop use, but for now the floodgates are open to tinkerers if you
really want to try them out.
0 comments:
Post a Comment