Установка приложений на взломанное устройство в приложениях

У меня есть сертификат разработчика Apple. Я пытаюсь установить свое приложение в /Applications на своем взломанном iPhone, чтобы получить доступ к базе данных SMS.db. Я пробовал несколько различных вариантов использования сертификата без сертификата, но с подписью с помощью ldid и подписи с моим сертификатом распространения iOS App Store. Мое приложение всегда вылетает при запуске, и кажется, что ничего не работает. Если у меня есть сертификат разработчика Apple, как проще всего разместить приложение в /Applications? Должен ли я по-прежнему подписывать ldid? Я использую XCode4, SDK 4.3 и iOS 4.1 на iPhone 4.


person GingerBreadMane    schedule 20.08.2011    source источник
comment
Вы проверили причину сбоя? Что такое сообщение об ошибке в консоли отладчика?   -  person Jose Cherian    schedule 21.08.2011
comment
Что вы использовали, чтобы скопировать приложение в папку /Applications? Правильно ли настроены права доступа к исполняемому файлу? Сообщается ли журнал сбоев, если вы загружаете приложение CrashReporter из Cydia?   -  person apple16    schedule 03.06.2012


Ответы (1)


Я провел небольшое исследование по этому поводу для своего собственного приложения, которому требовался доступ ко всей файловой системе на взломанном устройстве. Вы не можете установить свое приложение обычными способами, установив файл .ipa в папку /Applications.

Ваш сбой, скорее всего, связан с песочницей, поэтому он будет выглядеть примерно так:

Jun  2 15:16:10 unknown sandboxd[31] <Notice>: BlueTool(145) deny file-read-metadata /private/var/mobile

Process:         BlueTool [145]
Path:            /usr/sbin/BlueTool
Load Address:    0x7f000
Identifier:      BlueTool
Version:         ??? (???)
Code Type:       ARM (Native)
Parent Process:  BTServer [88]

Date/Time:       2012-06-02 15:16:10.275 -0500
OS Version:      iPhone OS 5.0.1 (9A405)
Report Version:  104

Backtrace:
0   libsystem_kernel.dylib          0x30604c0c stat + 12

Я решил эту проблему, преобразовав свой пакет .ipa в пакет .deb и установив его через dpkg. Таким образом, вы можете создать любой макет, который вы хотите.

Вот суть решения:

Создайте макет для работы с упаковщиком Debian:

mkdir ./layout
mkdir ./layout/Applications
mkdir ./layout/DEBIAN
chmod 0755 ./layout/DEBIAN

Разархивируйте пакет .ipa:

unzip package.ipa -d ./layout/Applications/MyAppName.app/

Создать файл макета:

cat > ./layout/DEBIAN/control <<EOF
Package: MyAppName
Name: MyAppName
Depends: mobilesubstrate, preferenceloader, libstatusbar
Version: 1.0-0
Architecture: iphoneos-arm
Description: MyAppName application
Maintainer: Me
Author: Me
Section: Tweaks
EOF

chmod 0755 ./layout/DEBIAN/control

Создайте пакет .deb:

<path-to-theos-bin>/dpkg-deb -b ./layout MyAppName.deb

Покажите, что находится внутри только что созданного нами пакета .deb:

<path-to-theos-bin>/dpkg-deb -c ./layout MyAppName.deb

Затем разверните через ssh:

scp MyAppName.deb root@<device-ip>:/var/tmp
ssh root@<device-ip> "dpkg -i /var/tmp/MyAppName.deb"
ssh root@<device-ip> "killall -9 \"SpringBoard\""
person Yuriy Gettya    schedule 02.06.2012
comment
Приложения в папке /Applications НЕ имеют ‹GUID-HERE› между папкой /Applications и папкой appname.app. Это просто /Applications/Camera.app. - person apple16; 03.06.2012
comment
@Epic_orange: Вы правы, исправлено. Собирал информацию из длинного скрипта - person Yuriy Gettya; 03.06.2012
comment
+1. Вы можете завершить процесс с помощью su mobile -c uicache, вместо того, чтобы полностью убить SpringBoard. - person Nate; 19.03.2013