Trong quá trình sử dụng và jailbreak máy (cụ thể là iPhone), đặc biệt là khi tool jailbreak đã quay trở lại trên iphone ở các bản iOS từ 9.2 đến 9.3.3 trong thời gian gần đây, hoạt động trong môi trường semi (bán tháo) thì mình cũng có khá nhiều "vấn đề" thắc mắc. Nhất là khi Apple vừa mới khóa sign 9.3.2 và 9.3.3 thì việc "tích góp" chia sẻ các "kinh nghiệm" là việc làm cần thiết cho cả người đã và chuẩn bị jailbreak máy để hạn chế bớt một số lỗi. Qua quá trình tìm hiểu cũng như tham khảo những kinh nghiệm của người "đi trước" mình có tổng hợp được một số giải đáp cho các thắc mắc đó nhưng cũng chỉ là nhận định của riêng cá nhân nên mình xin post lên cho anh em tham khảo và góp ý thêm.
-------------------------------------------------------------------------------------
Câu hỏi:
Nói chung đó cũng chỉ là các thuật ngữ của "dân trong ngành" nói chuyện với nhau nên cũng khó mà dịch sát nghĩa của nó theo tiếng Việt, có điều để hiểu cơ bản về nó thì xin giải thích dễ hiểu là như thế này.
Câu hỏi:
-------------------------------------------------------------------------------------
Câu hỏi:
Semi-untetherd jailbreak là gi? Rồi lại còn jailbreak untethered, jailbreak tethered là gì nữa, sao cứ rối tung lên hết cả? Và tool mới ra mắt là loại nào?
Giải đáp:
Nói chung đó cũng chỉ là các thuật ngữ của "dân trong ngành" nói chuyện với nhau nên cũng khó mà dịch sát nghĩa của nó theo tiếng Việt, có điều để hiểu cơ bản về nó thì xin giải thích dễ hiểu là như thế này.
- Tethered Jailbreak : là để chỉ các phương thức jailbreak thiết bị chỉ ở trạng thái tạm thời với sự hỗ trợ can thiệp vào kernel "độc quyền" của Apple bởi một công cụ jailbreak (ví dụ như pc chẳng hạn) và trạng thái này chỉ tồn tại trong một "phiên" hoạt động của thiết bị. Các phương thức này chưa đủ "mạnh" để có thể "tự" can thiệp vào kernel của Apple lần nữa khi thiết bị được tắt nguồn, khởi động lại lần tiếp theo. Kết quả là nếu không có sự trợ giúp của các công cụ jailbreak lần nữa thì thiết bị sẽ không tự khởi động được và "treo táo". Thường các phương thức này được dùng rất "đại trà" trong phòng thí nghiệm.
- Semi-tethered Jaibreak: nhận thấy được sự "lợi hại" của Tethered Jailbreak nên Semi-tethered ra đời để hỗ trợ cho việc khởi động lại thiết bị khi được jailbreak bằng phương thức tethered nhưng lúc đó thiết bị sẽ bị mất trạng thái jailbroken và trở lại là một thiết bị "chính chủ" của Apple. Nếu anh nào muốn "tước quyền" của Apple lần nữa thì lại phải cắm vào pc làm lại quá trình tethered jailbreaking từ đầu.
- Untethered Jailbreak: là các phương thức jailbreak chỉ cần các công cụ jailbreak can thiệp vào kernel chỉ một lần duy nhất. Nó có thể tự giải mã và chạy lại code kernel trong các lần khởi động tiếp theo của thiết bị nên trạng thái jailbreak có thể theo xuyên suốt với hệ thống gốc nên các thiết bị jailbreak bởi phương thức này sẽ hoạt động "khá" ổn định ít lỗi hơn các phương thức khác.
- Semi-Untethered Jailbreak: Với sự "kháng cự kiên cường" của Apple nên đôi khi các phương thức jailbreak không thể tấn công và chiếm lĩnh hoàn toàn kernel được. Vậy khi mà một anh không chống cự hoàn toàn được, một anh thì không tấn công hoàn toàn được, thôi thì "bắt tay" sống chung với nhau cho đỡ sức đầu mẻ trán. Thế là anh stock và anh jailbreak sống chung với nhau trong một môi trường semi-bán tháo, khi nào khởi động lại thì trao quyền cho anh stock, khi nào được kích hoạt thì anh jailbreak chiếm quyền và thiết bị ở phương thức này sẽ tự khởi động, tự jailbreak mà không cần một sự trợ giúp nào của "anh Win và anh Mac" nữa. Tool mới ra mắt gần đây chính là dùng phương thức này, nhưng có sự giới hạn là chỉ dùng cho thiết bị hỗ trợ nền tảng 64 bit và chỉ hỗ trợ cho iOS từ 9.2 đến 9.3.3 mà thôi.
Câu hỏi:
Tại sao tôi jailbreak máy bằng tool English có tích vào tùy chọn gia hạn chứng chỉ rồi mà vào một ngày "đẹp trời" nó lại bắt tôi xác minh lại? Và cũng tương tự như thế cũng có trường hợp không xác minh được luôn?
Cái này thì có nhiều vấn đề có thể liên quan. Vấn đề quên tích thì không nói nhé. Vấn đề quan trọng nhất và cũng có thể trả lời cho bất cứ giải đáp nào là phương thức Semi-Untethered Jailbreak thì không ổn định bằng Untethered Jailbreak và đươg nhiên không ổn định thì sẽ vẫn còn một số bug chưa được các "chuyên gia" phát hiện.
Các vấn đề khác có liên quan:
- File hosts: tool English dùng cách thức "đánh lừa" hệ thống trong việc xác minh chứng chỉ bằng cách ngăn chặn hệ thống kết nối trực tiếp tới server Apple vì thế trong file host sẽ có dòng text 127.0.0.1 ocsp.apple.com. Vì một lý do nào đó mà nội dung của dòng text này có thể bị thay đổi hoặc chính file hosts này bị lỗi, bị xóa mất (ví dụ như trong quá trình fix lỗi máy lock, dùng các cách, các tweak để chặn quản cáo, chặn cập nhật, vì "táy máy" sửa, xóa như mình chẳng hạn ... ) sẽ bị mất xác minh app Pangu, các bạn nhớ kiểm tra lại. Mà thường gặp trường hợp không cho xác minh thì chạy lại tool thôi chứ làm được gì đâu mà kiểm tra.
- Cài đặt Profile để ngăn auto update: việc cài đặt hoặc xóa các profile như vậy trên thiết bị cũng có thể gây ảnh hưởng đến cơ cấu xác minh và chặn cập nhật có sẵn của tool jailbreak, cái này thì cũng nhiều lần bị nên đoán vậy. Bản thân khi chạy tool để cài app Pangu từ pc sang iphone thì mặc định sau khi khởi động lại máy cho dù là chưa jailbreak máy cũng sẽ không check và cập nhật OS qua OTA được rồi nên khỏi chặn chi cho mất công. Ở đây cũng xin nói thêm là cài app pangu bằng pc xong khởi động lại máy thì nó mới chặn cập nhật nhé chứ chưa khởi động lại thì nó vẫn download về như thường (trên iOS thường các thay đổi chỉ khi reprisng hoặc reboot lại hệ thống thì các thay đổi đó mới được "hiểu" và thực thi), và vì gói cài đặt cập nhật bản 9.3.4 ở các phiên bản iOS gần nó, đặc biệt là ở 9.3.3 có dung lượng khá nhỏ (khoảng gần 30MB) khi cắm cáp với tốc độ mạng nhanh nó tải nhanh lắm sẽ dễ bị dính thông báo ở mục Cài đặt nên tốt nhất khi cắm cáp vào itunes thì bật chế độ Máy bay lên và tắt đi khi rút cáp ra để xác minh ứng dụng.
- Thay đổi tên của thiết bị: vấn đề này thì hơi "nhạy cảm" nên cũng không chắc lắm, nhưng nhiều lần bị để ý thì thấy thế. Trong bước cài đặt app Pangu bằng pc khi cắm vào pc nếu thiết bị tắt màn hình, ở màn hình khóa, hoặc đang chạy một màn hình của ứng dụng nào đó trên màn hình thì sẽ khó thấy thông báo "Tin cậy máy tính này", lúc đó tool Impactor trên máy tính sẽ chỉ hiện thị dấu chấm hỏi (cũng có thể để một lúc sau thì nó hiện lại tên thiết bị, nhưng lúc này ta chưa bấm tin cậy). Tốt nhất là nên mở màn hình thiết bị lên, cắm vào pc xem kỹ nó có báo gì không rồi mới mở Cydia Impactor lên.
Hoặc khi jailbreak thiết bị là một tên khác, nhưng trong quá trình sử dụng thì ta lại vào Cài đặt chung => phần Giới thiệu để đổi tên thiết bị. Những việc trên cũng có thể làm cho máy bắt xác minh lại app Pangu khi khởi động lại thiết bị, nhưng trường hợp này thì chỉ cần bấm xác minh lại là ok.
-------------------------------------------------------------------------------------
Câu hỏi:
Tại sao tôi jailbreak máy xong thì máy xuất hiện thông báo cảnh báo "Dung lượng sắp đầy" hoặc cài thêm tweak trong Cydia thì báo lỗi màu đỏ buffer_write(fd) (8, ret=-1)?
Giải đáp:
Vấn đề này để nói rõ thì mình có một bài viết về nó, các bạn có thể tham khảo thêm:
https://tinhte.vn/threads/van-de-ve-su-dung-bo-nho-thiet-bi-storage-cua-cydia-semi-untethered-jailbreak.2634502/
Còn nếu "ngại" đọc, không thích dài dòng thì làm như sau không cần thắc mắc:
- Cài Cydia Substrate, ai chưa cài thì cài, ai đang có ý định jailbreak máy thì cài đầu tiên ngay sau khi jb.
- Cài Stashing for iOS 9.2-9.3.3.
- Dùng trình quản lý file (iFile hoặc Filza File Manager tốt nhất là dùng itools trên PC để còn lưu trữ lại) truy cập vào các đường dẫn Library/Wallpaper/iPhone và /Library/Wallpaper/Motion/iPhone cut hết các file trong đây, giữ lại file hình nền mặc định đang làm hình nền hiện hành trong hệ thống (nhớ là chỉ cut các file không đụng gì tới thư mục nhé, giữ nguyên cấu trúc của thư mục) qua lưu trữ bên pc (lưu trữ sao tùy các bạn miễn là khi cần khôi phục lại thì có thể chép lại đúng vị trí ban đầu là được). Vào /Library/Ringtones cut hết các file giữ lại nhạc chuông mặc định (Openning.m4r).
Câu hỏi:
Quảng cáo
Tại sao tôi jailbreak xong, dùng được một thời gian máy tự nhiên mất jailbreak? Hoặc máy hay tự reboot lại, nhất là khi để "nghỉ" trong thời gian dài, sạc qua đêm?
Giải đáp:
Máy tự mất jailbreak có nhiều trường hợp, trong đó mất jailbreak xong không jaibreak lại được nữa thì trường hợp này vẫn chỉ có một câu trả lời quen thuộc là "chưa ổn định", các tweak xung đột nhau, xung đột hệ thống gây hư hỏng jailbreak...Cái này qua các cmt thấy cũng nhiều trường hợp bị với tool China, jailbreak bằng tool mới ở các phiên bản iOS thấp hơn 9.3.3. Trường hợp này chỉ còn cách chạy lại jailbreak, không được thì phải tìm hiểu các phương án sửa lỗi khác.
Nếu máy tự mất jailbreak và jailbreak lại được, cydia và các tweak chạy bình thường thì có thể là do máy đã tự động reboot. Các bạn vào Cài đặt > Quyền riêng tư > Chuẩn đoán & sử dụng > Chuẩn đoán & dữ liệu sử dụng, kiểm tra các log trong đây, nếu có log mang tên SystemMemoryReset-XXX-XX-XX... thì có nghĩa là máy bạn đã tự reboot lại máy để làm "sạch" RAM. Nếu mở log đó vào xem thì nó có thể chỉ ra chi tiết dung lượng làm "tràn" RAM so với dung lượng được mặc định của hệ thống tại dòng "eventReason": "System Memorry exceeded limit: XXXMB vs XXXMB."
- Bạn có thể khắc phục tình trạng này bằng cách add source: codyqx4.github.io/cydia/ vào cydia rồi tải tweak iOS 9 Reboot Fix về cài đặt để nó tự fix lại tham số UserHighWaterMark của hệ thống. Bạn cũng có thể tự chỉnh thông số này "thủ công" bằng cách dùng trình quản lý file vào đường dẫn /System/Library/LaunchDaemons/com.apple.jetsamproperties.NXX.plist (với XX là con số khác nhau tùy thuộc vào phiên bản của thiết bị). Nhấn vào file đó => Root => Version4 => System => Overide => Global=>UserHighWaterMark, tăng giá trị mặc định lên nhưng phải thấp hơn hoặc bằng dung lượng RAM của thiết bị (ví dụ ip6s ram 2GB bạn có thể tăng lên thành 1024 và không được tăng quá 2048). Làm tương tự với file /System/Library/LaunchDaemons/com.apple.jetsamproperties.NXXm.plist.
- Nếu dùng tweak iOS 9 Reboot Fix thì nó sẽ tự tăng lên giá max của RAM nhưng khi xóa nó thì nó sẽ trả về 225. Ví dụ trên iphone 6S plus mặc định UserHighWaterMark là 500, dùng tweak trên sẽ tự tăng lên max 2048 luôn, và nếu xóa thì nó lại chuyển về thành 225. Vì thế mình chọn cách sửa thủ công, và chỉ tăng lên phân nửa số RAM thôi, đỡ phải add nguồn rồi cài thêm tweak cùng các gói điều khiển hỗ trợ kèm theo.
- Nhưng cái giải pháp chỉnh UserHighWaterMark là can thiệp vào trực tiếp vào các phân vùng nhớ của RAM nên chỉ nếu ra cho các bạn tham khảo chứ không hể đảm bảo gì ở đây về chất lượng phần cứng cũng như phần mềm nhé.
Như vậy đối với những máy đã jailbreak ta nên "giảm bớt" các tác vụ chạy ngầm bằng cách tắt bớt những app, những tweak không cần thiết ở background, lâu lâu cũng nên reboot để làm "sạch" máy. Đối với việc cắm sạc qua đêm, thì thiết bị Apple cũng có khả năng tự thực hiện một số "tác vụ" khi ở trạng thái rảnh, khi máy được cắm cáp, đầy đủ năng lượng và kết nối mạng, chẳng hạn như đồng bộ cái gì đó, check và tải cập nhật OS (nên nhớ là cơ chế ngăn cập nhật của jailbreak chỉ là "đánh lạc hướng" hệ thống thôi chứ chưa chắc là diệt hẳn tác vụ đó nên nếu kiểm tra trong phần Chuẩn đoán & Sử dụng mà thấy có cái log OTAupdatexxx gì đó thì có thể là nó vẫn thực hiện khi được cắm cáp. Còn tại sao lại có cái log đó khi đã bị ngăn chặn rồi thì như mình cũng đã có nêu ở phần trên, ở cái thời điểm "nhạy cảm", cái lúc mà máy chưa jailbreak cắm cáp vào pc để chạy tool đó.)... Tốt nhất là nên để "chế độ máy bay" khi cắm sạc qua đêm để ngắt hết các kết nối mạng giảm tải các tác vụ ngầm. Đáng tiếc là cái vụ auto reboot khi qua đêm không thường xuyên và khó kiểm soát chứ không thôi nó cũng là một "tính năng" hay đối với mình, vì buổi sáng khi ngủ dậy mình cũng hay reboot lại máy một lần.