Let me tell you what's wrong with the built in messaging system in Android.
There should be a clear separation between the text entry / conversation viewing user interface, and the services that can send and receive text messages. Right now, if anyone wants to provide an alternative text message delivery service, they must replace the entire text entry user interface.
Your replacement could store the sent and received messages in the phone's SMS database. But then, whenever you open an unread message you have to remember to open the correct text entry application based on which 3rd party service your contact can use.
You can't keep a conversation going with one person, while automatically swapping between message delivery services based on changing network conditions. Nor can you easily choose which application to use based on other subscription information, eg we both use a 3rd party app like TextSecure. While you can add an app specific raw contact record with a custom action, you can't create anything with the same behaviour as a phone number field.
Application integration with Google Voice, Hangouts & the old Talk app suffer from this same basic problem.
Voice calling has similar 3rd party integration issues, but I won't delve into them now.
I was also thinking that each target replacement would have more than one possible variation, though from a pure entropy point of view that doesn't change the likelyhood of invalidating the watermark.
Also once you've discovered a couple of the variations used in the watermark, then choose one option from each variation randomly. Then the remaining mark may be able to identify one of the purchasers, or perhaps both of you. But could certainly narrow down the possibilities to a handful of people.
This is an objective of the Serval Project. Our Serval Mesh software for android currently provides secure voice / chat / file distribution over local networks. But since Wi-Fi has such lousy range, we're also planning to build and sell small Wi-Fi routers with 915MHz ISM band radios for long range / low bandwidth links.
While we're focused on local communications in places where the infrastructure is down / never existed / can't be trusted, with the addition of a Distributed Hash Table, we could provide services over the internet.
Don't blame the application developers here. The poorly designed permission structure of android is mostly to blame. Any voice and text application that wants to integrate with the rest of android, needs to ask for nearly all of the permissions.
But this app seems totally dodgy. Free communications? No adverts? Where the hell are they getting the funding to run any servers and application development?
"If you aren't paying for the product, you are the product".
I wanted to make a cool graphic to show the relative sizes of the IPv4 and IPv6 address spaces. You know, where I’d show the IPv6 address space as a big box and the IPv4 address space as a tiny one. The problem is that the IPv6 address space is so much larger than the IPv4 space that there is no way to show it to scale! To make this diagram to scale, imagine the IPv4 address space is the 1.6-inch square above. In that case, the IPv6 address space would be represented by a square the size of the solar system.
I'm picturing an xbox kinect-ish system that tracks each person entering, follows their movement and the movement of their limbs, and remembers if your hands got close enough to the sink / sanitiser. Then only if you head towards ICU and attempt to open the door, an alarm sounds so that your peers in the room notice, and a video recording is kept.
Building translators is good clean fun. -- T. Cheatham