Creepy iPhone bug: front facing camera takes pictures by itself.
discussions.apple.com
discussions.apple.com
Anyway I also don't have an iPhone 4, but FaceTime for OS X shows the camera view whenever it's on so that you can see yourself whenever starting a call. I imagine FaceTime for iOS does something similar.
If you combine those two things, you get one possible explanation for what's going on. One that's pretty benign, but should probably still be avoided because it obviously spooks users. Oh, and it should probably be at the API level so that the last thing an app saves is never camera data.
But this is at the OS level, an app has no control over it, and it's irrelevant for the whole camera thing.
3rd-party apps can display a single static image (default.png) on boot. It is common for this image to be a screenshot of the UI without any content (e.g. nav bar, toolbars, but no buttons or data) in order to give the impression of a faster/more-progressive loading process.
I don't know how it is implemented under the hood, but Facetime on iOS does not appear to be a separate app (from the user perspective, at least). Someone who has jailbroken their phone and inspected the filesystem may be able to speak to this point more directly.
Fast app switching, depending on memory availability, does sometimes freeze an app and save state to stable storage. It's possible that this is a source of the rogue image data. A quick test with Instagram suggests that the camera is disabled when an app is "backgrounded." Perhaps Apple's built-in apps (e.g. Phone, Facetime) behave differently.
A: It's front-facing, so it's never of me.
B: The phone is completely worthless, so it never takes decent photos anyways. (Generally of my pocket.)
The only reason people are spooked is that Apple has higher expectations (also, tribal instinct). My buddy's Nexus phone module will crash constantly, requiring a reboot before use of the camera. His response: "Eh, whatever."
Apple's no golden child, as this bug demonstrates, but they're orders of magnitude better. HTC probably would've just let it be, in all honesty.
Apparently one camp or the other is fairly touchy.
He noted that was a trick the built-in apps use, that third party apps cannot. IIRC it was in the context of wishing that third party developers were allowed to do the same thing.
Basically: 1. Open the camera app and flip the camera to yourself. 2. Close the camera app, and call yourself on your Mac's FaceTime app. 3. The image that showed up was of me frozen, from just a few moments prior when I flipped the camera around.
When I first saw this post, I attempted to call a friend, and saw exactly what that first poster in Apple discussions saw, a black screen.
After rebooting it's all "fine" now. (I'm running 4.3.1)
iPhone/iPod/iPad users can correct me if I'm wrong and iOS pops up some kind of warning when an app turns on the camera -- I know it pops up a warning under some circumstances at least.
If it does wait til you unlock, it's probably an iOS bug. If it doesn't, let's look askance at their list of installed applications, particularly the ones that use the camera and that people were likely to have been using shortly before locking their screen (a guess, based on their lists: facebook).
Can't explain it though.
Then Facetime is loading those pics on startup because they were the last pic taken with the phone.
http://developer.apple.com/library/ios/#documentation/UIKit/...
Note: GPS sometimes doesn't work indoors, where there's no line of sight to the satellites in the sky. Cell towers and Wi-Fi work, but aren't as precise.
And I doubt permissions would fix anything for most users - users tend to agree to anything.
http://www.bunnyhero.org/2010/08/17/thoughts-on-ios4-camera/
As a fellow iOS developer, I believe this is true. It's pretty amusing that there's a guy on the Apple Discussions forum claiming that this is impossible. Actually, it's very possible.
Mind you, that's based on absolutely no actual understanding of the hardware, software or APIs involved.
In fact I'm surprised it isn't happening more often (especially to jailbroken iPhones and Android devices), it seems that smartphones are a perfect target.
The approval process, while not guaranteed to catch malware, serves as a deterrent to evildoers because they know that at least some review will be made of their app, functionally as well as on an API-level.
There is a paper trail from each app to the developer responsible for it. When your app gets caught, you get caught.
It'd take a remarkably stupid evildoer to develop malware and submit it for Apple approval. It's less of a hassle and much less risky to be evil using other traditional channels, with no oversight; like exploiting browser bugs, building native programs that don't require neither the paper trail or an approval process (maybe masking as a "driver" or a "plugin" you need to watch some shady porn or whatever), spam, fraud and other schemes, etc.
For these reasons, it doesn't surprise me that we've seen no malware on iOS.
* Jailbroken users get their apps from third party sources and there are no more guarantees.
* Android Market doesn't do malware checks (yet), and there was an issue with malware recently.
Still, not even the AppStore is perfect: somone snuck in a tethering app disguised as a flashlight, if I remember correctly and there was a problem with a book vendor that was gaming the top lists.
I don't think malware on jailbroken iOS or Android happens much because most people who jailbreak are technically savvy. Also, they're a relatively tiny minority.
If they can't build the permissioning around their apps immediately, it will be a good idea to list the phone resources (camera, voice, speakers, etc) that an app uses on the app store page.