Disclaimer: We here at The Powerbase don’t support piracy of any type, there’s no reason you can’t spend 99 cents on an Android app.
The Pirate Trap
Anyone who has ever “sideloaded” a paid Android application has probably run into this miserable little quirk in Google’s Android ecosystem: once the Play Store (Market) has seen that you have a paid application installed, it marks it as purchased under your applications. But even though the Play Store says you’ve purchased the application, you won’t be able to download the application or get any updates for it. The old Market used to give an error of “You haven’t purchased this application”, while the Play Store gives a more generic (and less accusatory) message of not being able to download the application.
Android pirates are well accustomed to this, and for them it’s not a problem as they will simply continue sideloading the application as updates are leaked out. But what if you’ve accidentally fallen into this application purgatory? How can you break out of Android’s Pirate Trap?
For me, I became stuck in this trap when an Android developer friend of mine gave me an early version of her application to test. We went back and forth a few times with updated versions and bug reports, and eventually the application got to the point where I wanted to give it a review. But when I tried to go into the Market, I was told I couldn’t leave a review for the application. Every time I tried to submit the review, I got a generic error message that I didn’t understand. So I went onto the web version of the Market and left my review there, and didn’t give the issue much more thought.
Fast forward to just last week. The application is nearing completion, and there is really no more legitimate need for testers. My friend continues to send me updates, which I sideload as before, but the reality is she’s only doing this because it’s too awkward for her to tell me to go buy the thing. This little dance starts to weigh on my conscience, and I decide it’s time I just buy the application.
So I uninstall my sideloaded version and head into the Play Store. Oddly enough, it thinks I’ve already purchased the application and gives me no option to rebuy it. Worse, since I already installed my sideloaded version (and naturally forgot to back it up with Titanium first), I don’t even have the version she sent me earlier.
An Overseas Fix
I spent a few days going through different forums and sites talking about this particular problem, but none of them offered me much help. The issue was that the known fixes were all for the older Market, and not for the new Play Store. The fixes online said to do things like roll back to the stock Froyo Market, but that won’t work on newer Android releases. Other fixes included running the Market Doctor via Titanium Backup or clearing out the Market’s cache, but none of those did any good for me.
Eventually I found a post on XDA from a German user which had the fix I needed. Many thanks to the user mx03 for finding it. Basically, the only sure-fire way to get around this issue is to edit the actual HTML of the Play Store with Chrome’s “Developers Tools” function. What you will be doing is changing the value in the page’s code which corresponds to the “Install” button.
Make sure the application is uninstalled from your device, and head over to it’s page in the Google Play Store in Chrome. On the application’s page, right click the button that says “Purchased”, and select “Inspect Element”:
This will open up the Developer Tools console at the bottom of the page. Down in the console, the highlighted line should read:
span id="APPNAME" class="buy-button-price"Purchased
Directly above this highlighted line, you will see a whole block of variables that determine things like the name of the application to how much it costs. The variable we are looking for reads:
Double click the word “true” on this line; the variable should become highlighted, and you’ll get a little box that lets you edit the content of the variable. Change the word “true” to “false” in this box, and then hit Enter.
Note: Before you get any smart ideas, while you can edit the “data-docprice” variable, and it will even show your edited price on the Checkout page, you cannot alter the prices of items in the Google Play Store with this method. You will still be charged the real price.
Now, without reloading the page, click on the “Purchased” button. Instead of asking which device you want to install the application to (which would usually fail as it hasn’t been purchased), you will be able to buy the application on the resulting popup window. Once you purchase the application, you can tell it what device to install to and everything will work as expected.
Why did I have to do this?
That’s an excellent question, and one which nobody seems to have gotten an answer out of Google for. It seems as though the Play Store wants to brand people as pirates for life as soon as they install an application outside of the usual channels. Outside of people sideloading test applications and pirates, this issue also comes up for people who have purchased apps from third party markets such as Amazon.
This is simply unacceptable. Users should have the right to use third party application markets and install APKs given to them from developers without breaking the Play Store. Even the pirates should have the right to repent and buy an application that they previously sideloaded. A lot of people download pirated versions of applications to determine if they want to purchase it. I won’t comment on whether or not they are right or not to do this (though I will say, every paid game should have a free demo), but as it stands, even if you pirate an application or game just to demo it, Google Play literally won’t allow you to give them money for the application if you decide it’s worth a purchase.
Apparently in Google’s eyes, once a pirate…always a pirate.