• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

[APP] Shazam Lite - No region restriction

Search This thread

blunden

Senior Member
Jun 11, 2009
967
292
I've been bothered by the fact that Shazam Encore takes several seconds to start, causing you to sometimes miss songs. Recently, Shazam released what appeared to be the solution (Shazam Lite) but it contained a region limit. Naturally, I decided to bypass this limitation and the APK below is the result. I've used it for a few days and it seems to work well so far.

Version 1.0.0

Version 1.1.0 (v1)

Version 1.1.0 (v2)

Version 1.1.0 (v3)

Version 1.1.0 ARM (v4) Updated!
Version 1.1.0 ARM64 (v4) Updated!

All credit for this lean and mean version of Shazam goes to their developers of course.

Current changes:
  • Removed region restriction
  • Added landscape support (respecting user's rotation setting)
  • Removed the 5 song history limit and upgrade banner
  • Increased the additional 20 song history limit to 1000 (higher values causes startup slowdowns)
 
Last edited:

blunden

Senior Member
Jun 11, 2009
967
292
guessing apkmirror doesnt have the modded version...
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.
 

xaL_

Member
Oct 17, 2013
7
2
Edit: seems like it was just a temporary problem, works great now, thanks!
 
Last edited:

shhnedo

Senior Member
Apr 26, 2015
530
217
Varna
LG Nexus 5X
Thanks, works great!
Here's the QR code:
54bfdca0ae734e4a.png
 

cubanBword

Member
Mar 21, 2014
9
3
History

Thank you! is there anyway to review the log/history? I have used this for a long time and went to make a playlist and realized it will only display the last 4 songs. It says upgrade to full version for history access. I did install full version from play store, no history. So I login via facebook and still no history.

Are these stored somewhere on the device? Any help would be great
 

blunden

Senior Member
Jun 11, 2009
967
292
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 1
    blunden, thank you very much for making this mod. Installed it recently instead official version. It does what it expected to, with no bells and whistles.
    Just minor request (if doable): could you please add option to remove song from a history list (e.g. adding a 3rd option in context list for each song "Remove").
  • 83
    I've been bothered by the fact that Shazam Encore takes several seconds to start, causing you to sometimes miss songs. Recently, Shazam released what appeared to be the solution (Shazam Lite) but it contained a region limit. Naturally, I decided to bypass this limitation and the APK below is the result. I've used it for a few days and it seems to work well so far.

    Version 1.0.0

    Version 1.1.0 (v1)

    Version 1.1.0 (v2)

    Version 1.1.0 (v3)

    Version 1.1.0 ARM (v4) Updated!
    Version 1.1.0 ARM64 (v4) Updated!

    All credit for this lean and mean version of Shazam goes to their developers of course.

    Current changes:
    • Removed region restriction
    • Added landscape support (respecting user's rotation setting)
    • Removed the 5 song history limit and upgrade banner
    • Increased the additional 20 song history limit to 1000 (higher values causes startup slowdowns)
    5
    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
    5
    New version 1.1.0 is out, could you please update the mod?
    I never saw that 1.1.0 was out. Below is a modified version of 1.1.0.

    http://www.mediafire.com/?548l10h58cq8ye3

    NOTE: I have not tried clearing data and reregistering with this new version but I confirmed my smali changes by decompiling it to java and it looked correct. They changed their code a bit.
    4
    4
    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/8ssc...0_no-region-restriction-landscape-support.apk

    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:

    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.