1. Nguyên nhân gây nên các sự cố trong hệ thống jailbreak:

Mình nhận thấy đa số các trường hợp hư hỏng hệ thống đều xuất phát từ hai nguyên nhân chính:

  • Thứ nhất: Do người dùng không chịu tìm hiểu kỹ nên trong quá trình sử dụng đã "vô tình" gây ra những sai lệch khiến hệ thống không ổn định hoặc hư hỏng. Nguyên nhân này là "không phòng bệnh".
  • Thứ hai: Cũng giống nguyên nhân thứ nhất. Khi gặp "sự cố", người dùng vẫn không chịu tìm hiểu kỹ, "vội vã" trong việc khắc phục, sửa lỗi nên tiếp tục "vô tình" gây ra những hư hỏng nặng hơn, khiến việc phục hồi, sửa lỗi khó khăn thêm, thậm chí không phục hồi được nữa. Nguyên nhân này là "chữa bệnh không đúng thuốc, hoặc đúng thuốc nhưng chưa dứt hẳn".

Ngoài hai nguyên nhân chính trên thì còn một số nguyên nhân khác như: tình ổn định của một hệ thống jailbreak trên môi trường semi (môi trường bán tháo) không cao, có sự "xung đột" giữa các tweak được cài đặt trên cùng hệ thống. Các vấn đề này thì chỉ dựa vào "kinh nghiệm" tích lũy trong qua trình sử dụng cũng như qua những người đã sử dụng trước mà ta có thể tìm ra phương án để "phòng ngừa" cho phù hợp.

2. Sơ lược về hệ thống Semi Untethered Jailbreak và ứng dụng Cydia:

Một hệ thống jailbreak sẽ bao gồm một hệ thống cấu trúc liên kết bởi các gói phần mềm cơ bản có các chức năng xử lý riêng biệt, hỗ trợ cho nhau và được quản lý thông qua ứng dụng trung tâm là Cydia. Các gói này được nén với định dạng .deb và một trong các gói này hư hỏng cũng có thể dẫn đến sự hư hỏng "dây chuyển" của cả hệ thống.
Ứng dụng Cydia cũng có cấu tạo ở dạng gói deb và nó như là một cầu nối duy nhất để người dùng có thể giao tiếp, cài đặt các thành phần khác trong hệ thống jailbreak. Vì thế khi Cydia hư hỏng, báo lỗi, không chạy được thì ta cũng không thể sử dụng nó để cài đặt thêm các thành phần khác.
Có tất cả 31 gói cơ bản bao gồm cả Cydia được cài đặt vào hệ thống stock iOS trong lần đầu tiên ta chạy app Pangu trên thiết bị theo thứ tự từ dưới lên (gói nào ở dưới thì được cài đặt vào hệ thống trước). Bạn có thể thấy được tất cả các gói này trong mục Đã cài đặt> Gần đây của Cydia (những gói được cài đặt trước ngày 23/07/2016), nếu thiếu một trong những gói này, Cydia và hệ thống có thể hoạt động động không ổn định
 

cydia4.PNG 
cydia3.PNG 
cydia2.PNG 
cydia1.PNG ​

Và mình cũng đã tiến hành đánh số từng gói trên hình ảnh cũng như source của các gói này để tiện cho việc gọi tên và theo dõi thứ tự của chúng:


Gói 01: apt7-key_0.7.25.3-3_iphoneos-arm.deb
Gói 02: bzip2_1.0.5-8_iphoneos-arm.deb 
Gói 03: bash_4.0.44-16_iphoneos-arm.deb 
Gói 04: base_1-4_iphoneos-arm.deb
Gói 05: apt7-lib_0.7.25.3-14_iphoneos-arm.deb 
Gói 06: debianutils_3.3.3ubuntu1-1p_iphoneos-arm.deb 
Gói 07: darwintools_1-5_iphoneos-arm.deb 
Gói 08: cydia-lproj_1.1.12_iphoneos-arm.deb 
Gói 09: coreutils-bin_8.12-9_iphoneos-arm.deb 
Gói 10: firmware-sbin_0-1_iphoneos-arm.deb
Gói 11: gnupg_1.4.8-4_iphoneos-arm.deb 
Gói 12: findutils_4.2.33-7_iphoneos-arm.deb
Gói 13: diffutils_2.8.1-6_iphoneos-arm.deb
Gói 14: dpkg_1.14.25-10_iphoneos-arm.deb
Gói 15: ncurses_5.7-15_iphoneos-arm.deb
Gói 16: lzma_4.32.7-5_iphoneos-arm.deb 
Gói 17: gzip_1.6-7_iphoneos-arm.deb
Gói 18: grep_2.5.4-3_iphoneos-arm.deb 
Gói 19: sed_4.1.5-8_iphoneos-arm.deb 
Gói 20: readline_6.0-8_iphoneos-arm.deb
Gói 21: profile.d_0-2_iphoneos-arm.deb
Gói 22: pam-modules_36.1-5_iphoneos-arm.deb
Gói 23: pam_32.1-4_iphoneos-arm.deb 
Gói 24: org.thebigboss.repo.icons_1.0.deb
Gói 25: tar_1.29-10_iphoneos-arm.deb
Gói 26: system-cmds_433.8-14_iphoneos-arm.deb 
Gói 27: shell-cmds_118-7_iphoneos-arm.deb
Gói 28: com.saurik.patcyh_1.2.0_iphoneos-arm.deb
Gói 29: uikittools_1.1.12_iphoneos-arm.deb
Gói 30: ldid_1:1.2.1_iphoneos-arm.deb
Gói 31: cydia_1.1.27_iphoneos-arm.deb 

Gói 31 (Cydia Installer) được cài đặt sau cùng chính là ứng dụng Cydia version 1.1.27 của Semi Untethered Jailbreak.
Nếu bạn nào bị hư hỏng, hoặc thiếu gói nào có thể click vào link từng gói để tải về hoặc nếu cần cả 31 gói để phục hồi toàn bộ Cydia và hệ thống thì mình cũng đã tải về và đánh số thứ tự trong link này:

https://drive.google.com/open?id=0ByWRS1yJdKNxYzNRbi1CSkduTVU

Bạn cũng có thể tải các gói deb cần thiết hỗ trợ cho tất cả các phiên bản trên server của Saurik qua địa chỉ http://apt.saurik.com/debs/.

31cydiapackages.zip

 DRIVE.GOOGLE.COM



3. Chi tiết cấu tạo các gói deb của hệ thống jailbreak và cách cài đặt:

  • Cấu tạo của gói deb:

Một gói deb là một file nén có nội dung bao gồm các thư mục ,các file sắp xếp theo một cấu trúc nhất định. Ta có thể giải nén nó ra xem cấu trúc các thành phần của nó, ở một số nguồn trong Cydia cũng sẽ cho ta biết chi tiết cấu trúc này trong phần infomation của các gói:
 

phuchoi1.png phuchoi2.png ​


Qua cấu trúc hệ thống tập tin ta có thể biết được vị trí chính xác nội dung của gói được cài đặt bao gồm những thư mục nào, những tập tin nào, và được lưu ở đâu. Như hình trên, gói ứng dụng Cydia sẽ có nội dung chính là thư mục Cydia.app được lưu trong đường dẫn /Applications.

Trên PC ta có thể dùng các tool giải nén như: 7zip, winrar, winzip,... để giải nén nó. Khi giải nén trên PC thường ta sẽ được một file nén khác với định dạng .tar. Tiếp tục giải nén file tar này lần nữa thì sẽ được nội dung của gói deb.

phuchoi3.png phuchoi4.png ​


Trên iOS khi giải nén file deb bằng các trình quản lý file như iFile, Filza File Manager ta sẽ được ngay nội dung của file với chỉ một lần giải nén.
 

phuchoi5.png phuchoi6.png 

Ở đây khi ta giải nén trực tiếp trên iOS nội dung sẽ đầy đủ hơn, cụ thể là ngoài nội dung chính, sẽ có thêm một thư mục DEBIAN dành riêng trình biên dịch của hệ thống jailbreak, phục vụ cho việc đưa và cập nhật nội dung của gói vào cấu trúc của hệ thống, và Cydia. Khi giải nén file deb trên PC sẽ không có thư mục DEBIAN này.

  • Cài đặt gói deb vào hệ thống:

Việc cài đặt các gói deb này thì cũng giống như việc ta giải nén và đưa các nội dung của nó vào đúng vị trí cấu trúc rồi khai báo nó trong các thư viện cần thiết của hệ thống là nó đã có thể hoạt động
Nếu đúng qui trình, để cài đặt được các gói deb vào hệ thống thì trên hệ thống phải có các gói biên dịch và các tool cơ bản mới có thể hiểu được định dạng file và bung nén đưa các thành phần chính của nó vào đúng vị trí cấu trúc hệ thống được qui định sẵn. Cụ thể là trên hệ thống jailbreak thì một số các gói biên dịch và các tool như dpkg, apt, bzip2, BASH,... sẽ đảm nhận công việc này. Nếu các gói và các tool cơ bản này bị thiếu hoặc hư hỏng thì việc cài đặt gói deb theo đúng qui trình sẽ không thực hiện được.

Vậy ở thời điểm ban đầu khi Stock iOS vẫn chưa được jailbreak, chưa có các gói biên dịch này thì 31 gói deb bao gồm cả Cydia được cài đặt vào hệ thống như thế nào?

Để giải thích vấn đề này ta phải nhắc đến bước đầu tiên khi sideload file NvwaStone_1.1.ipa vào hệ thống sẽ có dung lượng hơn 20MB, mặc dù về mặt hiển thị trên màn hình lúc này nó chỉ như là một ứng dụng thứ 3 nhưng bản chất nó vẫn còn là một gói cài đặt bao gồm 31 gói cơ bản và cả trình biên dịch riêng tích hợp sẵn đang nằm đó đợi thực thi. Khi ta chạy nó lần đầu tiên, có nghĩa là ta đã kích hoạt thực thi gói cài đặt đó và nó sẽ tự biên dịch và "bung" 31 gói đó vào hệ thống, sau quá trình cài đặt thành công ta sẽ được app Pangu (lúc này còn khoảng 11MB) như là một ứng dụng thứ 3 có chức năng thâm nhập patch code kernel Apple sau mỗi lần reboot và Cydia cùng các gói cơ bản. Và cũng sau lần chạy đầu tiên đó thì cái trình biên dịch tích hợp trong NvwaStone_1.1.ipa sẽ được "dọn dẹp" cùng một số thành phần "tạm" khác và trao quyền biên dịch cho Cydia với sự hỗ trợ của 31 gói kia.
Như vây khi các gói cơ bản này bị "hư hỏng" ta phải ưu tiên sữa chữa phục hồi các gói này trước mới có thể biên dịch và cài đặt tiếp các gói deb khác.

Việc cài đặt một file deb theo đúng qui trình sẽ khác gì so với việc ta giải nén nó ra và copy từng thành phần của nó vào đúng vị trí cấu trúc hệ thống tập tin như ta đã biết? 

Làm một ví dụ để kiểm chứng, ta cài đặt gói eu.heinelt.ifile_2.2.0-1_iphoneos-arm.deb (Tweak iFile) theo đúng qui trình bằng Cydia, ta sẽ thấy tại đường dẫn /Applications sẽ xuất hiện một thư mục iFile.app, tweak này có đầy đủ thông tin và các thư viện hỗ trợ trong Cydia và các trong các đường dẫn khác. Đồng thời khi cài đặt bằng Cydia cũng sẽ được cài thêm một số gói điều khiển kèm theo để hỗ trợ thêm cho các chức năng của tweak. Sau đó xóa iFile đi, tweak này cũng sẽ được xóa thông tin trong Cydia đồng thời nội dung và các thư viện cũng được xóa theo.
Tiếp theo ta giải nén file deb trên ra, sẽ được nội dung chính là một thư mục iFile.app trong một thư mục Applications trống. Copy thư mục iFile.app này vào đúng đường dẫn /Application trên hệ thống nhưng iFile lúc này sẽ không xuất hiện icon trên màn hình và cũng không chạy được khi vào safari gõ đường dẫn: iFile://. Chỉ khi ta chạy lệnh uicache để reset lại cache UI của hệ thống thì mới xuất hiện và hoạt động được như lúc này sẽ không có các thư viện và không "hiện diện" trong Cydia.
Vấn để ở đây là ngoài nội dung chính, nó còn có các thư viện và phương thức cài đặt riêng được đặt trong thư mục DEBIAN mà chỉ khi giải nén trên iOS mới thấy được. Những thư viện này sẽ được các trình biên dịch của hệ thống jailbreak như dpkg, apt,..."giải mã", thực thi cài đặt, sau đó cập nhật sự "hiện diện" của nó cấu trúc hệ thống (như Base, DynamicLibrary của MobiSubstrate, status của dpkg,...). Như vậy việc cài đặt mới một gói deb theo đúng qui trình sẽ cho kết quả đầy đủ hơn việc copy ngang nội dung của nó vào hệ thống.

Vậy việc copy file bổ sung hoặc copy "đè" để sửa lỗi sẽ được thực hiện khi nào?

Đó là đối với những tweak, những gói khi đã được cài đặt đúng qui trình, đã được định hình, nhận diện trong hệ thống, nếu bị hư hỏng trong quá trình sửa dụng. Lúc này ta có thể giải nén nội dung của source deb gốc ra, copy lại những thành phần hư hỏng, hoặc có thể là copy tất cả đè lên cái cũ cho nhanh.
Ví dụ, khi ta vào nội dung đã được cài đặt của iFile xóa đi một số file (chẳng hạn như các file hình ảnh làm icon) thì iFile sẽ không hoạt động được nữa và có thể bị mất luôn icon trên màn hình nếu respring máy. Lúc này ta chỉ cần tìm trong source deb của nó các hình icon tương ứng chép lại là nó có thể chạy được bình thường. Nhưng nếu các thành phần mất đi của nó là các thư viện, cái mà ta không có được khi giải nén source deb thì buộc phải tìm lại các nội dung này trên một hệ thống khác để chép lại hoặc đơn giản là chạy lại gói deb của nó theo đúng qui trình.

Có nhiều cách để cài đặt một file deb vào hệ thống:

  • Khi ta vào cydia tải và cài đặt một tweak thì cũng có nghĩa là ta đã thực hiện cài đặt file deb.
  • Ta cũng có thể chạy file source deb trực tiếp ngay trên các trình quản lý file (iFile, Filza File Manager).
  • Ta có thể dùng các tool hỗ trợ để cài vào hệ thống thông qua PC (chẳng hạn như Impactor trên Windows, các tool trên MAC...). Nhưng thông thường các tool hỗ trợ trên PC cũng sẽ có nhiều "điều kiện", nhiều "ràng buộc" nên sẽ khó khăn khi thực hiện và thường những tool này lại không hỗ trợ những file deb riêng của hệ thống jailbreak.
  • Ta cũng có thể cài đặt nó bằng "lệnh" gọi các gói biên dịch thông qua các tool hỗ trợ như Terminal, SSH, ... cả trên PC lẫn trực tiếp trên thiết bị.
  • Ngoài ra trong code của Cydia cũng có cơ chế tự kiểm tra và các đặt các file deb có trong thư mục /var/root/Media/Cydia/AutoInstall ở sự kiện load của ứng dụng Cydia.

phuchoi7.png ​

Khi dùng cách này, ta chỉ việc copy những file deb vào đường dẫn /var/root/Media/Cydia/AutoInstall, reboot máy và kích hoạt lại chế độ jailbreak bằng app Pangu, code sẽ tự gọi trình biên dịch chạy cài đặt các file deb cho ta. Trên hệ thống untethered jailbreak thì chỉ cần reboot lại thiết bị khỏi chạy app Pangu.
Chỉ với một lần reboot máy, code sẽ tự cài đặt tất cả các file deb có trong thư mục AutoInstall và sẽ xóa hết các file deb này khi đã thực thi xong. Theo mình đánh giá thì đây là cách cài đặt file deb tối ưu nhất trong việc phục hồi hệ thống bởi nó sẽ cực kì hữu dụng khi ta phải thực hiện cài một số lượng file deb tương đối nhiều (ví dụ cần chạy hết tất cả 31 gói cơ bản bên trên) và quá trình cài đặt cũng được thực hiện trong thời điểm "khởi động" hệ thống sẽ giảm thiểu các phiền phức, xung đột với các gói đang chạy khi bị cài "đè"(cũng giống như cài đặt trong chế độ safe mode vậy), nó cũng sẽ giảm thiểu số lần respring máy cũng như các thao tác khác so với việc cài từng file deb một.

Như vậy, sẽ có nhiều cách nhiều tool để thực hiện việc cài đặt một file deb vào hệ thống jailbreak, nhưng tất cả đều có một điểm chung là đều phải gọi trình biên dịch để biên dịch file deb. Trình biên dịch này khi được gọi sẽ biên dịch, bung nén các file deb và sẽ lại gọi thêm một số tool, một số gói nào đó để hỗ trợ trong quá trình copy file, tạo thư viện, cập nhật base,... Như vậy việc cài đặt thành công hay không sẽ được quyết định bởi sự "sống còn" của các gói cơ bản này.

Nếu như các gói cơ bản này không còn "tồn tại" một chút gì trên hệ thống vậy làm sao mà phục hồi?

Vâng, lúc này thì sự "hư hỏng" của hệ thống jailbreak thực sự là một vấn đề lớn, ta sẽ không có cách nào phục hồi một hệ thống "đã chết hẳn", và nếu ngay cả việc chạy lại tool Pangu trên PC cũng không thể đưa lại các gói cơ bản thì chắc chắn ta sẽ phải "chia tay" với việc jailbreak hệ thống trong trường hợp này.
Cũng rất may mắn rằng các thành phần cơ bản này có "tuổi thọ" khá cao trong hệ thống, ngay cả khi bạn Erase all contents and settings (xóa dòng 2) thì vẫn còn sự tồn tại "dai dẳng" các thành phần của nó trong hệ thống. Ở những trường hợp hư hỏng thông thường thì các thành phần chỉ bị sai lệch về nội dung hoặc bị mất đi một số thành phần nhỏ, việc của ta khi này chỉ cần phục hồi lại các thành phần này, liên kết chúng lại với nhau như cũ thì chúng lại có thể hoạt động trở lại.
Mọi việc tưởng chừng như sẽ rất đơn giản khi chỉ cần đưa lại những thành phần bị hư hỏng, bị mất đi là xong. Nhưng thực tế cho thấy rằng khi xảy ra các sự cố, thì việc đưa dữ liệu vào một thiết bị Apple là cực kỳ khó khăn, ngay cả khi máy đã được jailbreak thì các cách đưa dữ liệu vào phân vùng hệ thống khi hư hỏng gần như "chỉ đếm được trên đầu ngón tay" bởi tất cả các công cụ hỗ trợ lại chịu ảnh hưởng rất lớn trong việc "sống còn" của hệ thống jailbreak và Cydia, chưa kể là có nhiều người dùng thậm chí còn chưa bao giờ cài các tool này mà việc hư hỏng thì lại hay đến "bất ngờ".
Thống kê các trường hợp "lỡ tay" xóa dòng 2 ở trên thiết bị đã jailbreak thì: afc2 thường sẽ không hoạt động được, SSH, terminal thì phức tạp và tiềm ẩn những nguy cơ khi sử dụng nếu không "rành" nên đại đa số sẽ không cài đặt các tool này. Chỉ còn lại iFile và Filza File, có một số người cũng không cài, hoặc có cài nhưng cũng bị hư hỏng không sử dụng được sau khi xóa dòng 2, đặc biệt là khi dùng chung với tweak Stashing for 9.2 -9.3.3 vì tweak này sẽ stash dữ liệu của các tweak khác sang phân vùng user và sẽ bị OS xóa mất đồng thời sự liên kết giữa các thành phần cũng bị phá vỡ, kết quả là các tweak chỉ còn lại icon nhưng không sử dụng được.

4. Các công cụ cần thiết cho việc sửa lỗi và phục hồi Cydia:

Để tiến hành việc phục hồi hệ thống khi gặp sự cố ta cần một số công cụ hỗ trợ như các trình quản lý file thông dụng iFile hoặc Filza File Manager, gói điều khiển Apple File Conduit "2" (afc2) để kết nối với các tool quản lý file trên PC như iTools, iFunbox, SSH, terminal,...Các công cụ này không cần phải có hết tất cả trong một hệ thống, nhưng "tối thiểu" ta buộc phải có một trong số đó và phải còn sử dụng được khi máy được jailbreak lại.
Nói chung không cần thiết phải quan trọng riêng một công cụ nào cả, chỉ cần bằng bất cứ cách gì ta có thể đưa dữ liệu vào phân vùng hệ thống, chỉnh sửa nó, là đã có cơ hội phục hồi lại hệ thống.

  • Trình quản lý file trên hệ thống jailbreak iFile và Filza File Manager:

Đây là hai trình quản lý file thông dụng nhưng mình cũng khá ngạc nhiên khi vẫn có trường hợp cmt rằng không biết cách sử dụng 2 tweak này để chép file và thư mục như thế nào nên chắc hẳn vẫn còn "xa lạ" đối với một số người không có nhu cầu sử dụng. Mình cũng xin nói sơ qua cách sử dụng 2 tweak này thôi, ai muốn tìm hiểu thì có thể cài đặt vào nghiên cứu sau:
 

phuchoi8.png phuchoi9.png 
Giao diện của Filza File Manager sẽ như thế này.​


Ở trên thanh status sẽ có đường dẫn /var, như vậy lúc này ta đang ở trong thư mục var. Khi nhấn vào nút Sửa sẽ hiện lên các chức năng cho phép ta chọn file và thư mục, cùng các chức năng Sao chép (Copy), Di chuyển (Cut), Đổi tên (Rename), Thùng rác (Delete),...Nếu nhấn vào dấu "+" bên góc trái sẽ cho ta tạo thêm thư mục, thêm file. Kết thúc công việc thì chọn Xong bên góc phải.
 

phuchoi10.png phuchoi11.png ​

Khi chọn xong file và thực hiện việc copy hoặc cut ta sẽ di chuyển đến đường dẫn cần paste và nhấn vào chấm "..." ở góc dưới bên trái sẽ hiện lên các chức năng cho phép ta Dán (Paste) file tại đây.
Khi tạo một thư mục mới ta bấm Sửa, chọn dầu "+" rồi đặt tên (ví dụ tạo một thư mục mang tên apt), chọn Xong khi thực hiện xong công việc.

Cơ bản vậy thôi, iFile cũng là tweak có chức năng tương tự chỉ có giao diện khác một chút, các bạn thích dùng tweak nào cũng được.

  • Tool MobileTerminal.ipa:

Khi mà các công cụ trên đều không có hoặc không sử dụng được nữa thì các bạn có thể dùng tool này để thực hiện các thao tác cơ bản như copy, cắt, dán, tạo ... trên phân vùng hệ thống bằng lệnh. Các bạn có thể tham khảo thêm bài viết này:

https://www.reddit.com/r/jailbreak/comments/506ysd/tutorial_how_to_fix_erase_all_content_settings/

Đây là một source deb được download từ server https://cdn.hbang.ws/dl/debs/, nó cũng chỉ là tool MobileTerminal như các tool terminal khác, nhưng cấu trúc hệ thống tập tin của nó cho phép sideload vào hệ thống bằng impactor khi chuyển đổi thành file ipa và sẽ không bị báo lỗi như những gói deb jailbreak khác. Nó có thể chạy được khi hệ thống jailbreak và các tweak đang bị hư hỏng miễn là thiết bị vẫn ở được trong trạng thái jailbreak. Ta cũng phải cần một id Apple xác minh với hệ thống khi sideload nó như khi sideload app Pangu, các bạn có thể dùng lại id cũ lúc xác minh chứng chỉ cho app Pangu khi chứng chỉ này đã được chuyển thành Beijjing.
Mình đã chuyển đổi gói deb này thành file ipa tại link sau:

https://drive.google.com/open?id=0ByWRS1yJdKNxUXgwVll0UGVlb3M

các bạn có thể downloadvề sideload vào hệ thống để dùng.

MobileTerminal.ipa

 DRIVE.GOOGLE.COM



Đây là một tool Terminal nên việc sử dụng của nó chắc chắn phải bằng lệnh rồi. Có thể các bạn sẽ nói là dùng lệnh thì rườm rà, phức tạp quá. Xin thưa là khi đã phải dùng tới nó rồi thì cũng chẳng còn cách nào khác đâu, dù sao để phục vụ cho việc copy, tạo thư mục là chính nên cũng chỉ cần biết qua một số lệnh cơ bản thôi là được rồi. (Có muốn đi sâu hơn thì tớ cũng đâu có rành mấy he he.)

Các lệnh cơ bản để dùng Terminal phục hồi hệ thống:

Ở phần này để tránh nhầm lẫn trong cú pháp nội dung câu lệnh mình sẽ dùng: (space) để ký hiệu khoẳng trắng trong câu lệnh.

  • Nhập id vào dòng đâu tiên: su
  • Password mặc định là: alpine (khi nhập pass, con trỏ trên màn hình sẽ đứng im, không hiển thị kí tự nào hết, kệ nó cứ gõ cho đúng xong enter là được). Không nên đổi pass nếu không rành về terminal và các lệnh.

phuchoi12.png phuchoi13.png 

  • Giao diện nó chỉ đơn giản là một màn hình đen cùng với bàn phím để nhập lệnh.
  • Nhấn phím Done ở trên màn hình, bàn phím sẽ thu nhỏ lại và góc trái bên dưới sẽ có biểu tượng "bung cửa sổ lên". Trong đây sẽ là cài đặt về font chữ hiển thị, kích cỡ chữ, ... nhưng tốt nhất là nên để mặc định, có chăng trên màn hình lớn như dòng Plus hoặc iPad đổ lên thì ta có thể chọn kích cỡ chữ nhỏ nhất để được hàng chữ dài dễ nhìn hơn, mấy cái khác thì mặc định là tốt nhất.
  • Phím Tab trên màn hình có chức năng tự động hoàn thiện nhanh câu lệnh và tên các thư mục của như tập tin nếu có trong cấu trúc đường dẫn hiện hành. Ví dụ như đối với câu lệnh dài như:

cd /Library/MobileSubstrate/DynamicLibraries

Ta có thể kết hợp bấm Tab khi gõ:
cd /Li(bấm Tab)/Mo(bấm Tab)/Dy(bấm Tab)
Mỗi lần bấm Tab nó sẽ tự hoàn thiện đúng tên thư mục (nếu có): /Li(bấm Tab) = /Library/Mo(bấm Tab) = /MobileSubstrate,... tới lần bấm Tab cuối cùng thì câu lệnh xuất hiện trên màn hình sẽ đúng như trên: cd /Library/MobileSubstrate/DynamicLibraries

Ta có thể dùng kèm với Tab để nhanh hơn và chính xác hơn. Để kiểm tra sự tồn tại của một thư mục, nếu bấm Tab mà tên thư mục hiện ra đầy đủ thì có nghĩa là có thư mục có tồn tại không thì ngược lại.​

Lệnh di chuyển tới đường dẫn nào đócd [Đường dẫn]:

cd (space) /var/mobile/Media/Books :dời con trỏ tới Books trong đường dẫn.
cd (space) .. :dời con trỏ về trước thư mục hiện hành một cấp.
cd (space) / :dời con trỏ về thư mục gốc.​


Lệnh xem nội dung có trong một thư mục: ls

ls :Màn hình sẽ hiện nội dung có trong thư mục đang hiện hành.

ls (space) -1 (space) /Application :Hiện nội dung có trong thư mục /Application theo dạng danh sách list.​


Lệnh copy: cp [Đường dẫn 1] [Đường dẫn 2]

cp (space) /var/mobile/Media/Books/lib (space) /var :copy thư mục lib trong thư mục Books vào trong thư mục var. Lệnh này sẽ không copy đè nếu trong /var đã có thư mục lib

cp (space) -R (space) /var/mobile/Media/Books/lib (space) /var :copy thư mục lib trong thư mục Books vào trong thư mục var. Lệnh này sẽ copy đè lên nếu trong /var đã có thư mục lib

cp (space) -f (space) /var/mobile/Media/Books/MobileSubstrate/*.* (space) /Library/MobileSubstrate :copy tất cả những gì của thư mục MobileSubstrate, nằm trong thư mục Books vào trong thư mục MobileSustrate nằm trong thư mục Library

Lệnh di chuyển (Cut) một thư mục, tập tin: mv [Đường dẫn 1] [Đường dẫn 2]

mv (space) /var/mobile/Media/Books/iFile.deb (space) /var/root/Media/Cydia/AutoInstall :di chuyển file iFile.deb từ đường dẫn /var/mobile/Media/Books sang đường dẫn /var/root/Media/Cydia/AutoInstall

Lệnh đổi tên một file, một thư mục: mv [Đường dẫn 1]/tên cũ [Đường dẫn 1]/tên mới

Lệnh đổi tên này thực chất là lệnh di chuyển (Cut) file, thư mục rồi paste chúng vào đúng vị trí cũ với một tên mới.
mv (space) /var/mobile/Media/Books/iFilecu.deb (space) /var/mobile/Media/Books/iFilemoi.deb

Lệnh tạo thư mục: mkdir [Đường dẫn]

mkdir (space) /var/root/Media/Cydia :tạo thư mục tên Cydia trong đường dẫn /var/root/Media

Lệnh xóa một thư mục rỗng: rmdir [Đường dẫn]

Lệnh này chỉ được thực hiện khi thư mục muốn xóa là một thư mục rỗng, không chứa gì bên trong. Nếu thư mục vẫn còn có thư mục con hoặc các file bên trong màn hình terminal sẽ thông báo không xóa được

Lệnh xóa một thư mục, hay một tập tin bất kỳ: rm -R [Đường dẫn]

rm (space) -R (space) /Library/Wallpaper :xóa thư mục Wallpaper và tất cả nội dung bên trong nó.​


Với các lệnh cơ bản trên cũng đủ để ta thể thực hiện các thao tác chép file, tạo thư mục bị thiếu trên phân vùng hệ thống.
Có một điều lưu ý là bản MobiTerminal.ipa này dù chỉ chạy khi máy ở trạng thái jailbreak nhưng được lưu trên phân vùng user, nó sẽ không thực hiện được các lệnh "chuyên sâu", và cũng không có toàn quyền chỉnh sửa dữ liệu trên một số vùng trong hệ thống như các tool terminal hoạt động trên phân vùng system, nên chỉ dùng nó để "chữa cháy" trong trường hợp không có các tool khác.

Một số điều lưu ý khi sửa dụng Terminal:

  • Khi gõ lệnh, con trỏ tự nhiên xuống dòng hoặc hiển thị ký tự không như ý thì bạn nên xem lại ngôn ngữ bàn phím có phải English chưa, nếu là Tiếng Việt thì sẽ bị sai lệch khi gõ.
  • Khi các lệnh dài, Terminal sẽ xuống dòng thứ hai, nhưng nếu quá dòng thứ hai nó sẽ không xuống dòng thứ 3 mà lại quay lại đầu dòng thứ hai ghi "chồng" lên nội dung đã gõ. Những lúc này bạn cứ kệ nó, tiếp tục gõ lệnh đúng cú pháp đúng ký tự, nên dùng chức năng Tab để hoàn thành đường dẫn nhanh hơn và đảm bảo độ chính xác hơn so với việc gõ tay từ ký tự một.
  • Mặc định khi mới chạy con trỏ của bạn sẽ là mobile$, khi ở chế độ này bạn chỉ có quyền của một user, các lệnh cơ bản sẽ vẫn thực hiện được nhưng đối với các lệnh liên quan đến việc chỉnh sửa dữ liệu trong phân vùng system đôi khi sẽ không thực hiện được vì chế độ này không có quyền thay đổi hệ thống. Bạn phải nhập username: su, pass: alpine, khi con trỏ chuyển sang root# thì lúc đó bạn mới có quyền thay đổi hệ thống. Trong quá trình sử dụng nếu bạn dùng lệnh exit để kết thúc, con trỏ sẽ chuyển về chế độ mobile$, nếu cần chỉnh sửa lại hệ thống bạn phải đăng nhập username và pass lại lần nữa.