2011-08-18 28 views
9

Tôi có một số câu hỏi về cách phát triển các chỉnh sửa nền di động.
Trước hết, làm thế nào để bạn tạo ra chúng?Phát triển các chỉnh sửa nền tảng di động

Bạn có phải sử dụng XCode không?

Loại tệp nào là cần thiết và bạn đặt mã của mình ở đâu?

Bạn làm cách nào để đưa vào ứng dụng?

Ví dụ: nếu tôi muốn thay đổi nội dung nào đó trong ứng dụng Tin nhắn, làm cách nào tôi có thể lập trình để móc vào Messages.app?

Tôi khá quen thuộc với việc phát triển các ứng dụng thông thường cho cửa hàng ứng dụng và tôi rất quan tâm đến chất nền di động. Tôi thực sự muốn biết làm thế nào để làm điều đó và bắt đầu từ đâu. Cảm ơn!

Trả lời

12

By far, the easiest way to develop MS tweaks is to use Theos

Thực hiện theo các hướng dẫn được đưa vào liên kết ở trên để cài đặt theos, điều hướng đến thư mục mà bạn muốn để lưu trữ các dự án trong và chạy $THEOS/bin/nic.pl để tạo ra một khuôn mẫu để tinh chỉnh của bạn.

Tệp Tweak.xm được tạo là nơi bạn đặt mã của mình. Để xây dựng dự án, chỉ cần điều hướng đến thư mục dự án trong Terminal và chạy make. Nếu có dpkg trên hệ thống của bạn, bạn có thể đóng gói và cài đặt dự án một cách dễ dàng. Hãy chắc chắn rằng OpenSSH được cài đặt trên iDevice của bạn và thêm dòng này vào makefile của dự án của bạn:

THEOS_DEVICE_IP = [INSERTDEVICESIPHERE] 

Sau đó chạy make package install để xây dựng dự án của bạn, gói nó trong một .deb, chuyển nó qua điện thoại và cài đặt nó.

Mã thực sự nằm trong tệp Tweak.xm là mục tiêu-C với ngôn ngữ đơn giản hóa các tác vụ Mobile Substrate được gọi là Logos, được giải thích ở đây: http://iphonedevwiki.net/index.php/Logos. Nói chung mặc dù, các mã sau định dạng này:

%hook classname //declares the class from your application you're going to override 

-(void)functionyouwanttooveride { 

    dosomethingnew(); //put all your new code for the method here 
    return %orig;  //this calls the original definition of the method and returns the result 
} 
%end //end hooking classname 

Để tìm hiểu những gì các lớp học và phương pháp bạn cần phải ghi đè để làm bất cứ điều gì bạn muốn làm, cài đặt class-dump từ cydia, ssh vào thiết bị của bạn và chạy class-dump -H path/to/your/binary -o /path/where/you/want/your/classheaders. Sau đó, bạn chỉ cần xem qua các tiêu đề kết quả để tìm các lớp và các phương thức có tên có vẻ liên quan đến những gì bạn đang làm và thử nghiệm với chúng.

Chúc may mắn!

+0

Cảm ơn bạn! Nhưng làm thế nào tôi có thể tìm ra bất kỳ 'functionyouwanttooverride'? Làm thế nào tôi có thể lấy mã ban đầu cho hàm, để tôi có thể sửa đổi nó? – JonasG

+3

Không phải lo lắng! Đó là một chút khó khăn, bạn không có mã nguồn để bạn không bao giờ có thể thấy được việc thực hiện bất kỳ chức năng nào, vì vậy phải mất rất nhiều phỏng đoán. Nếu bạn cài đặt gói "syslogd to/var/log/syslog" từ cydia thì nếu bạn có thể sử dụng '% log' trong mã của bạn và nó sẽ ghi vào syslog (nằm tại/var/log/syslog) mà phương thức đã có được gọi, và ghi lại những gì các đối số được gọi với để cho bạn một ý tưởng tốt hơn về những gì đang xảy ra. Cũng cài đặt gdb từ cydia và bạn có thể thiết lập các điểm ngắt trên các phương thức thú vị để tìm hiểu điều gì đang xảy ra. Đó là khó khăn, chỉ cần tiếp tục thử nghiệm! – stonesam92

+2

Cũng cần lưu ý rằng, khi viết cho syslog được kích hoạt, rất nhiều quá trình khác cũng sẽ ghi vào nó và nó lấp đầy khá nhanh và có thể chiếm một chút không gian, vì vậy bạn có thể xóa nó ngay bây giờ và sau đó hoặc tắt ghi nhật ký khi bạn không cần nó, bạn có thể xem thêm về điều đó tại [theiphonewiki] (http://theiphonewiki.com/wiki/index.php?title=System_Log) – stonesam92

Các vấn đề liên quan