2013-02-05 2 views
3

Как я могу найти автора приложения (или разработчика или издателя и т. Д.) На jailbroken устройстве iOS 6.x? В iOS 4.x и 5.x в классе SBApplication был член author. Но в iOS 6.1 я получаю NSUnknownKeyException при запросе автора. Быстрый просмотр SBApplication.h с дампа класса iOS 6 не показал ничего перспективного (кроме signerIdentity, но это что-то еще). Есть ли какой-либо простой способ получить это, не копаясь в каких-либо файлах ?загрузить автор приложения - джейлбрейк iOS 6

Обновление: Info.plist файлов на самом деле также не содержат эту информацию. Файл iTunesMetadata.plist, с другой стороны, делает, но приложения System/Cydia не имеют этого файла.

+0

Трудно ли это прочитать из файла info.plist приложения? Почему это не работает для вас? – Nate

+0

На самом деле у файлов info.plist тоже нет этой информации. – newenglander

+0

Ну, 'CFBundleIdentifier' обычно имеет название компании, например' com.mycompany.MyAppName'. Не то, что вы искали? – Nate

ответ

1

Я еще не взломан моим IOS 6 устройства или запустить class-dump на всех 6 рамок IOS, поэтому я не могу сказать вам, если есть другой частный API делать именно то, что вы использовали, чтобы быть в состоянии сделать.

Ваше предложение по проверке содержимого папок приложений (например, /var/mobile/Applications/*/*.app/) и чтение файлов iTunesMetadata.plist звучит разумно. Чтение Info.plist каждого приложения также даст вам CFBundleIdentifier, который, как правило, должен содержать, как минимум, доменное имя издателя (например, com.mycompany.MyAppName).

Для приложений, которые не приходят из магазина приложений (и не имеют iTunesMetadata.plist), вы можете попробовать другой метод (в дополнение к чтению info.plist):

Cydia пакеты сохраняются с dpkg Утилиты. Вы можете перечислить все установленные пакеты с помощью команды dpkg -l. Вы можете вызвать эту команду либо с

system("dpkg -l >> /tmp/output.log 2>&1"); 

перенаправив вывод во временный файл, или с NSTask. NSTask является частью API OS X и не входит в общедоступные API iOS. Но если вы добавите заголовок NSTask.h в свой проект самостоятельно, вы можете использовать его как частный API в приложении, отличном от App Store, для программной реализации команды и захвата вывода.

В командной строке запуска dpkg -l даст вам:

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 

так, ваше приложение может разобрать этот вывод, чтобы прочитать имена пакетов из второго столбца.

Затем вы можете использовать команду apt-cache show, чтобы получить информацию из файла DEBIAN/управления пакета, которая будет иметь что-то вроде этого:

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 

Я знаю, что это больше работы, чем просто использование author из SBApplication , но, может быть, это достаточно хорошо? Надеюсь, кто-то еще услышит еще один ответ ...

+0

Спасибо за подробный ответ! Я должен был упомянуть, что я использую библиотеку AppList, то есть получение имен пакетов уже сделано для меня. Но остальное будет полезно! – newenglander

Смежные вопросы