coolstar / electra

Electra iOS 11.0 - 11.1.2 jailbreak toolkit based on async_awake
GNU General Public License v3.0
655 stars 163 forks source link

Electra setting up the JB as 32bit and give me Cy+arm64 dependence error #242

Open CodeyMoore opened 6 years ago

CodeyMoore commented 6 years ago

AOU on reddit helped me fix this issue but Im not sure how though. AOU said that Electra was setting up the jailbreak as 32bit (iPod 6th gen's are 64bit)

This issue as to be fixed after rejailbreaking

AOU's reddit - https://www.reddit.com/user/AOU

Edit: I think I fixed it I added the following lines to status located in "/var/lib/dpkg"

" Package: cy+cpu.arm64 Essential: yes Status: install ok installed Priority: required Section: System Installed-Size: 0 Maintainer: Jay Freeman (saurik) saurik@saurik.com Architecture: iphoneos-arm Version: 11.1.2 Description: virtual CPU dependency Tag: role::cydia "

Edit 2: Those lines are there any more 🤔🤔. I don't know Cydia is working now, I'm not complaining

Edit 3: I have to add those lines every time I rejailbreak

ghost commented 6 years ago

How were you able to edit those lines w/o something like Filza? Cydia says I'm missing the package outright.

CodeyMoore commented 6 years ago

sshing

bkell8 commented 5 years ago

I finally figured out how to fix this and not have to manually enter it everytime you jailbreak. There is a script called firmware.sh that automatically builds this dependency file everytime you jailbreak by pulling your iPhone architecture. However, I found that the script is outdated/or something got updated elsewhere causing the script to use an old command to pull your architecture info from your phone.

First off, the firmware.sh script is located in /usr/libexec/cydia/firmware.sh

**I have been experimenting with a variety of jailbreaks so I actually found the firmware.sh script in 3 different locations... /usr/libexec/cydia/firmware.sh (Used by original Cydia) /usr/libexec/cydia2/firmware.sh (Used by Cydia from Chimera) /usr/libexec/zebra/firmware.sh (Used by Zebra)

Use Filza to open this file with Text Editor, or use your choice of CLI text editor (nano, vi, etc) if you choose not to use Filza.

About 5 lines from the top you will see..

cpu=$(uname -p)

Change this to:

cpu=$(arch)

Save this change. I updated all 3 locations with this change just to be safe but you might only have it in one location.

Now you can either run this script in Filza (change it back to open with Default (not text editor)) and then just click on it (firmware.sh) to run it. Or from bash CLI just enter the path to filename to run it.

You can also test this first by opening a terminal (NewTerm2, mTerminal, etc) and running the old command 'uname -p' which will result in “arm” (which is the architecture for 32 bit devices)

if you enter the command 'arch' it will result in “arm64” (which is the correct architecture for 64 bit devices).

Basically the script was pulling architecture using a command that only pulls 32 bit results, so as the remainder of the script ran it would build the incorrect dependency file. Using “arch” it should now build the cy+cpu.arm64 file as expected instead of just cy+cpu.arm

Confirmed this works everytime I reboot and re-jailbreak as well.