How to build an application which is capable of executing outside the sandbox in non-jail broken devices? Because I need to access the files and other informations like sms, call history etc ...
I'm afraid you will probably not be able to do this. The provided SDK, and terms of using the SDK do not allow you to operate outside of the sandbox.
Even if you were able to access the information, then the app would only ever be for your own use (unless you are an enterprise developer) as it would most likely get a rejection from the App Store approvals process.
The only access outside the sandbox that is allowed is mediated through Apple's SDK. You will only be able to access specific items, such as the Address Book or Photo library, through the iPhone OS framework.
If you have a more specific question about what you want to accomplish, perhaps we can answer based on what is currently allowed.
There's no method that I know of to perform access outside the sandbox that is defined by the iPhone SDK.
Even if there were, your app would not be available for non-jailbroken phones, as it wouldn't be approved by the app store.
Related
I am trying to detect the jail break on the application startup and don't know how to check for the application other then the cydia like Tweakbox, iNoJB etc are installed or not.
This question is different from other jailbreak question which detect for only cydia app not tweakbox and other is because i want to look all the application like cydia not just only cydia. and other answers in stack overflow are just checking for the cydia application and access for certain files that exist in sandbox
Those apps have nothing to do with jailbreak, full or not. All of them are properly signed iOS apps. For example, GBA4iOS is signed with "Meridian Medical Network Corp." enterprise certificate allowing it to be installed on any device. That violates ToS and can get your account terminated but works.
Given that and the fact that recent iOS versions closed private APIs for getting a list of installed applications, there's no way to achieve what you want. Furthermore, Tweakbox, iNoJB, AppValley are not even apps. They're websites with links to enterprise signed applications. Some of them require you to install configuration profile but its only purpose is to put a web link on the SpringBoard that leads to their website. You can download the profile and check its contents in any text editor, it's just a plist with signature at the end.
There are two methods:
Download Apps without App Store via iOSEmus App
Download Apps without App Store via AppValley
Method 1; iOSEmus is designed to enable users to download different kinds of apps on your devices without jailbreak and it won’t even prompt people to enter their Apple ID.
Method 2; AppValley is one of the popular tools that enables users to download countless apps without jailbreak. It also requires no Apple ID. With it, you can get as many paid apps as you want for free.
I am planning on using DeviceCheckor indentifierForVendor to ensure that the same device is not being used to redeem multiple times the same gift (free money for example sake) offered to new users. I am wondering however, if it is possible to trick this system on a jailbroken device? Or using a custom simulator or a botnet (do iOS botnets exist?)?
I haven't tried it myself, but I think it is possible to change the bundle identifier, resign the app and side load it to your device.
This will change the change the identifier for both DeviceCheck and indentifierForVendor.
Now, for this to really affect you, the user needs to get a hold of the ipa. Which is getting increasingly difficult with the newer versions of iOS.
If you are interested in trying what I've discussed, refer to this link.
https://coderwall.com/p/qwqpnw/resign-ipa-with-new-cfbundleidentifier-and-certificate
And probably AirSign (much easier). Its a paid app for the Mac. https://www.macupdate.com/app/mac/51845/airsign
I am aware that we can block safari content using swift code. I am interested in finding out if we can restrict install of certain apps from AppStore using similar approach ?
Also, is it possible if we can restrict a user from deleting the app from device (not from phone settings but from code) ? Even if Apple does not allow that to publish such app, I am looking for a solution as a part of research.
There are two things you mentioned.
First, can restrict install of certain apps from AppStore
Using Swift code I feel there are no Public API provided by Apple for the developer till now but there is a similar way that is called Device Enrollment Program.
The Device Enrollment Program (DEP) is part of the Apple Deployment
Programs (ADP), which help businesses and educational institutions
easily deploy and configure iOS and OS X devices. DEP provides a fast,
streamlined way to deploy institutionally owned iPad and iPhone
devices and Mac computers that are purchased directly from Apple or
participating Apple Authorized Resellers or carriers.
For more visit this developer guide.
Second: restrict a user from deleting the app from device
Same response for that, till now no Developer API, but lets say if we see this as a part of research and we develop some POC still, it does not make sense for me at all (It's my device and I install the app for making my life easy and better if I don't want to use it anymore, I need an option to delete it) and I don't think so this will be possible in future as well because the USP for iOS device is user experience and we can't make this like that.
I also want to hear something from others and if possible give the use case why you are looking a solution like that.
I hope this will help.
I'm working on the development of a "check-in" type app for my iPad repair company. I'd like to enforce that a pass code is removed so I have full access to diagnose the device. This could be either removing a passcode programmatically or just providing instructions on how to remove a passcode and refusing to allow the repair request to be submitted without ensuring it was removed by the user. Preferably, I'd like to be able to do this in Swift but Obj-C is fine.
I would be working directly with schools and businesses as my main customers so I would be using an enterprise development account. No worries about App Store reviewers getting their messy hands on my API calls.
Currently all of my prospective customers are using an MDM with deployment functionality so that part should be a breeze.
There is no API to remove passcode from a iOS device. But you can use one of the Mobile Device Management tool to remote wipe the device to reset the passcode.
I am building an album app. I want to set a photo in my own app as wallpaper. Is there some method available for doing so?
update:
I know there are already some similar questions posted. But they are out of time. So I am wondering if there is some method in iOS7 to implement so.
For apps going into the app store this isn't possible. Apps can't change anything outside of their environment this is because apps on iOS run in a sandboxed mode so they don't know anything about other apps that are on the device and can't affect the OS directly.
To actually do it you would probably need to use some private API so your app would get rejected under:
2.5 Apps that use non-public APIs will be rejected
but I suspect that they would actually reject it under:
10.4 Apps that create alternate desktop/home screen environments or simulate multi-App widget experiences will be rejected
As you are directly altering the home screen.