Я провел некоторые исследования по этому поводу для своего собственного приложения, которому требовался доступ ко всей файловой системе на взломанном устройстве. Вы не можете установить приложение обычным способом, установив файл .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\""