FORUMS
Remove All Ads from XDA

[APP] Shazam Lite - No region restriction

954 posts
Thanks Meter: 285
 
By blunden, Senior Member on 10th October 2016, 11:51 PM
Post Reply Email Thread
11th July 2017, 03:19 PM |#21  
Senior Member
Thanks Meter: 156
 
More
Why do people cry about wanting an updated version? v1.1 adds nothing new and 1.0 works flawlessly!
 
 
12th July 2017, 04:52 PM |#22  
Junior Member
Thanks Meter: 11
 
More
Thanks form this blunden. I wonder if can you make a build with landscape view instead vertical view? i don't like to be forced rotate my tablet like if is a cell phone :/
30th October 2017, 03:22 PM |#23  
Senior Member
Thanks Meter: 66
 
More
Quote:
Originally Posted by blunden

Correct. They only have the one from the Play Store which only works in a very limited number of countries.

No problem. It is actually possible to bypass the region lock in an unmodified app too but it requires you to use an intercepting proxy to MITM the encrypted request sent to Shazam during the registration process and modify the appropriate values. My modified app just simplifies the process by sending the correct request for you.

Hey. I know it's little off topic but could you perhaps tell a little more about how you modified the app? Could this method work for other apps perhaps (such as JOOX or Spotify) to make it work without a VPN?

I know a little about apktool and smali but it's very hard to find any tutorials beyond the basic modifications.

EDIT: I tried using Packet Capture to mitm the requests of the JOOX app but I can't figure out which is the right one or what can be modified, etc.
30th October 2017, 11:45 PM |#24  
OP Senior Member
Thanks Meter: 285
 
More
Quote:
Originally Posted by c-sanchez

Thanks form this blunden. I wonder if can you make a build with landscape view instead vertical view? i don't like to be forced rotate my tablet like if is a cell phone :/

Try the one linked below. I changed it from forced portrait to rotate based on the orientation sensor. I have no idea if the app actually functions properly in landscape however.

https://www.mediafire.com/file/8ssc4...pe-support.apk

Quote:
Originally Posted by nthacks

Hey. I know it's little off topic but could you perhaps tell a little more about how you modified the app? Could this method work for other apps perhaps (such as JOOX or Spotify) to make it work without a VPN?

I know a little about apktool and smali but it's very hard to find any tutorials beyond the basic modifications.

EDIT: I tried using Packet Capture to mitm the requests of the JOOX app but I can't figure out which is the right one or what can be modified, etc.

This comment I posted on the original AP article for version 1.0.0 is still relevant, although the file to change is different in version 1.1.0:

Quote:

The changes needed are simple if you know smali code. You need to patch a few lines in smali\com\shazam\android\lite\b\e.smali to hardcode certain supported values (I decided on values matching a carrier in India) instead of doing a lookup based on your SIM. Essentially, the app performs a registration the first time you start it where it transmits information like country, mcc, mnc, device, platform, etc. This information is then validated server-side to determine if your country and SIM is from a supported region. Spoofing values for a supported region is enough to successfuly complete the registration, either by modifying the app or by using an intercepting proxy like Burp Suite or OWASP ZAP to intercept and edit the request. If the latter, you can use the unmodified app as long as the registration remains valid.

In other words, you need to use an intercepting web proxy that allows you to intercept and modify encrypted HTTPS traffic to see how/what the application sends to the server. I prefer Burp Suite (the free version will work fine for this). If they use a similar method to what Shazam Lite does, it should hopefully be pretty easy to see which request you need to change. While running through Burp, you can easily confirm it by intercepting and modifying the request.

Once you find the request in question, use jadx to decompile the app into Java code and try to find the code that generates it. Searching for the parameter names you see is a good way to start. After figuring out what you need to change, decompile the APK with apktool, find the smali file for the class you identified using jadx above and make the required changes. Now rebuild the apk with apktool and try it.

Note that it's quite possible that they actually check your IP address to determine your country instead of basing it off the SIM card values.
The Following 4 Users Say Thank You to blunden For This Useful Post: [ View ] Gift blunden Ad-Free
31st October 2017, 11:30 AM |#25  
Senior Member
Thanks Meter: 66
 
More
Thanks for the prompt response! Unfortunately the application I'm trying to modify checks the IP address each time the app is opened so I'll have to find another way (of that is even possible).
I've noticed that the latest Spotify mods seem to be able to login without a VPN in my country so maybe that is possible I'll keep looking. Thanks for your help
31st October 2017, 03:58 PM |#26  
OP Senior Member
Thanks Meter: 285
 
More
Quote:
Originally Posted by nthacks

Thanks for the prompt response! Unfortunately the application I'm trying to modify checks the IP address each time the app is opened so I'll have to find another way (of that is even possible).
I've noticed that the latest Spotify mods seem to be able to login without a VPN in my country so maybe that is possible I'll keep looking. Thanks for your help

You could always decompile the APK with apktool and look for code references to the string shown in the error message you receive to see if the code that prevents you from logging in is performed server-koden or client side. If the latter, it can be patched. It might also be possible to add X-Forwarded-For or similar headers that lets you claim to be forwarding the request from a client within an accepted country. Try that using Burp Suite first though.
7th November 2017, 04:04 PM |#27  
Junior Member
Thanks Meter: 11
 
More
Quote:
Originally Posted by blunden

Try the one linked below. I changed it from forced portrait to rotate based on the orientation sensor. I have no idea if the app actually functions properly in landscape however.

https://www.mediafire.com/file/8ssc4...pe-support.apk

Thanks! works perfectly many many thanks.
7th November 2017, 06:15 PM |#28  
OP Senior Member
Thanks Meter: 285
 
More
Quote:
Originally Posted by c-sanchez

Thanks! works perfectly many many thanks.

Great!

It's curious that they decided to lock it in portrait of it works fine in landscape.
The Following User Says Thank You to blunden For This Useful Post: [ View ] Gift blunden Ad-Free
5th January 2018, 12:04 PM |#29  
Junior Member
Thanks Meter: 0
 
More
Good Job!
It would be nice removing the song limit memorization, since in data/data/com.shazam.android.lite/shared_prefs/com.shazam.android.lite_preferences.xml all songs are saved.
PixelChris95
5th January 2018, 03:44 PM |#30  
Guest
Thanks Meter: 0
 
More
Thanks for this!
18th January 2018, 12:38 AM |#31  
OP Senior Member
Thanks Meter: 285
 
More
Quote:
Originally Posted by simoconfa

Good Job!
It would be nice removing the song limit memorization, since in data/data/com.shazam.android.lite/shared_prefs/com.shazam.android.lite_preferences.xml all songs are saved.

Good idea! I never checked whether it actually saved all of them or just trimmed them. I have uploaded a new version with this restriction (and banner) removed and updated the first post.

I also decided to upload my changes to a closed git repo to keep track of the smali modifications for each change. I would have made it public but I expect that would invite DMCA takedowns. The diff is posted below though for those interested.

Smali patch
The Following 5 Users Say Thank You to blunden For This Useful Post: [ View ] Gift blunden Ad-Free
Post Reply Subscribe to Thread

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes