iOS: Access to root directory in a jailbroken iPhone - objective-c

Ok, I used jailcoder.com to patch my xcode project in order to run my app in a jailbroken iOS device and it works. But still I need list some others files located at root folder. I saw some applications that do that but didn´t find the way to accomplish It.
Maybe there's a possibility to run code as root

I don't know exactly which files you need to access, and what permissions they currently have.
Normal apps run as user mobile. If you do need to run your app as user root, then here is one way to do that.

I answered here in a similar question How to get inbox all SMS on iphonse sdk?
It is possible if you have a jailbroken device. You may use jailcoder to fake code signing and then move your app to /Applications folder. This way you can access to any database in your iOS device jailbroken.

Related

Download .ipa build via App Store Connect API

Due to some unique quality and regulatory requirements in our organisation, we need to be able to download a .ipa build from App Store Connect, in order to be able to compare it against a locally built binary. I appreciate this is an unusual requirement, but it is non-negotiable.
Clearly there is no way to do this via the App Store Connect web interface, so I've been looking at the App Store Connect API. However it is ambiguous from the documentation, whether it is possible to use this to download an .ipa build.
Does anyone know if this is possible, and how one might go about doing it if so please?
Apple does not provide any way of retrieving an upload app/IPA. It's neither possible through App Store Connect nor the App Store Connect API.
You can only check entitlements and additional build information in the App Store Connect interface. For that go to App Store Connect > My Apps > Activity > All Builds > Click on the build
(Fastlane does also not provide any way, because Apple does not expose the data. It uses the "web API", i.e. has access to more information than the "standard" App Store Connect API)
We can download IPA file with the help of Apple Configurator. Follow below steps to download IPA file.
Download Apple Configurator 2 app on your MAC.
Connect your iPhone with MAC and Apple ID should be same in apple Configurator and iPhone.
New window will display with app count badge in All Devices Tab.
Right click on your connected device in Apple Configurator and select Add and then Apps.
Process will complete and Popup will show with options, no need to click any option and go to this path
~/Library/Group Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps/
Save IPA file in your directory
-Now stop Apple Configurator
EDIT: I know this question is aimed at Downloading Appstore/Testflight builds, specifically, but wanted to provide this answer for others who find your question while looking for it from anywhere.
You can download iOS .ipa from Firebase distribution, as well as for Android .apks. But you do need to have the right permissions.
I just did it 5 minutes ago. See ☝️?
Go into App Distribution > find your app scheme/variant > expand build number > see if you have a Download button. If you don't, your company needs to bump your permissions up a bit higher.
Keep in mind that firebase apps can experience limitations when interacting with Apple SDK features, though, like SIWA. You'd need to use Testflight to test things like that if they don't work for you (we have decent devs and never could get it working on Firebase builds).
If the file gets deleted before you can copy it, you can use this command:
watch -n 0.1 find "~/Library/Group\ Containers/K36BKF7T3D.group.com.apple.configurator" -iname "*.ipa" -exec 'cp -r {} ~/Downloads \;'
When it's downloaded it will copy it to the Downloads folder. You're welcome.
Part of the credits to my colleague Daniël.

How to program a sandboxed application in Yosemite

I was trying to program a simple TODO app for Yosemite with sandboxing. Apple has its tutorials for the same but they are not very elaborate. I wanted to know sandbox APIs like sandbox_init() and APIs for console logs (heard sandboxed apps use some special APIs). Could someone please point me to some open source app with sandboxing on Yosemite, so that I could see the APIs that it is using.
You don't need to use sandbox_init() etc. in order to create a sandboxed app.
Roughly, you need to understand:
Use the APIs to find well known directories and don't assume that /Users/username/Documents is the Documents folder, for example.
The app has no access to user files and must gain access via NSOpenPanel.
If the app wants to retain access it has already gained then it needs to create and store bookmark URLs, which can be reloaded during a later invocation.
If the sandboxed app spawns a child process, then that child process needs it's own set of entitlements.
Once you understand that it's normally just a case of setting Use Sandbox in the app capabilities and you're off.

How to detect a docked device in cocoa

I've been searching all over the web and have found solutions to mounted device detection from within a Cocoa App using the NSWorkspace notification system. However this notification doesn't seem to be triggered when an Apple device is docked.
I specifically want my OSX App to detect docked iPads/iPhones, be able asses whether the iOS version of my App is installed and then synchronise files. I realise that the easiest way to do this is using iCloud, but I do not as yet have a developer membership with Apple and would like the option to be able to synchronise files without the internet.
An iTunes like system would be ideal. Any ideas.
Thanks in advance.
Apple don't provide any official APIs for doing what you ask.
Unofficially, you can try the stuff here: https://bitbucket.org/tristero/ipodaccessframework
You can definitely use it to determine whether a particular app is installed (by looking for a match for its bundle-id) and you can read/write files to/fro a particular apps document directory.
Disclaimer: this one is mine. There are definitely other libraries around that achieve similar results.

How to launch an app inside an application

I may be blamed of duplicating this or this or even any of these but really no one answers my issue. I need to launch an app by clicking on a button on my UI, but the application i want to launch has no custom URL Scheme and here my nightmare gets started. I tried to call the app(using NSBundle-path) ect but i could see no way to call that app. Thanks in advance for any answer-even idea.
Question-2) Is there a registery-like system on iOS system? For example, can we add the path of raw apk into a registery and forse it to start? I have a background of C, i can try on myself if it is possible
There are 3 ways to open an app from your app on iOS:
URL schemes
Using the UIDocumentInteractionController to allow the user to open a file in another app
Using private API's
Simple. No there is no registry like system on iOS.

Restart/shutdown mac remotely from iOS through SSH?

I set up my old laptop as a media server and created a mac application in AppleScript that would remotely restart or shutdown the mac depending on which button was pressed, using this code:
tell application "Finder" of machine "eppc://USERNAME:PASSWORD#MYSERVER"
shut down
end tell
It's super simple, and was easy to write, but now I want to create an iPad app that can accompany the mac one. Ideally, I'd like to use AppleScript as, like I said, it's very simple, but I feel like that's not an option.
What are some other ways to do this? Where I would click a button, then it would connect to my mac and either shutdown or restart.
I feel like the best way would be to use SSH, and right now I'm looking at https://github.com/x2on/libssh2-for-iOS. Any other ideas?
Okay, just to brainstorm.... Dropbox is a great way to share content among machines, but it's also a pretty darn decent communication mechanism.
I use Dropbox to fire up (legal only!) bittorrent downloads on my home machine by setting up my torrent client to watch a dropbox folder for incoming .torrent files. I can then save .torrents into that directory on any machine I have Dropbox on, or in principle from a browser on my iOS devices that could share to Dropbox, and ta-da, instant remote kickoff. I can sit on another machine, save a .torrent to that directory, watch its file extension change to .torrent.imported, and know that when I get back to my main machine, that thing will be downloaded.
You could use folder actions or a cron job to watch a certain Dropbox folder for commands, and then put files into that folder that trigger those scripts to perform certain behaviors. Dropbox has a very nice iOS client library, making it totally possible to store stuff to Dropbox from a custom app.