Sail Free: How To Escape Android’s Pirate Trap

ocean

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?

Sideload Snare

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.

Now what?

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.

Step 1:

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”:

Right-click context menu for "Purchased"

Step 2:

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:

data-ispurchased="true"

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.

Editing the "data-ispurchased" variable

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.

Step 3:

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.


Tom Nardi

Tom is a Network Engineer with focus on GNU/Linux and open source software. He is a frequent submitter to "2600", and maintains a personal site of his projects and areas of research at: www.digifail.com .

Related posts

  • Rain Clark

    That’s genuis, thanks for the tip

  • tyfn

    Is not there already the option that you can get your money back within X hours or days if you paid for an app or a game and you did not like it ? I heard there was..

    • http://www.digifail.com/ Tom Nardi

      You used to get 24 hours with a game or application to decide if you want a refund. But that was massively shortened to 15 minutes a year or so back.

      Unfortunately, with some of these new games, 15 minutes isn’t even long enough to download all the data required. When I purchased Dead Space, it took at least 10 minutes to download, which left me all of 5 minutes to decide if I wanted a refund. That’s barely enough time to even learn the controls.

      It just so happens that Dead Space is excellent, but if the game was terrible or it didn’t work on my device, I would have been pretty upset.

      • guest

        The 15 minute refund rule is about the most ridiculous thing I’ve seen. Yes, most of the time you can’t really know if you want an app in that short of time.

        What’s worse, I live in Taiwan. It took forever for Google to finally open our market to paid apps. Then Google reduced the refund time to 15 minutes. Then the Taiwan government passed a law forcing online sellers to give a longer refund window (days, not minutes). Google, in their arrogance, closed the Taiwan market to paid apps.

        What’s worse is that I can’t even download the apps I was able to pay for during those first months of opportunity when I did buy apps. If I had any way, I’d join a class action lawsuit against Google for not delivering the apps I’ve paid for. The essentially took my money and ran.

        So for me, being able to sideload and use apps like Market Unlocker to trick the system is essential to my use of an Android phone. But I shouldn’t have to root my phone just to get access to my paid apps! If Google figures out how to shut those holes, I’m moving on to some other smartphone platform.

        Yes, this has gotten ridiculous.

Top