iOS Private API: lock device and power off the screen
Asked Answered
S

2

5

I'm making an app for jailbreak that lock the device when the user launch the app. I've tried GSEventLockDevice(); from GraphicsServices.framework but this does not work properly because it locks the screen but does not power off the screen. Is there another way to lock the screen without MobileSubstrate?

Shady answered 13/2, 2013 at 20:18 Comment(0)
M
3

Just as another alternative, check out this answer, which uses SBDimScreen(). You could use that in conjunction with GSEventLockDevice().

It appears that you may now (iOS 5+) need to add an entitlement to your app to use this call successfully. If you haven't done that before, here is an example of how to do so. Obviously, in this case, the entitlement in question must be changed to com.apple.backboard.client.

You also might see if @VictorRonin has experimented with this, as he commented on the question I linked to. I tested SBDimScreen() on a jailbroken iOS 4.2.1 device, but my newer devices are currently unavailable to run this test. I'll try it later on iOS 5.x and post an update.

Note: the answer I linked to from Elias has a different call altogether for iOS 6.

Mcgehee answered 13/2, 2013 at 22:16 Comment(4)
I'm learning MobileSubstrate, maybe is easier than this... Thanks!Shady
Hi @Nate, would you give me a hand for multi-touch simulating?Very appreciate it.#17908311Mesopause
it's not working on IOS 7, instead console shows an warning (<Warning>: -[BKWorkspaceServerManager _handleEvent:] Unknown GSEvent, type = 1014; Ignoring. )Hereof
@ShabiTech, many private APIs stopped working (or began requiring entitlements) in iOS 7. If you want to know how to do this for iOS 7/8, you should post a new question. This question and answer should be preserved for historical purposes. If a new solution is needed for iOS 7, we need a separate question for that. Thanks.Mcgehee
F
2

Look at these several questions:

Simulating System Wide Touch Events on iOS

Simulating System Wide Touch Events in iOS without jailbreaking the device

How to send a touch event to iPhone OS?

The idea is that you can simulate system wide events. One of events is power down event. If you simulate it, it will turn off device and will lock it.

BTW. You may be interested to google more on GSEvent which is the key for even simulation.

Here are couple of useful links:

http://iphonedevwiki.net/index.php/GSEvent

http://networkpx.blogspot.com/2009/08/gsevent-recording-and-playback-in-30.html

Also, this approach isn't limited to jailbroken phones. It works on jailed phone too (however, you won't be able to post it to AppStore).

Foreshow answered 13/2, 2013 at 20:46 Comment(6)
is there an example of this methods?Shady
Look at this. However, it could be outdate (I believe it was designed for iOS 3.0): code.google.com/p/hid-support/source/browse/trunk/…Foreshow
@VictorRonin, would you do me a favor about multi-touch simulating?#17908311 I very appreciate it.Mesopause
@Bob: Sorry, I have never tried multi-touch simulation. BTW. Be careful with this approach. People reported problems on iOS 7Foreshow
@VictorRonin, thank you for answer,but what's the problems reported on iOS 7?Mesopause
@Bob: I saw following question and made assumption that Apple added entitlements to use this API #17574072Foreshow

© 2022 - 2024 — McMap. All rights reserved.