Download App Author - iOS 6 Jailbreak
How can I find the author of an app (or developer or publisher, etc.) on a jailbroken iOS 6.x device? In iOS 4.x and 5.x, there SBApplication
was a member in the class author
. But in iOS 6.1 I get NSUnknownKeyException
on author request. A quick look at SBApplication.h from an iOS 6 class dump showed nothing promising (except signerIdentity
, but something else). Is there an easy way to get this without digging through any files Info.plist
?
Update: The files Info.plist
do not contain this information either. A file iTunesMetadata.plist
, on the other hand, does, but System / Cydia apps don't have this file.
source to share
I have not yet jailbroken my iOS 6 device or run class-dump
on all iOS 6 frameworks, so I cannot tell you if there is another private API for doing what you used to be able to do.
Your opinion about checking the contents of app folders (for example /var/mobile/Applications/*/*.app/
) and reading iTunesMetadata.plist files sounds reasonable. Reading each application's Info.plist will also give you CFBundleIdentifier
, which should generally contain at least the publisher's domain name (eg com.mycompany.MyAppName
).
For apps that don't come from the app store (and don't have iTunesMetadata.plist), you can try a different method (besides reading Info.plist):
Cydia packages are supported with utilities dpkg
. You can list all installed packages using the command dpkg -l
. You can invoke this command either with
system("dpkg -l >> /tmp/output.log 2>&1");
outputting content to a temporary file or using NSTask
. NSTask
is part of the OS X API and is not part of the iOS public APIs. But if you add the NSTask.h header to your project yourself, you can use it as a private API in a non-App Store application to programmatically implement the command and capture the output.
On the command line, running dpkg -l
will give you:
ii libhide 2.1 Library to hide icons. If you are a developer wanting to use this library, code samples included in /usr/lib
ii libxml2-lib 2.6.32-3 represents the library for libxml2
ii lsof 33-4 shows what files programs have open
ii lzma 4.32.7-4 slower, but better, compression algorithm
ii make 3.81-2 dependency-based build environments
ii mobilesubstrate 0.9.3999.1 powerful code insertion platform
ri ncurses 5.7-12 feature-complete terminal library
ii network-cmds 307.0.1-6 arp, ifconfig, netstat, route, traceroute
therefore your application can parse this output to read the package names from the second column.
Then you can use the command apt-cache show
to get information from the DEBIAN package / control file, which will have something like this:
iPhone-3G:~ root# apt-cache show sqlite3
Package: sqlite3
Version: 3.5.9-12
Architecture: iphoneos-arm
Maintainer: Jay Freeman (saurik) <saurik at saurik dot com>
Installed-Size: 348
Pre-Depends: dpkg (>= 1.14.25-8)
Depends: sqlite3-lib
Replaces: sqlite3 (<= 3.5.9-11)
Filename: debs/sqlite3_3.5.9-12_iphoneos-arm.deb
Size: 71928
MD5sum: 6d47c112692ac00af61bd84e3847aa42
Section: Data_Storage
Priority: standard
Description: embedded database used by iPhoneOS
Name: SQLite 3.x
Tag: purpose::library, role::developer
I know this works more than just using author
from SBApplication
, but maybe that's good enough? Hope someone else hears another answer ...
source to share