Disable home button without rebooting device
I want that after installing my app from an OTA the home button of the device will not work at all so that user is unable to come out from the App. My digging led me to following results
A) I got a way to disable home button by a “mobileconfig” profile but it needs to restart the device and user have to open my app just after booting, i want to do this without restarting with something like Private Frameworks on non-Jail-broken devices. I want to know is that possible for non-jail-break devices?
C) If it is not possible to disable home button with Private Frameworks, then is there any way to open an app just after booting the device?, since certain jailbreak apps/ processes are loaded upon startup.
[NOTE: I don’t want to submit my app to iTunes.]
4 Solutions Collect From Internet About “Disable home button without rebooting device”
In iOS6, there’s a feature called “Guided Access”, which will allow device owners to lock users (like toddlers and school kids) into an app.
This explains the Guided Access for iOS 6 apps.
The official answer of this question is “you can not disable home button in ios devices it is os level architecture and your are not authorized for it.”
You need to dig to operating system flow to make any changes which might be quiet tough.
well, if you change you sight though it than there is one open and simple solution for this in ios 6 known as Guided Access.
If you are able to jailbreak your device create a LaunchDaemon or use an existing one. The LaunchDaemon is a file in plist format that is called upon rebooting and starting your device. You will also need a file named
open created by K3A
open from here
You will need to move
open to /usr/bin/ or you can put it inside your app does not matter but set permissions to
0755 and root:wheel
Now on to the LaunchDaemons, they are stored here
Here is an example.
Lets say you name the LaunchDaemon
Where it says
com.bundle.identifier put your apps identifier you may also find it in your
Info.plist inside of your apps directory where it says
Now inside the plist insert the following information
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.gauravstomar.test</string> <key>ProgramArguments</key> <array> <string>open</string> <string>com.bundle.identifier</string> </array> <key>RunAtLoad</key> <true/> <key>StartInterval</key> <integer>1</integer> </dict> </plist>
Label has to be the same name as the LaunchDaemon.plist excluding plist extension
ProgramArguments is what calls the file open and launches the app
RunAtLoad makes this plist launch upon reboot
StartInterval will make the LaunchDaemon.plist open back up after 1 second if the user exits the app, if the user is still in the app nothing will happened
Make sure the permissions for your LaunchDaemon is set to
You can still use your mobileconfig so that the home button is disabled. Once assessment is complete you can disable the LaunchDaemon so that the app stops relaunching itself with the following command
Let me know if you need any more help.
Without jailbreaking, the app is sandboxed. The app simply does not have access to mess with the home button. And you really shouldn’t be messing with the home button.
In addition to “Guided Access”, you can also make use of “Restrictions”, which will allow you to disable everything accept opening your app. You can disable Apple specific apps including Safari, and prevent users from installing apps, deleting apps, making purchases, etc…
We have a number of iPod touches with a ticket scanning app we rent out to our customers. We make use of “Restrictions” to disable everything besides our app. The most helpful restriction thus far is preventing people from deleting apps – It’s incredible how many people will accidentally delete an app, even after the warning prompt.
- Current view controller from AppDelegate?
- position: fixed doesn't work on iPad and iPhone
- Attempting to add an inline UIDatePicker to a UITableViewCell
- Generate JSON string from NSDictionary in iOS
- setting new properties in category interface/implementation
- How to connect multiple buttons in a storyboard to a single action?
- MPMediaItemPropertyArtwork causes crash (weird issue)
- 3D Touch Peek with Top Bar
- how to reload supplementary view in collectionView
- how do I detect whether I have iPhone 2G,3G,3GS
- Migrate from swift 2.2 to swift 3.0 in xcode 8
- Change color of UISwitch in “off” state
- Detecting user settings for Background App Refresh in iOS 7
- UITableView within UIScrollView using autolayout
- print without newline in swift