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.

+3


source to share


1 answer


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 ...

+1


source







All Articles