Intentionally blocking your competitor in this situation doesn't seem like a good idea, it mostly generates publicity for them.
Intentionally blocking your competitor in this situation doesn't seem like a good idea, it mostly generates publicity for them.
http://www.androidpolice.com/2015/12/01/whatsapp-is-blocking...
> The smoking gun is a pattern match performed on any URL string that begins with the word 'telegram.' In the most recent version of the app, these strings are classified as a "bad host," so that no hyperlink is generated and it becomes impossible to copy or forward any message with that URL. No other strings trigger the match, so this block is purposefully targeted at Telegram.
I still think this will result in more publicity for Telegram than all the messages that are blocked.
Local variable names aren't normally stored in an APK, they're just refereed to by register numbers. For instance, I wouldn't expect to see "for(Pattern badHost : BAD_HOSTS)" (specifically the badHost) - last time I checked, this information would be lost during compilation.
I'm not suggesting that the code is falsified - the person that decompiled it probably just guessed at some variable names and re-factored to make it more readable. It just stood out to me, so I thought it was worth mentioning.
I was under the impression that it's now no longer possible to upload an APK that has been built in Debug Mode to Google Play. I don't know if other app stores (i.e. Amazon App store) are enforcing this.
What part would you refer to as "method variable name"?
I'm not getting the same results as you with a little sample program I wrote - see: https://gist.github.com/JosephRedfern/662131ceb2119abf3e83. Field names and method names are preserved (which make sense), but local variable names are lost (which also makes sense to me!)
Are you sure that your example code doesn't include debug information?
I suppose this is diverging a little from the original comment (which was in the context of an Android application), but surely if running `strings` on the class file found the method, class and field names then it would also find the local variable name too, if it was there.
If I specifically compile the java file with `javac -g:vars DecompilationTest.java` then the local variable name IS included in the file. It is not by default.
In addition, if you are familiar with how whatsapp works, stopping any spam would be much more effective by targeting the phone numbers sending spam, not to mention the difficulty of spamming telephone numbers.. not impossible, but difficult.. which is why whatsapp spam so far has been non-existent AFAIK.