Wie ändere ich meine iOS-Anwendungen die Berechtigungen?
Muss ich laufen, den folgenden code zu deaktivieren, mein iphone-Bildschirm .
Auf iOS6:
void (*BKSDisplayServicesSetScreenBlanked)(BOOL blanked) = (void (*)(BOOL blanked))dlsym(RTLD_DEFAULT, "BKSDisplayServicesSetScreenBlanked");
und dann verwenden:
BKSDisplayServicesSetScreenBlanked(1); //1 to dim, 0 to undim
Es funktioniert nicht. Jemand hat mir gesagt, dass ich brauche com.apple.backboard.client
Berechtigungen für diese Arbeit auf meinem iphone. Ich weiß nicht, wie Sie diese Ansprüche. Ich habe gesehen, einige Möglichkeiten, Ansprüche, aber Sie sind sehr verwirrend für mich, wie dieser.
Ja, Sie brauchen, um code zu unterzeichnen, die Ansprüche. Aber, Nein, tut es nicht
Sie müssen mit einem Apple-Zertifikat auf jailbroken Telefone. Sie können
gefälschte code, der Zeichen, durch das herunterladen der ldid-Datei, und tuncd MyAppName.app ldid -Sentitlements.xml MyAppName
vorausgesetzt die app ist benannt MyAppName und Sie machte die Ansprüche
Datei entitlements.xml. Ich glaube, dass diese entitlements-Datei
Arbeit für Sie, wenn Sie gefälschte code-signierte es mit ldid.
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0">
<dict>
<key>com.apple.backboard.client</key>
<true/>
</dict>
</plist>
Selbst mit der oben genannten Methode, wo ich die oben genannten Ansprüche-Datei?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für einen jailbreak app/Anspruch, müssen Sie etwas tun, wie diese. Erstellen Sie zunächst eine Datei mit dem Namen
entitlements.xml
(oder was auch immer Sie mögen):Können Sie hinzufügen mehr Ansprüche, wenn Sie brauchen. Diesem Beispiel wird die Datei nur gewährt die app die
com.apple.backboard.client
Anspruch.Ist es eigentlich egal, wo Sie diese Datei. Der Schlüssel ist:
SDKSettings.plist
Datei, wie hier gezeigt.CODE_SIGNING_REQUIRED
sollteNO
.HelloWorld
Sie suchen für dieHelloWorld.app
Ordner. Es können je nach Ihrer Konfiguration, damit ich nicht die Mühe zu versuchen, Ihnen zu sagen, wo das ist. Wenn Sie Zweifel haben, verwenden Sie den Befehl Liniefind
Befehl.ldid
pre-gebaut aus diese Lage, oder als Quelle von hier.HelloWorld.app
ist. (Hinweis: Sie müssen nicht haben haben es hier ... wenn du es irgendwo anders, so passen Sie die Befehlszeile zeige ich Euch weiter unten).Nach diesem Punkt, müssen Sie die übertragung der gesamten "HelloWorld".app Ordner zum installieren der app auf Ihrem Gerät. Es gibt viele Möglichkeiten, das zu tun, und es klingt wie Sie haben schon einen Weg.
Ich habe diesen ganzen Prozess mit setup ein Skript, um es einfacher zu machen.
Hinweis: ich bin nicht die besagt, ob oder ob nicht dieser Anspruch ist die richtige Berechtigung an, die für die
BKSDisplayServicesSetScreenBlanked()
Anruf auf iOS 6. Habe ich noch nicht getestet. Ich weiß, dass dieser Anspruch funktioniert, können SieSBDimScreen()
auf niedrigere iOS-Versionen. Aber diese Antwort ist nur eine Beschreibung, wie hinzufügen diese Art von Berechtigung für eine jailbreak-app.administrators-Mac-mini-3:debug-iphoneos me$ $ldid -s entitlements.xml screenoffios6.app/screenoffios6
Es gibt die folgende Fehlermeldung zurück-bash: -s: command not found
-S
Großbuchstaben, keine Kleinbuchstaben, und es gibt keinen Raum zwischen ihm undentitlements.xml
.-bash: $./ldid: No such file or directory
ich verwendet den folgenden Befehl./ldid -Sentitlements.xml screenoffios6.app/screenoffios6
codesign_allocate: object: screenoffios6.app/screenoffios6 malformed object (unknown load command 10) util/ldid.cpp(584): _assert(0:WEXITSTATUS(status) == 0) Trace/BPT trap: 5
screenoffios6.app/
. Innerhalb dieses Verzeichnisses, geben Sie den Befehlfile screenoffios6
und mir sagen, was die Ausgabe ist (bitte umgeben von Zecken in Ihrem Kommentar). Auch, welche version vonldid
(der link zeigte ich in meiner Antwort) hast duldid
?screenoffios6: Mach-O executable arm
lipo -info screenoffios6
im gleichen Verzeichnis? Ihr system möglicherweise nicht habenlipo
, aber hoffentlich tut es.Non-fat file: screenoffios6 is architecture: armv7
screenoffios6
ausführbare Datei, und versuchen Sie es unterzeichnet an mich selbst. Ich bräuchte nur die ausführbare Datei, nicht eine der anderen Ressourcen, die Sie zur Ausführung Ihrer app (Info.plist, icons, etc.). Das ist alles was ich denken kann, zu empfehlen an dieser Stelle.ldid
- Signaturen auf Ihrem Mac, sondern übertragen die unsigned ausführbare Datei auf das Gerät, zusammen mit der entitlements.xml Datei. Geh in Cydia und Suche nach ldid und installieren Sie es auf Ihrem Telefon. Dann, auf der (ssh -) Kommandozeile, navigieren Sie zu dem Sie die Anwendung installieren, und versuchen, dieldid -Sentitlements.xml screenoffios6
Befehl erneut aus, auf dem Gerät.Die Ansprüche sind entweder in der Xcode-Projekt-Datei oder legen Sie im entitlements-Datei, die die Xcode-Projekt wählt.
Blick in den Projekt-Einstellungen unter "Zusammenfassung" oder "Build-Phasen" für die Einstellung oder die Namen der Berechtigungen, Datei