2013-02-14 22 views
11

Tôi cần chạy đoạn mã sau để tắt màn hình iphone.Làm cách nào để thay đổi các quyền của ứng dụng iOS?

On iOS6:

void (*BKSDisplayServicesSetScreenBlanked)(BOOL blanked) = (void (*)(BOOL blanked))dlsym(RTLD_DEFAULT, "BKSDisplayServicesSetScreenBlanked"); 

và sau đó sử dụng:

BKSDisplayServicesSetScreenBlanked(1); // 1 to dim, 0 to undim 

Nó không làm việc. Ai đó nói với tôi rằng tôi cần quyền lợi com.apple.backboard.client để làm việc này trên iphone của mình. Tôi không biết cách thiết lập các quyền lợi này. Tôi đã thấy một số cách để thiết lập các quyền lợi nhưng họ rất khó hiểu với tôi, như thế này.

Có, bạn cần ký mã các quyền. Tuy nhiên, không, không phải phải có chứng chỉ Apple trên điện thoại đã được bẻ khóa. Bạn có thể dấu hiệu đang giả, bằng cách tải về ldid thực thi, và làm

cd MyAppName.app 
ldid -Sentitlements.xml MyAppName 

giả ứng dụng của bạn được đặt tên MyAppName và bạn đã thực hiện các tập tin entitlements.xml quyền lợi . Tôi tin rằng tệp quyền lợi này sẽ làm việc cho bạn, nếu bạn giả mạo mã đã ký nó với 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> 

Ngay cả với các phương pháp trên, nơi nào tôi đặt quyền lợi file trên?

Trả lời

16

Đối với một ứng dụng Jailbreak/hưởng, bạn cần phải làm điều gì đó như thế này. Đầu tiên, tạo một file có tên entitlements.xml (hoặc bất cứ điều gì bạn thích):

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

Bạn có thể thêm hơn quyền lợi nếu bạn cần. Tệp ví dụ này chỉ cấp cho ứng dụng quyền lợi com.apple.backboard.client.

Nó không thực sự quan trọng nơi bạn đặt tệp này. Điều quan trọng là:

  1. Bạn cần sửa đổi tệp SDKSettings.plist của Xcode, as shown here. CODE_SIGNING_REQUIRED phải được đặt thành NO.
  2. Không mã ký ứng dụng của bạn bằng Xcode. Trong Thiết lập Bản dựng, đảm bảo rằng mã nhận dạng mã được đặt thành Không Mã số Đăng nhập.
  3. Sau khi bạn sau đó Xây dựng ứng dụng của bạn cho Thiết bị iOS (không phải Simulator!), Sau đó chuyển đến thư mục trên máy Mac của bạn nơi tệp đầu ra được đặt. Đối với ứng dụng có tên HelloWorld, bạn đang tìm kiếm thư mục HelloWorld.app.Nó có thể khác nhau tùy thuộc vào cấu hình của bạn, vì vậy tôi sẽ không bận tâm cố gắng cho bạn biết đó là nơi nào. Nếu nghi ngờ, hãy sử dụng lệnh dòng lệnh find.
  4. Tải xuống ldid được tạo sẵn từ this location hoặc dưới dạng source from here.
  5. Sao chép tệp entitlements.xml vào cùng thư mục với địa chỉ HelloWorld.app. (Lưu ý: bạn không để có nó ở đây ... nếu bạn đặt nó ở một nơi khác, chỉ cần điều chỉnh dòng lệnh tôi chỉ cho bạn dưới đây).
  6. Thay đổi thư mục thành thư mục chứa tệp entitlements.xml của bạn.
  7. Fake code-sign with this command:
$ldid -Sentitlements.xml HelloWorld.app/HelloWorld 

Sau thời điểm đó, bạn sẽ cần phải chuyển toàn bộ thư mục HelloWorld.app để cài đặt các ứng dụng trên thiết bị của bạn. Có nhiều cách để làm điều đó, và có vẻ như bạn đã có một cách.

Tôi có toàn bộ quá trình thiết lập này với tập lệnh để làm cho việc này trở nên dễ dàng hơn.

Lưu ý: Tôi không nêu rõ quyền lợi này có đúng là quyền sử dụng cho cuộc gọi BKSDisplayServicesSetScreenBlanked() trên iOS 6. Tôi chưa thử nghiệm điều đó. Tôi biết rằng quyền lợi này hoạt động để cho phép bạn sử dụng SBDimScreen() trên các phiên bản iOS thấp hơn. Tuy nhiên, câu trả lời này chỉ là một mô tả của cách để thêm loại quyền lợi này cho một ứng dụng jailbreak.

+0

Tôi có thể lấy id skype của bạn không? Vì vậy, tôi có thể gửi email cho bạn lần sau tôi có một câu hỏi kiểu jailbreak – zzzzz

+0

Ok Cảm ơn Nate :) – zzzzz

+0

Tôi không thể ký nó bằng lệnh ldid.it nói -bash: -Sentitlements.xml: lệnh không tìm thấy – zzzzz

-1

Các quyền được đặt trong tệp dự án Xcode hoặc được đặt trong tệp quyền lợi mà dự án Xcode chọn.

Look trong các thiết lập dự án trong "Tóm tắt" hoặc "Xây dựng giai đoạn" đối với các thiết lập hoặc tên của các quyền nộp

+2

(-1) câu trả lời này là sai hoặc hoàn toàn không hoàn chỉnh. Quy trình * bình thường * này để thêm các quyền lợi không hoạt động để thêm loại quyền lợi này cho một ứng dụng ** jailbreak **. – Nate

+1

Tôi có thể xác nhận rằng nó không hoạt động cho ứng dụng jailbreak. (iOS 7.0.4) – 0x8BADF00D