[Wear OS App] Enable Google Pay in unsupported countries using Permanent Proxy!

Search This thread

ntelas

Senior Member
Nov 17, 2013
147
20
I have a problem.

First, i got the "Something went wrong" after touching enable permissions. That got easily solved with a force close of the app. Next, I find a proxy, test it on my PC browser and it works fine. Then, I put it in the app on WearOS and touch "set proxy". The proxy appears in the first line of the app as it is enabled, but my outgoing IP has not changed to the proxy one's.

Any ideas?
 

Humpie

Recognized Developer
I have a problem.

First, i got the "Something went wrong" after touching enable permissions. That got easily solved with a force close of the app. Next, I find a proxy, test it on my PC browser and it works fine. Then, I put it in the app on WearOS and touch "set proxy". The proxy appears in the first line of the app as it is enabled, but my outgoing IP has not changed to the proxy one's.

Any ideas?

The first part can be explained because the watch can take too long to grant the app permission that it passes the timeout (which I added to make Google think the app is not stuck, but still running, not that it helps to get it on the Play Store). I'll increase the timeout again in future versions but v3.2 still has the old timeout.

As for the second part, like the message in the app tells you, it might take a while for apps to recognize that a proxy has been activated/changed. This also holds for the external IP detection that I use, so don't worry, it will change if you close the app and open it again after a few minutes!
 

ntelas

Senior Member
Nov 17, 2013
147
20
As for the second part, like the message in the app tells you, it might take a while for apps to recognize that a proxy has been activated/changed. This also holds for the external IP detection that I use, so don't worry, it will change if you close the app and open it again after a few minutes!

Hmm I believe it's something else. It's been an hour, two force closes later and it still shows my IP address. Will this be caused if something was typed wrong in the ip field?
 

Humpie

Recognized Developer
Hmm I believe it's something else. It's been an hour, two force closes later and it still shows my IP address. Will this be caused if something was typed wrong in the ip field?

Then you might want to check whether your proxy actually works and turn off the wifi of your watch (if you haven't already). Let me know if that helps!
As for the IP, you can simply tap the IP address field again to check or change it, that doesn't require a reboot or ADB.
 

Humpie

Recognized Developer
v3.5:
Changed permission loading yet again (Google is just being absurd really)
Increased permission timeout again
Added donation option :) (The options might keep showing "loading" due to Google Play, simply tap on one to see it)

before:
Proxy can now properly be turned off
Removed on boot setting as that happens automatically
Easier setup and better layout
Live external IP view
Remember: turning off wifi works better!
Added clearer loading screen and easier setup
ADB over Bluetooth only needs to be enabled the first time
Faster proxy switching with WRITE_SECURE_SETTINGS
 
Last edited:

banciii

Senior Member
Jul 26, 2012
968
363
Budapest
Sadly it does not work for me neither with my Pixel 3 XL and Fossil Sport in Hungary. Tried with German, Slovakian and Polish proxies, but all of them led to the same error code which I previously got already with my Revolut MasterCard: "This card can't be set up to pay in stores | This feature isn't supported by your BANK for this card yet. You can try adding another card for in-store use."

---------- Post added at 06:07 PM ---------- Previous post was at 06:05 PM ----------

Working well in Czech Rep. Thank you for this app.
Is GPay not supported already in your country officially?
 

Humpie

Recognized Developer
Sadly it does not work for me neither with my Pixel 3 XL and Fossil Sport in Hungary. Tried with German, Slovakian and Polish proxies, but all of them led to the same error code which I previously got already with my Revolut MasterCard: "This card can't be set up to pay in stores | This feature isn't supported by your BANK for this card yet. You can try adding another card for in-store use."

---------- Post added at 06:07 PM ---------- Previous post was at 06:05 PM ----------


Is GPay not supported already in your country officially?

This app only helps with the "your country is not supported" message and the disappearing of the Google Pay app on your watch. You still need a supported card for Google Pay. So if it works on your phone, with this app it will also work on your watch. But, it needs to work on your phone first, meaning your card needs to have a BIN number of a supported country. For Revolut it works to order a card to a German address and then change the deliver address to your own for instance (although they can ask for a address verification I heard, so be careful, but for me it worked fine).

Oh and if Google Pay is supported in a country, that doesn't mean that Google Pay for Wear OS is supported. I know, ridiculous.
 
  • Like
Reactions: banciii
I tried this process and it worked. Even with a shady free proxy. Sadly, in my opinion, having a proxy on the watch slows it down considerably and update apps and such do not work great. I understand the limitations and it is wonderful that I was able to get to this point using OP's proxy app and Revolut with GPay in Romania but I still wish if there was a way for Wear OS to simply retain the GPay app even after Proxy is turned off because it disappears after a few minutes if the Proxy is turned off.
I am afraid that, if I try and send the gpay app after it disappears via adb to the watch, it will lose the card data I set up and that would be a no no(There is a method to make Revolut work with Gpay in Romania by changing address to UK, issue a new card to UK address and then switch to Romania again etc).
Would anyone have any ideas?
How exactly are you using the watch on a day to day basis with proxy? Do you just turn the proxy on while sitting in line at the counter and wait for GPay to reappear?
 

Humpie

Recognized Developer
I tried this process and it worked. Even with a shady free proxy. Sadly, in my opinion, having a proxy on the watch slows it down considerably and update apps and such do not work great. I understand the limitations and it is wonderful that I was able to get to this point using OP's proxy app and Revolut with GPay in Romania but I still wish if there was a way for Wear OS to simply retain the GPay app even after Proxy is turned off because it disappears after a few minutes if the Proxy is turned off.
I am afraid that, if I try and send the gpay app after it disappears via adb to the watch, it will lose the card data I set up and that would be a no no(There is a method to make Revolut work with Gpay in Romania by changing address to UK, issue a new card to UK address and then switch to Romania again etc).
Would anyone have any ideas?
How exactly are you using the watch on a day to day basis with proxy? Do you just turn the proxy on while sitting in line at the counter and wait for GPay to reappear?

I think what'd be the best solution for you is to set up a proxy of your own. I have mine running on a US Google Cloud service (yes, I used the Google to destroy the Google), I posted a link a few posts back of a tutorial. For me it's super fast, even at the cheapest/slowest VM, mostly because I'm the only one using the proxy.
 

Humpie

Recognized Developer
How? I tried anonymous proxy, phone thinks i have no Bluetooth connection ( i have) transparent, well immediately see me in my county (TicWatch C2)
While I don't completely understand what you're saying, make sure the proxy you choose works. There are a lot of proxies online that just don't work anymore, so if it doesn't work, try another.
I've never had issues with my phone not connecting to the watch.
 

Loshtano1

New member
Oct 22, 2019
2
0
While I don't completely understand what you're saying, make sure the proxy you choose works. There are a lot of proxies online that just don't work anymore, so if it doesn't work, try another.
I've never had issues with my phone not connecting to the watch.
Proxy anonymity: transparent " Message i get - Can't Use google pay bla bla bla... Anonymous,the message is try to reconnect to your phone... all proxies work on the phone

---------- Post added at 10:05 AM ---------- Previous post was at 09:50 AM ----------

While I don't completely understand what you're saying, make sure the proxy you choose works. There are a lot of proxies online that just don't work anymore, so if it doesn't work, try another.
I've never had issues with my phone not connecting to the watch.

My bad, after changing to a German proxy AND resetting the phone it started to work. Sorry and keep up the good work
 

Humpie

Recognized Developer
Google Play update:

I've completely had it with the Google Play store. I've built 11 different versions of the app that according to everyone using the app on XDA and Reddit work completely fine, yet every single time the app was blocked from the Play Store for the same reasons (often with spelling mistakes):

"Basic functionality of app isn't working as described" "For example, your application remains in the "Requesting permission" status."

I added a cancel button and a separate activity to show it's not stuck. I added text telling to wait a while, then more specific 25 seconds. I added an indeterminate loading animation to show it's not stuck. I changed the loading animation to a filling bar. I answered every email for them to just wait, it's not stuck, it's just requesting permission via ADB (and just like running "pm request <package> <permission>" over ADB on a computer that takes a while). All answers I get back are either screenshots of the loading screen or the absolutely most annoying thing ever:

"Hello Jolan,

Thanks again for contacting the Google Play team.

As much as I'd like to help, I’m not able to provide any more information or a better answer to your question.
 
  • Like
Reactions: hinuk and slonco

tarasko

Member
Oct 21, 2009
7
0
Hi guys! Maybe I'm not enough familiar with how it works. But I have a question...

I see that it works only with WiFi connection. But, when I go shopping, then there is no WiFi, and watch is connected via Bluetooth. Will the payments work in this case?
 

Humpie

Recognized Developer
Hi guys! Maybe I'm not enough familiar with how it works. But I have a question...

I see that it works only with WiFi connection. But, when I go shopping, then there is no WiFi, and watch is connected via Bluetooth. Will the payments work in this case?
It should also work with Bluetooth. In fact, on my watch I have to turn off WiFi to get it to work.

But in any case, if the watch doesn't have internet, Google pay will work for a few payments anyways as it downloads some tokens when it's online.
 

Humpie

Recognized Developer
I'm getting closer on being allowed on Google Play! I found out that using my old LG G Watch R I could get the app to behave exactly the same way (so getting stuck) as the reviewers described. Again, I had to find this out for myself, they simply don't tell you what device they're running on.
So apparently, those old devices are so weak that they cannot host an ADB server and connect to localhost reliably. And believe me, I tried to get it to work.
So for now, I simply added an explanation in the app of how to grant the app Secure Settings permission with a PC and ADB, so that the proxy functionality of the app still works.
This does explain why no one told me the app didn't work on old devices. Those devices don't have NFC/Google Pay, so there's almost no use for Permanent Proxy!
Anyways, hopefully that Wear OS team is clever enough to follow my instructions so Permanent Proxy can finally be launched on the Play Store!

v3.7:
Changed permission loading
Added explanation for what to do if requesting permission fails
 

Top Liked Posts

  • There are no posts matching your filters.
  • 13
    Simple app to set the built-in proxy setting on a Wear OS device and enable geo-restricted apps like Google Pay in unsupported regions!

    Sometimes big companies decide that Geoblocking is a good idea. I don't agree. So that's why I created this Wear OS app to allow users to use their watch as if they were in another country. This means you can use certain payment apps or otherwise geospecific apps wherever you are in the world!

    The app uses Android's built-in http_proxy command that turns on a proxy for the whole system and which normally can only be accessed using a computer and ADB Shell. This app however, uses the "ADB over Bluetooth" functionality of the watch to enable the proxy by itself. This can even be turned on at boot!

    Installation
    Method 1: Download the latest mobile-release.apk from https://github.com/Jolanrensen/PermanentProxy-for-WearOS/releases or from https://labs.xda-developers.com/store/app/nl.jolanrensen.permanentproxy and install it on your Android phone. Next, go to the "Apps on your phone" section in the Play Store on your Wear OS watch. Install Permanent Proxy.
    (Google removed this ability sadly)

    Method 2: Download the latest wear-release.apk from https://github.com/Jolanrensen/PermanentProxy-for-WearOS/releases. Install it on your Wear OS watch directly using ADB.
    Wear installer can also be used:


    Get started
    To get started, first enable the Developer Options of your watch, which can be achieved by going to Settings -> System -> About and tap the Build number until you are a "developer". Next, go to Settings -> Developer options and enable "ADB debugging" and "Debug over Bluetooth". Finally start up Permanent Proxy, request permission and press "Allow" or "Always allow this Computer" if prompted. After requesting permission, ADB can be turned off again to save battery, unless you want to turn off the proxy completely.

    Now you can get started! Simply enter a proxy address and port, enable it (and on boot if you like) and you're done!

    Proxy services can be found online and can be from any country. However, do make sure you completely trust the proxy you chose before you enter it! All the data of your watch might be sent through that proxy, even sensitive data, so act at your own risk. I personally recommend strongly to create your own proxy. This can be done easily using the (trial of) Google Cloud. A tutorial can be found below:

    Having trouble getting permission?
    Some older watches are not powerful enough to get Secure Settings permission by itself using my method. If this is the case for your watch, you will need a PC to grant Permanent Proxy permission. The instructions are also available in the app description.

    First make sure to connect your watch to your PC via ADB. You can Google how to do this, there are lots of tutorials. When your watch is connected, use the command

    Code:
    adb shell pm grant nl.jolanrensen.permanentproxy android.permission.WRITE_SECURE_SETTINGS
    to give Permanent Proxy the permissions needed to turn on/edit the proxy.

    To turn off the proxy, connect to your PC in the same manner as before, but now you will need the following command:

    Code:
    adb shell settings delete global http_proxy; adb shell settings delete global global_http_proxy_host; adb shell settings delete global global_http_proxy_port; adb shell settings delete global global_http_proxy_exclusion_list; adb shell settings delete global global_proxy_pac_url; adb shell reboot


    How to create a proxy on Google Cloud? (May 2020)

    1. Go to console.cloud.google.com.
    2. If you want to activate the free trial in the top-right corner, you can!
      O7I0e1H.png

    3. Fill in your information. You can pick your own country. It doesn't matter for the proxy.
      ecXWFtC.png

    4. Next you can create a new project by clicking here on the top bar, or you can use the default one.
      oQObPaN.png

    5. From the sidebar on the (top)left, go to Compute Engine and VM instances:
      AkeT155.png

    6. And let's create a new VM instance:
      PYgzNC1.png

    7. Fill in the settings. Make sure the region and zone are set to a supported region for Google Pay on Wear OS. A safe bet is always to pick the US for this. For the machine type, just pick the cheapest one. This is fast enough for the proxy.
      3LQsb2O.png

    8. Next, we change the boot disk...
      4r46FEC.png

      ...to, let's say, the latest LTS version of Ubuntu:
      Di1VRpi.png

    9. After selecting, enable both HTTP- and HTTPS traffic
      izKP5jE.png

    10. And, press Create!
      HlDMVD2.png

    11. Wait for it to load and then we can press "SSH" to connect to the VM. We can also already see the External IP. This is the IP our proxy will have eventually.
      Zl7JEgn.png

    12. This opens up a terminal where we can start to set up the proxy!
      6MDz41l.png

    13. Type "sudo adduser squid", enter and then it will create a new user. It will ask for a new password and to retype it. You can pick whatever you like. After this it will ask you for details. Just press enter until you're done.
      23jtY6J.png

    14. Next, to add the user, type "sudo usermod -aG sudo squid"
      KoUAzOT.png

    15. Let's update the packages by typing " sudo apt-get update && sudo apt-get -y upgrade". This might take a bit...
      ysgjjfm.png

    16. Now let's install squid using "sudo apt-get install squid" and press enter on "Do you want to continue?".
      KiMwxic.png

    17. Also install nano, to be able to edit the config, using "sudo apt-get install nano".
      7uilDDw.png

    18. Now that squid is installed, let's set it up. Type "sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.bak" to make a backup of the config (If you mess up, you can restore it using "sudo cp /etc/squid/squid.conf.bak /etc/squid/squid.conf"), and to start editing the config, type "sudo nano /etc/squid/squid.conf".
      NhaMFuP.png

    19. Go to line 1411 by pressing Ctrl, Shift and -, and typing 1411, or use Ctrl+W to search for "http_access deny all". Replace "http_access deny all" with "http_access allow all" to make sure we can connect to the proxy.
      SXCFMDh.png

    20. Go to line 1907 by pressing Ctrl, Shift and -, and typing 1907, or use Ctrl+W to search for "http_port 3128". Replace 3128 by a random 5-digit number under 65536 (and make sure it's not a commonly used port, for security. Check wikipedia to find out which ports are common.) and note this down. This will be your port for the proxy.
      cwqYWjd.png

    21. Save the file using Ctrl+O and then press Enter. Next, leave nano using Ctrl+X. You'll end up back on the command line.
      NAEEAdS.png

    22. Restart squid using "sudo systemctl restart squid" and check if it's running using "sudo systemctl status squid".
      7GtMton.png

    23. Were done here! Type "exit" until the window closes.
      ZxGXUst.png

    24. Now we need to go to "Setup Firewall Rules. This setting can also be found under VPC network, Firewall rules from the side menu.
      ItK7sYH.png

    25. For both "default-allow-http" and "default-allow-https" we need to add our port. So for each, click on the name...
      ft7PVOT.png

      ...hit Edit...
      61f0C5s.png

      ...and add the random port you chose before, with a comma in front, after the one already present in the tcp field.
      R1feNhr.png

      Save, and then you're done (After you did both).

      You should now be able to connect to the proxy using the Permanent Proxy app. Use the external IP mentioned above and the random port you came up with to connect.
      If there's ever abnormally large usage of the vm or you're getting billed more than expected, quickly change the port to something else, as it might have been indexed by a free proxy website.


    Some tips:
    • Create your own proxy. Free proxies might work, but usually they stop working within a couple of days if they work at all. A tutorial can be found above.
    • Proxies with a password don't work.
    • Don't sideload Google Pay on your watch. It should enable by itself.
    • Clearing the data of Google Pay using the settings on the watch also helps sometimes. You can also find remove updates / disable the app there.
    • After enabling the proxy, exit the app, give your watch some time and then check back in the Permanent Proxy app to see whether your External IP has changed to the one you entered as proxy. If so, good job, you're connected!
    • You can make your watch refresh its Google Pay availability check in two ways. Either by setting the IP/port again in the Permanent Proxy app, or by tapping "Home App" in Settings, System, About, Versions.
    • Does Google Pay still not appear? Sometimes you have to enable it by searching Google Pay in the Play Store. You can also use the Pay Enabler app, which takes you to the Google Pay page in the Play Store.
    • Google Pay works if you see the icon in your quick settings.
    • Google Pay gets stuck when adding a new card? Check the Google Play stores for updates for Google Pay.
    • Only cards you can use to pay with your phone in stores can be added to Google Pay on your watch. This means you'll need a card from a supported Google Pay country.
    • Permanent Proxy only works for IPv4 networks. If you're on a network that uses IPv6, in theory, Google can still check your country. Turn off WiFi if you have to.
    • Using a VPN on your phone that routs the internet traffic of the Wear OS app through it is an alternative to Permanent Proxy, but you'll have to turn off WiFi on your watch, only use Bluetooth and keep the VPN on your phone always on.
    • Uninstalling Permanent Proxy will not stop the proxy. Stop the proxy using the app before uninstalling it, or stop the proxy using the ADB command above.
    • Google Pay might not work if your Google account was created in a non-supported country. Try creating a new Google account (or migrating your own) using a VPN to a supported country, like the US (Failing to do so can result in "this app is no longer compatible with your device" on the Play Store at the Google Pay page). Your account is successfully migrated to the US, for example, if you see $ dollars in the Play Store. This must be your main account on the watch.
    • Permanent Proxy might not work if your watch connects to cellular directly.

    Thanks to reddit user /u/shadowban!

    XDA:DevDB Information
    [Wear OS App] Permanent Proxy, App for all devices (see above for details)

    Contributors
    Humpie

    Version Information
    Status:
    Stable
    Current Stable Version: 3.8
    Stable Release Date: 2020-01-06

    Created 2019-10-09
    Last Updated 2020-01-06
    4
    Quick guide for these who want own proxy server for free that couldnt be easily used by anyoneelse than other WearOS users
    1. Register at AWS
    2. Run EC2 instance (free tier eligible is t2.micro if I remember correctly) in region that has GPay available, I used RHEL 8 as OS (ubuntu is for kids :silly:) and Frankfurt region
    3. Configure security group to allow SSH from your home IP and port youre gonna use for proxy (default is 3128) from IP range youll be using (I am lazy so I put 0.0.0.0/0 there)
    4. SSH to server, then sudo su, yum update, yum install squid, confirm everything
    5. vi /etc/squid/squid.conf
    http_port 0.0.0.0:3128 - update this line for having IPv4 address like here, if not then it will listen on IPv6 only, and update port if you want to, and put somewhere in the file these lines
    Code:
    acl domain_to_remote_proxy dstdomain .gstatic.com
    acl ref_to_remote_proxy referer_regex [^.]*\.gstatic\.com.*
    acl domain_to_remote_proxy dstdomain .googleapis.com
    acl ref_to_remote_proxy referer_regex [^.]*\.googleapis\.com.*
    acl domain_to_remote_proxy dstdomain .mobvoi.com
    acl ref_to_remote_proxy referer_regex [^.]*\.mobvoi\.com.*
    acl domain_to_remote_proxy dstdomain .ticwear.com
    acl ref_to_remote_proxy referer_regex [^.]*\.ticwear\.com.*
    acl domain_to_remote_proxy dstdomain .googleusercontent.com
    acl ref_to_remote_proxy referer_regex [^.]*\.googleusercontent\.com.*
    acl domain_to_remote_proxy dstdomain .gvt1.com
    acl ref_to_remote_proxy referer_regex [^.]*\.gvt1\.com.*
    acl domain_to_remote_proxy dstdomain .ipify.org
    acl ref_to_remote_proxy referer_regex [^.]*\.ipify\.org.*
    http_access allow domain_to_remote_proxy
    http_access allow ref_to_remote_proxy
    forwarded_for delete
    Its bare minimum Im using on my Ticwatch Pro, you can add your own urls for apps and stuff
    6. systemctl restart squid
    7. configure permanent proxy to your public IP and a port you configured (or default one)
    8. If something is not working, just connect to SSH and use tail -200 /var/log/squid/access.log | grep DENIED to list what rules are you missing
    4
    Another quick guide (well same as my previous with AWS but for another cloud) for these who want own proxy server for free that couldnt be easily used by anyoneelse than other WearOS users, this time with Oracle Cloud always free instance (as it should be always free, not only for year or something :) )
    1. Register at OCI, I selected Frankfurt as home region as I live in Czech republic and this is the closest with supported Gpay
    2. Create VM.Standard.E2.1.Micro instance, I used Oracle Linux 8 (Note - if you will get "out of the host capacity" error, it means that always free limit in your selected region/AD is temporaryfull, just try it in couple of days)
    3. Configure default security list for network VCN to allow SSH from your home IP on TCP port22 and the port youre gonna use for proxy (default is 3128) from IP range youll be using (I am lazy so I put 0.0.0.0/0 there)
    4. SSH to server, then sudo su, yum update, yum install squid, confirm everything
    5. vi /etc/squid/squid.conf
    http_port 0.0.0.0:3128 - update this line for having IPv4 address like here, if not then it will listen on IPv6 only, and update port if you want to, and put somewhere in the file these lines
    Code:
    acl domain_to_remote_proxy dstdomain .gstatic.com
    acl ref_to_remote_proxy referer_regex [^.]*\.gstatic\.com.*
    acl domain_to_remote_proxy dstdomain .googleapis.com
    acl ref_to_remote_proxy referer_regex [^.]*\.googleapis\.com.*
    acl domain_to_remote_proxy dstdomain .mobvoi.com
    acl ref_to_remote_proxy referer_regex [^.]*\.mobvoi\.com.*
    acl domain_to_remote_proxy dstdomain .ticwear.com
    acl ref_to_remote_proxy referer_regex [^.]*\.ticwear\.com.*
    acl domain_to_remote_proxy dstdomain .googleusercontent.com
    acl ref_to_remote_proxy referer_regex [^.]*\.googleusercontent\.com.*
    acl domain_to_remote_proxy dstdomain .gvt1.com
    acl ref_to_remote_proxy referer_regex [^.]*\.gvt1\.com.*
    acl domain_to_remote_proxy dstdomain .ipify.org
    acl ref_to_remote_proxy referer_regex [^.]*\.ipify\.org.*
    http_access allow domain_to_remote_proxy
    http_access allow ref_to_remote_proxy
    forwarded_for delete
    Its bare minimum Im using on my Ticwatch Pro, you can add your own urls for apps and stuff
    6. firewall-cmd --zone=public --permanent --add-port 3128/tcp (here you should change port to the one that you are using)
    7. firewall-cmd --reload
    8. systemctl enable squid
    9. systemctl start squid
    10. configure permanent proxy to your public IP and a port you configured (or default one)
    11. This part is tricky with OCI, I faces that some of the public IPs werent detected by google correctly as in Germany, so I needed to edit instance VNIC to remove public IP and assign new empheral public IP
    12. If something is not working, just connect to SSH and use tail -200 /var/log/squid/access.log | grep DENIED to list what rules are you missing
    3
    IT WORKED!!
    Permanent Proxy is now finally available on the Google Play store!!
    You can download it directly onto your watch by searching for it or using the url https://play.google.com/store/apps/details?id=nl.jolanrensen.permanentproxy
    Enjoy!
    3
    Google just suspended Permanent Proxy AGAIN from the Google play store. I've yet to receive an email for the reason why, but I'll keep you up to date. In the meantime, you can still download the mobile app from xda labs or GitHub and use the apps on your phone section in the play store of your watch, or you can download the wear version from GitHub.