How to Disable iPad/iPhone Home Button (Kiosk/Store Demo Mode)
A client that I have asked if it was possible to disable the home button for an app that I am currently developing and I decided to tackle the challenge. All it really requires is a correctly configured mobile configuration plist. Now, a lot of people are probably quickly opening the iPhone Configuration Utility to try and figure out how to do this, but for some reason Apple didn’t put the keys required to disable the home button inside IPCU at all! IPCU can’t even install it on the device because of it.
I have included an example plist that will disable the home button and lock your device into the app. If you would like to just test this mobile config without making your own, feel free to use one I have created and uploaded by clicking here.
BEWARE
Once this profile is installed the first app that is launched when the device is rebooted will be the only app that will run until you reboot the device again.
You must reboot(power off, power on) the device after installing the profile for the changes to take effect. To remove the profile from the device, you must plug the device into IPCU and delete it, then reboot the device. Everything should go back to normal.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>PayloadContent</key> <array> <dict> <key>PayloadDescription</key> <string>Disables the home button.</string> <key>PayloadDisplayName</key> <string>Home Button Lock</string> <key>PayloadIdentifier</key> <string>com.zchristopoulos.kiosk</string> <key>PayloadOrganization</key> <string>Zachary Christopoulos</string> <key>PayloadType</key> <string>com.apple.defaults.managed</string> <key>PayloadUUID</key> <string>B2D02E2D-BAC5-431B-8A29-4B91F71C9FC1</string> <key>PayloadVersion</key> <integer>1</integer> <key>PayloadContent</key> <array> <dict> <key>DefaultsDomainName</key> <string>com.apple.springboard</string> <key>DefaultsData</key> <dict> <key>SBStoreDemoAppLock</key> <true/> </dict> </dict> </array> </dict> </array> <key>PayloadDescription</key> <string>Disables Home Button</string> <key>PayloadDisplayName</key> <string>Home Button Lock</string> <key>PayloadIdentifier</key> <string>com.zchristopoulos.hbkill</string> <key>PayloadOrganization</key> <string>Zachary Christopoulos</string> <key>PayloadType</key> <string>Configuration</string> <key>PayloadUUID</key> <string>614D1FE3-F80D-4643-AF6B-D10C4CC8737A</string> <key>PayloadVersion</key> <integer>1</integer> </dict> </plist> |
Can a general user do anything with this “plist”, or can this only be utilized by someone writing iOS apps?
It can be utilized by anybody, but the only thing it does is disable the homebutton once an app opens.
It can be used by anyone. I installed it by opening it from an email attachment. Using the iPCU doesn’t allow you to load it as it strips the unauthorized config info.
Holy Crap! How did you find this?! I’ve been trying to sneak this info out of the Apple store kiosks forever!!!
You can also remove the profile via the Settings app once you don’t need it any more.
Are you sure?
Yep – deleting the profile from Settings.app and rebooting worked for me.
What’s left to discover is a way to make the iPad automatically run the desired kiosk app to prevent the users from unlocking by simply restarting the iPad.
Apple doesn’t even know how to do that yet haha.
Another method for removing it is just restart again and enter into the settings app > general > profiles
Are you sure??
Pretty sure. Just did it actually. Added a bit more to the file too so it blocks it with a password thus increasing removal difficulty.
Here is the code if you want
PayloadContent
PayloadDescription
Disables Home Button of the device and sets it Demo mode
PayloadDisplayName
Home Button Lock
PayloadIdentifier
com.example.myorganization
PayloadOrganization
MY ORG.
PayloadType
com.apple.defaults.managed
PayloadUUID
0733DC5D-1839-42DF-A743-30F06C962E9A
PayloadVersion
1
PayloadContent
DefaultsDomainName
com.apple.springboard
DefaultsData
SBStoreDemoAppLock
PayloadDescription
Configures Configuration Profile security
PayloadDisplayName
Profile Security
PayloadIdentifier
com.example.myorganization.ProfileSecurity
PayloadOrganization
MY ORG.
PayloadType
com.apple.profileRemovalPassword
PayloadUUID
C99D3C33-5482-457C-8EFD-B58B272BC48A
PayloadVersion
1
RemovalPassword
PASSWORD
PayloadDescription
Disables Home Button of the device and sets it Demo mode
PayloadDisplayName
Home Button Lock
PayloadIdentifier
com.example.myorganization
PayloadOrganization
MY ORG
PayloadRemovalDisallowed
PayloadType
Configuration
PayloadUUID
71904253-0B19-493A-86D2-D8EF05C65E39
PayloadVersion
1
And I guess this is not using standard code flags.
Anyways its not really that hard to figure out based on the code on the post so a little puzzle?
He is right. You have to restart the phone after removing the profile, but it works.
interesting, what version of ipcu were you using. I have 3.4 and it insists on stripping that key upon import and then fails to install on the device
IPCU does strip it because it doesn’t know the keys used to disable the home button.
This makes me wonder what other hidden tricks are possible through profiles. The options available though iPCU are a bit limited. How did you discover this? Maybe your methods could be used to discover other undocumented configuration options.
Pingback: How to Disable iPad Home Button Auch als Kios Mode bekannt. Und: Es funktioniert auch auf dem iPh… | hochwald.net
Pingback: How to Disable iPad Home Button Auch als Kios Mode bekannt. Und: Es funktioniert auch auf dem iPh… | hochwald.net
Thank you! You´re great!
I´ve searched for something like that for weeks.
And I think it can really be used by anyone.
Great, this worked like a charm. Thank you so much for this, will be very handy for an app I’m building for an upcoming exhibition.
thank you very much man..
This works perfectly. Thank you very much for the hint!
Best regards
Thorsten
This is great! I’d love to know how you figured this out, but I’m just as happy knowing that I can repeat it on my own device. Excellent find.
Hey Zach,
Thank you very much for this.
Regards,
Duy
great work, thanks – helps me a lot!
regards
simon
You could wait till iOS 6 comes out and use the new dissableing feature on there. I think it’s called Guided Access!
Hope this helps!
PS. iOS 6 comes out “This Fall”.
The “downside” to the Guided Access feature is that the home button has the triple click on-off bit. I have iPads installed in a museum, and I know if I use the Guided Access feature instead of the trick listed on this site (which may get deprecated with iOS 6), our guests will be endlessly trying to guess the password. I don’t want the little password prompt to be sitting on the screen when another guest comes along. There are iPad frames which completely block access to the physical button, but that’s out of budget at this time for us.
OK – Dumb question. What is iPCU?
iPhone Configuration Utility.
Thank you.
Awesome. I am deploying multiple iPads for a Audio/Video control system in a place of business, and was thinking I was going to have to rig a bracket to cover the home button. Makes me look like I know what I’m doing now!
Thanks!
I agree with all the positive comments above.
Seems to work perfectly as described. Totally easy install. Overall impressive.
Using it with iOS 5.1.1
Maybe you can help me from the other side of this issue. We purchased a couple of iPads at a business liquidation auction and they said they were from a retail establishment that locked the iPads to one app. They said just do a full restore and it will wipe them for our use.
Ugh – I figured out how to do the full restore (hold the home button while connecting to the USB until the connect to itunes screen comes up, etc.) and all I get is an error “This iPad is supervised by another computer and cannot be used on this computer”.
I can’t get past that to do the wipe and restore that is supposed to reset it. Any suggestions?!?
You are going to want to put the iPad into DFU mode http://lmgtfy.com/?q=dfu+mode+ipad and plug it into USB. That should let you restore.
It asks for a 4-digit password to install the profile you posted
Installing profiles require this.