Cydia impactor cannot unzip not a zip archive lỗi năm 2024

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

If you’re facing this error, then you’ve come to the right place as we will show you how to fix this issue in a matter of a few minutes.

Step 1: The first step is to download all the necessary files and tools for fixing this issue.

  • Download 3uTools – allows you to navigate and edit the iOS file system.
  • Next, download the necessary “Cydia Fix” files and unzip it.
  • Finally, you need the Cydia Impactor tool which can be downloaded from cydiaimpactor.com.

Step 2: Once you have all the necessary files and tools, you are ready to start. Connect your jailbroken device to your computer via USB cable and then launch 3uTools.

Step 3: Click Files on the sidebar of 3uTools, go to FileSystem(User), open Books as shown below.

Cydia impactor cannot unzip not a zip archive lỗi năm 2024

Step 4: Click "Import" -> "Select Folder" and select “lib”folder from the“Cydia Fix”folder which you downloaded earlier.

Cydia impactor cannot unzip not a zip archive lỗi năm 2024

Cydia impactor cannot unzip not a zip archive lỗi năm 2024

Step 5: Next, launch Cydia Impactor and make sure that it has detected your device as shown below.

Cydia impactor cannot unzip not a zip archive lỗi năm 2024

Step 6: Now drag the MobileTerminal.ipa file from the “Cydia Fix” folder and drop it onto Cydia Impactor.

Cydia impactor cannot unzip not a zip archive lỗi năm 2024

Step 7: Cydia Impactor will ask for your Apple ID and password. This information is only sent to Apple to generate the certificates required to sign and install the MobileTerminal IPA file onto your jailbroken device. Enter the required information and Cydia Impactor will start to install the IPA file.

Step 8: After the installation completes, you should see the Mobile Terminal app on your device’s Home screen. Go to Settings -> General -> Profiles & Device Management (for some users, it may be called “Profiles” or “Device Management”).

Step 9: Open the profile labelled with your Apple ID and then press the Trust button.

Step 10: Now go back to the Home screen and launch the Mobile Terminal app (make sure that your device is in jailbroken state).

Step 11: The command line interface will be displayed with a black background. Type in the following commands, pressing Enter/Return after each line:

su alpine cp -R /var/mobile/Media/Books/lib /var mkdir /var/log/apt

Step 12: Once you’ve entered all the commands, reboot your device.

Put your device back into jailbreak state and then launch Cydia. The error “Could Not Open File /var/lib/dpkg/status” should no longer appear and you can successfully proceed with installing new tweaks on your device.

Thanks for visiting. For more latest updates or supports, follow us on Facebook or Twitter .

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/.

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:

Cydia impactor cannot unzip not a zip archive lỗi năm 2024
Cydia impactor cannot unzip not a zip archive lỗi năm 2024

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.

Cydia impactor cannot unzip not a zip archive lỗi năm 2024
Cydia impactor cannot unzip not a zip archive lỗi năm 2024

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.

Cydia impactor cannot unzip not a zip archive lỗi năm 2024
Cydia impactor cannot unzip not a zip archive lỗi năm 2024

Ở đâ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.

Cydia impactor cannot unzip not a zip archive lỗi năm 2024

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:

Cydia impactor cannot unzip not a zip archive lỗi năm 2024
Cydia impactor cannot unzip not a zip archive lỗi năm 2024
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.

Cydia impactor cannot unzip not a zip archive lỗi năm 2024
Cydia impactor cannot unzip not a zip archive lỗi năm 2024

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:

Đâ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:

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

Đâ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.

Cydia impactor cannot unzip not a zip archive lỗi năm 2024
Cydia impactor cannot unzip not a zip archive lỗi năm 2024

  • 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.​