Beware of ads that use inaudible sound to link your phone, TV, tablet, and PC
arstechnica.com
arstechnica.com
The latest Netflix update on Android asks for microphone permissions, saying that in the future they'll offer a way to call Netflix support from within the app. No, that's not a good reason; I have a phone for that. I've specifically avoided that upgrade; I'm hoping that my Nexus gets the upgrade to M before then, so that I can upgrade Netflix but deny it access to the microphone.
Not just for permissions by the way, Privacy Guard can also prevent wake locks and auto start permissions. That's a serious battery life saver.
Yeah yeah, clueless aunt Tillie will flip something and complain that its broken. But persisting this way means that you (Google and anyone agreeing with their stance) are breeding whole generations of Tillies.
As a result of early privacy breaches, later releases of iOS added per-function permissions on demand, leap-frogging Android in terms of permissions functionality. Android has had some level of per-function permissions on demand in the works since Android 4.4 -- and you could use it in unofficial Android builds like CyanogenMod by turning off individual permissions for apps -- but the feature only finally made it into official builds in Android 6.0. It also got it properly in the API and manifest of apps as well so they can ask permissions as they need them... like the Facebook app needing access to your photos when you select to attach a photo to a post.
The Intent system[1] is the real ingenuity of the original Android platform. I wish it was used more. Unfortunately most apps choose to implement things like picking an image or an address from the address book in their own code instead - thus more or less forcing the user to submit excessive permissions to the app to get anything done - rather than using the intent system.
The 6.0 on demand permissions may be a decent step forward from the old way of forcing the user to hand over all permissions at install time. Even better would be if the user could indicate to the app that it should use an intent based solution instead requesting a certain permission.
Obviously there are exceptions to this, some tasks require permissions and cannot be resolved with intents.
[0] http://stackoverflow.com/questions/5309190/android-pick-imag... [1] https://developer.android.com/guide/components/intents-filte...
Whichever way you look at it it's pretty unacceptable that it's taken so long for Android to implement this.
Location permissions have been in Android since the version 1.0 of the API.
http://developer.android.com/reference/android/Manifest.perm...
I am talking about the API permissions e.g. "the dialog box that pops up confirming you want to allow this app to read your location".
That is the point of this whole discussion right ?
The basic problem was that USA was lagging the mobile world severely, so when the likes of iPhone shipped over there it seemed like a revolution for that insular market. I just wish the wider (tech) press didn't so much unquestionably parrot the US press.
Did you live through these? I used most of the pre-iPhone Nokia S40 smartphones and owned a few of them, both "consumer" N-series and "professional" E-series. They only rivaled iphones in the checkbox sense: features were technically present on the phone, anything beyond that was missing, the hardware was usually insufficient, the software was garbage on both usability and performances, the overall experience was utterly miserable. After I finally switched from my E70 to a 3G the only thing I wondered is why I hadn't switched earlier (answer being I didn't want to lose the checkbox of 3G support, never mind that I'd have had more utility from 2G on an iphone than I did from 3G on an E70).
And dumbphones didn't come close (dumbphones were what non-corp US users used).
Or because it just plain felt better to use and was available on a heretofore unprecedented scale among people who shape public opinion. But that doesn't allow one to impute some kind of invalidity to the occurrence, does it?
I think the real innovation was the data contract, getting a decent data allowance for other phones was for Rockerfella.
I haven't tried their Chat support, but I assume it's like all of the other chat services where agents handle many customers at a time so it takes forever for each response back.
There are already apps that let you re-write a side-loaded app's permissions, but that usually doesn't work very well. I tried re-writing Facebook's permissions and it aborts fairly quickly.
...the top 10 flashlight apps in the Play store require network access, camera access, address book access, etc. I can't believe that there would be any great complaint among the majority of android users if Netflix asked for microphone access. And that's exactly why we need the ios-style permissions that google is finally bringing to android.
As for people complaining: a few recent upgrades of Google applications asked for additional permissions without explanation, and the "reviews" of those got inundated with comments complaining and asking about those additional permissions until Google gave a satisfactory explanation (Chromecast support).
https://play.google.com/store/apps/details?id=com.bigosaur.l...
http://developer.android.com/reference/android/hardware/came...
Granted, they're unnecessary now because flashlight on/off is in the pulldown.
Older applications weren’t designed for this feature, and they generally just assume they have access to any permissions they request. Most of the time, applications should just continue working normally if you revoke their permissions. In some rare cases, the application may crash — if it does, you’ll need to give it permission again.
So yeah, if Facebook decides to stick to api level 22 for a while, you won't be able to un-privilege it.
> I've specifically avoided that upgrade; I'm hoping that
> my Nexus gets the upgrade to M before then, so that I
> can upgrade Netflix but deny it access to the
> microphone.
Weird - mine stopped working when the upgrade became available; until I reluctantly installed it.Sometimes they need it for only one feature. But in this case it could ask for permission for only a specific task, but since this functionality is not present (I think IOS allows on-demand permissions) it must be asked "for ever"
Seriously? Because that kind of overt lie would cross the line into outright evil.
"Call Netflix support?" Really? How stupid would someone have to be to buy that?
It is quite amazing what a phone can absorb while sitting in a living room with a loud tv blaring (which is most of america).
See more: https://www.audiblemagic.com/ (Edit, you will see "Facebook" as one of their customers.....)
You're correct about microphone permissions related to the SDK. On iOS, this means displaying the top colored bar when you're using the microphone too... IMHO it's not something you can just turn on and not realize it's being used.
We use our listening tech at concerts and event to distribute triggered content and messages from the speaker infrastructure to attendees' phones (ex. "this drink line is long, go to the other one", "here's a free song from the artist on stage right now", "<sponsor> is giving away a free thing", etc.)
The Brooklyn Museum did a nice writeup of why bluetooth beacons at scale didn't work for them.
https://www.brooklynmuseum.org/community/blogosphere/2015/02...
Sonic networking in action: [1] http://smus.com/ultrasonic-networking/ [2] https://gigaom.com/2014/06/26/chromecast-will-use-ultrasonic...
It could be a "Smart" TV though, listening for your phone/tablet/laptop, or a device installed in places like cafes...
In terms of entropy, breathing rate is a lot of information: several breaths per minute. So if something of that rate can be noncooperatively recovered, the claim in your comment about cooperative recovery is dubitable.
b) lots of developers use ads or other SDKs in their apps, not to mention we just saw Xcode poisoned with a malicious SDK
No one other than one person has ever talked about it.
FSK at 17.5 and 18.5 kHZ is one possibility, but wasn't detected in this experiment.
Things are likely to improve, but it's going to take time.
A rosy view
Even with the take-it-or-leave-it faux-contract of adhesion permission model, there should be a visual indication when an app is using the microphone. Background microphone (not as a result of a directly preceding user intent) should be a separate additional permission, and probably shouldn't be exempted from having a visual notification with an easy way to mute the passive listening.
It is possible to hack the Android platform or OS to prevent or mitigate mischief like that, but ironically, it requires devices to be rooted.
Android architecture rewards the bad guys by obstructing the good guys!
I think mass migration of all devices to something like Cyanogenmod is the only solution.
I remember growing up always hearing around the house the hum of the CRT TV when my parents would turn the cablebox off and not realize they left the tv running. Parents never heard anything. You start to lose hearing at upper frequencies around as early as in your 30's... when I talk to my friends about this, a surprising number of them (even the non-techies) remember this barely-audible-CRT-hum noise pollution phenomenon.
The upper range of human hearing is about 20khz. From a design and manufacturing-costs point of view, it doesn't make sense to design a speaker that can reproduce sounds much above human hearing. If you're gonna be optimizing the speaker cone for anything, you're probably gonna set an upper bound around the upper range of human hearing, maaaybe go a little bit above if you're high quality and want to reproduce everything.
So, your average TV speaker is probably going to reproduce some sounds above the upper range of human hearing, but not too far above. The higher into the inaudible range you design your beacon, the more likely it's not going to work, because not enough TV's are going to be able to reproduce it and your system becomes unreliable.
If I was building such a beacon, there's a good argument to be made to target your signal tone at or slightly below the upper range of human hearing, making it audible.
So (unless I don't know some detail about speaker design and there's a class of speakers that aren't generally limited at around 20khz, in which case please share) I actually think it's likely they're using almost-inaudible tones. In which case OP should smile knowing 1) he's not yet losing his upper range of hearing, and 2) he's now experiencing the new generation of the barely-audible-CRT-hum noise pollution phenomenon.
-------
[edit: yep, looks like that's exactly what they're doing. Check out this short blog post from a comment further down about a guy spectograph-hunting for these:
http://altmode.org/2015/11/13/searching-for-ultrasonic-beaco...
The bottom of the post links to a patent for this tech. "It refers to the insertion of frequency-shift keying modulated data at 17.5 and 18.5 kHz." Boom. Right in the fuzzy area of the limits of human hearing. ]
262.5 lines/frame * 60 frames/sec = 15750 Hz.
The odds that a television manufacturer [0] has designed most of its TVs with speakers that can reliably reproduce either ultrasonic or subsonic frequencies are near-zero.
The odds that the marketing arm of a niche tech company will be dreadfully (some might say fraudulently) imprecise with their marketing copy are really, really high.
[0] Let alone most-to-all of them.
Wasn't there one of the asian manufacturers the other month (I wanna say... Samsung maybe? please correct me if I'm wrong) that got caught building a SmartTV that recorded audio and sent those packets up through the network to who-knows-where? They eventually rolled that feature back, but not before they got enough press that they had to make a statement saying it was only for diagnostics or testing or something like that.
If you're, say, a multinational with a large mobile device division and a strong corporate mandate to make sure the mobile device ecosystem stays strong so profits keep flowing, is it too far fetched to think you would start looking for cross-division synergies that, lets say, grease the flow in this ecosystem? Perhaps you could introduce an extra component (or optimize an existing one for different parameters) that if, say, it saw a signal of a certain form, it might reproduce it in an invisible and obtrusive way. And if it helps major players in the device ecosystem, well, great, the ecosystem stays strong and mobile devices continue to roll off the shelf.
Complete speculation, but not an unreasonable line of thinking?
This presumes two things:
1) Enough TVs are made with speakers that can reliably reproduce actually ultrasonic or subsonic vibrations.
2) Enough microphone ship on devices that can reliably detect actual ultrasonic or subsonic vibrations.
I don't see this happening any time soon.
Hell, it'll be easier [0] to get this sort of information from the cable company by way of the cable box attached to the TV, or easier and (probably) cheaper to get this info from video playing software [1] that runs on the TV, or the inbuilt CATV/OTA tuner. [2] Maybe mix in an approximate headcount from the camera embedded in the TV to "enrich" the data.
[0] From a market coordination perspective.
[1] YouTube or Netflix "tuners" or whatever.
[2] Assuming TVs even ship with those anymore...
I never asserted that the cameras would be hidden. :)
Like you said, cameras are embedded in at least one model of "modern" television. Either laziness or "gamification" can be used to get many folks to keep the camera in the in-use position.
Ludicrous: http://dictionary.reference.com/browse/ludicrous
(Sorry, normally I wouldn't point out a spelling mistake, but hopefully this one is amusing as well as informative.)
The Google Tone extension (http://googleresearch.blogspot.com/2015/05/tone-experimental...) uses both ultrasonic sound and an audible DTMF-based codec.
Audio tones are also used for setting up Google OnHub routers; the router emits a tone and the Google On setup app listens for it. (https://support.google.com/onhub/answer/6246481?hl=en)
> The Google On app will automatically find your OnHub. OnHub will then send a setup code directly to your mobile device via an audio tone. For best results, hold your phone right above your OnHub and reduce ambient noise like music.
Neat method of convenient no-setup wireless configuration. Thanks for posting, haven't realized they've started doing this!
Submit your comments to the FTC https://ftcpublic.commentworks.com/ftc/crossdeviceworkshop/
for more information about the upcoming event and to access comments: https://www.ftc.gov/news-events/events-calendar/2015/11/cros...
It borders on parody what level of dystopic thinking made this.
Legislation is rarely the right tool.
(also there's the general problem of devices "helpfully" listening all the time for magic phrases like "Hey Siri" or "OK Google")
BTW, I have always wondered why there are seemingly no solutions for blocking ads on a regular old TV, even if it's just a matter of muting the ads and then unmuting for the show/movie.
I remember I used to have a TV that you could easily set a timer on a channel when a commercial block started and then flip through the other channels and once the timer was up it would automatically switch back to the channel with the show or movie you were wanting to watch.
I get that that's not technologically very advanced, but the point is that that was many years ago and it's really not gotten better and even such simple solutions have disappeared and now we are left with highly sophisticated systems that will not allow for easy adding of ad blockers.
A very cursory look seems to indicate the microphone permission is used by Gracenote (https://developer.gracenote.com/) music recognition SDK.
I was basing my assumptions on http://stackoverflow.com/questions/32432785/i-have-updated-a... which shows that the package we're looking for is com.silverpush.sdk.
The developer who asked that question works for the company who released that app.
The app description also says "Download MI Mobile and activate today, then just keep your phone with you throughout the day (including while you watch TV) with MI Mobile running in the background." which made me suspicious.
void a(String s1, String s2, String s3, String s4)
{
i();
p.setVisibility(8);
w.setVisibility(8);
s.setVisibility(0);
s2 = Uri.decode(Uri.encode(s2));
if ("video".equals(s4.toLowerCase()))
{
s2 = new StringBuilder();
s2.append(s3);
t.loadDataWithBaseURL("file:///android_asset/", s2.toString(), "text/html", "utf-8", null);
q.setText("Demo : Audio Beacon Detected");
r.setText(s1);
q.setText("Found a match !!");
return;
} else
{
StringBuilder stringbuilder = new StringBuilder();
stringbuilder.append("<html><body style='margin:0;padding:0;background-color:black;'><a href='").append(s2).append("' ><img src='").append(s3).append("' height=250 style='margin:0 auto;display:block;' /></a></body></html>");
t.loadDataWithBaseURL("file:///android_asset/", stringbuilder.toString(), "text/html", "utf-8", null);
s3 = new StringBuilder();
s3.append("<html><body style='margin:0;padding:0;background-color:black;'><a href='").append(s2).append("' ><img src='").append(s4).append("' height=50 style='margin:0 auto;display:block;' /></a></body></html>");
u.loadDataWithBaseURL("file:///android_asset/", s3.toString(), "text/html", "utf-8", null);
q.setText("Demo : Audio Beacon Detected");
r.setText(s1);
q.setText("Found a match !!");
return;
}
}It is connecting to a few servers:
http://54.243.149.109:8040/register
http://54.243.149.109:8086/receiver
http://ad-x.co.uk/API/click/Hungind45789jo/am554ec53dd8d021/NET/aff_sub/SilverPush?subid=aff_sub2&ord=[random]
http://mobext.com
http://silverpush.com
So presumably these (along with other mobile ad networks) can be blocked via hosts file or MinMinGuard (Xposed). Not great, but probably a good course of action for now.Anyways... Here's the (clean) link to com.silverpush.sdk: https://www.dropbox.com/s/i9uaoqp10k4lmaf/SilverPush%20Beaco...
https://gigaom.com/2014/12/11/chromecast-gets-guest-mode-tha...
But I don't (yet) work in a Faraday cage ;)
Would be easier to buy external speakers and wire it up with those.
Does it work with Javascript disabled?
Does it work with text-only browsers?
How about netcat?
Do I have to get a "smartphone" to make this work?
Is there any evidence that such a thing exists?
but the attack vector described here. It requires too many devices actively compromised for any usable data to be gleaned. Manufacturers are somewhat sensitive to users demanding to control their devices peripherals. Microphones, webcams, cameras, speakers. It's not perfect, but there's enough moving parts here to make this kind of tracking seem bonkers.
For it to work, the person they have target will have blindly agreed to so many things that they have all the information they want on them anyway.
you mean one permission prompt, on one app they may have downloaded years ago?
everything else is just the advertisers including high-frequency beacons in their ad spots—it doesn't require any knowledge or cooperation of any of the intermediary steps.
I can't wait until the phone can detect EEG frequencies to guess what I might be thinking so that it can then bombard me with ads about shit I didn't even know I wanted!
Bonus points for messaging all my friends on Facebook to let them know I just was thinking about kinky porn!
It sure would take all the work out of making decisions (like what I may or may not like) or having to deal with all the pesky extra money and friends I have now!