Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Detect if user has a specific Profile installed on their device

I've come across this application today, Adblock Mobile, which installs a Profile on the users device and routes all web traffic through its secure VPN to disable/block advertisements both when surfing the web, and when using an application that implements advertisements, for example banner or interstitial ads. The majority of my applications revenue is ad based so this causes some concern for me and I'm actually surprised Apple would approve this application, as it hinders iAd from working as expected.

Is there a way to access a user's installed Profiles to check if this Profile is installed from my application?

Adblock Profile

like image 850
Daniel Storm Avatar asked Sep 09 '15 23:09

Daniel Storm


People also ask

Where do I find profiles and Device Management?

Tap Settings > General > Profiles & Device Management. If there is a profile installed, tap on it to see what type of changes are made. If your employer or school issues you a iPhone, iPad, or iPod touch, it might be supervised.

How do I find profiles and device manager on iPhone?

You can see the profiles you have installed in Settings > General > Profiles & Device Management. If you delete a profile, all of the settings, apps, and data associated with the profile are also deleted.

Can you have 2 MDM profiles on iPhone?

Multiple MDM connections Another issue is that iOS devices can only connect to one MDM service at a time. For contractors that work with multiple companies, this means that MDM is not an option to secure and manage corporate data and apps—they either need to use other techniques or have multiple devices.

What is a configuration profile?

Configuration profiles are intended for managing the settings or configurations of different device features in a remote and centralized way. Each configuration profile defines a range of settings concerning a specific feature. Each device can have multiple configuration profiles assigned to it.


2 Answers

No, it's not possible to check for existence of configuration files. Some sources:

  • "... if you're thinking about checking whether the profile exists and if not to install it, it's impossible (as for available documentation thus far)", October 2012, iOS - Prevent iPhone Configuration Profile from being deleted OR check to see if it's installed

  • Apple dev forum: How can I read the configuration profile, 2011. "Not specifically. However, iOS 7 added a bunch of enterprise integration features that might allow you to achieve the same goal via a different path.", 2013.


But you if you merely want to know whether your ads are served you can do this in another way: Simply try to load some of your ads and see if they're actually loaded and act accordingly.

This should be easy to implement. And it's all you need you only care about the fact that the ads are blocked, not in what way.

Quite a few websites do this. E.g. the Dutch tech website tweakers.net serves a message to people who block ads. And I'm sure a few iOS apps will start doing this soon as well.

Check this SO question How to detect Adblock on my website? for some ways that websites handle this.

like image 150
kqw Avatar answered Oct 21 '22 16:10

kqw


No this is not possible due to sandbox. It would be a huge security issue if you could programmatically check or install profiles. Apple is very strict about security.

More details about the topic you can find there: iOS - Prevent iPhone Configuration Profile from being deleted OR check to see if it's installed

Retrieving data programmatically from a Configuration Profile in IOS

How Configuration Profiles Could Be Installed: http://www.howtogeek.com/176195/why-configuration-profiles-can-be-as-dangerous-as-malware-on-iphones-and-ipads/

like image 45
DanielS Avatar answered Oct 21 '22 14:10

DanielS