Skip to content

Various project, structure, UI and post-installation changes#289

Closed
mologie wants to merge 38 commits intokpwn:masterfrom
mologie:patch/project-structure
Closed

Various project, structure, UI and post-installation changes#289
mologie wants to merge 38 commits intokpwn:masterfrom
mologie:patch/project-structure

Conversation

@mologie
Copy link
Contributor

@mologie mologie commented Jan 30, 2017

Hey, I've been maintaining a slightly customized version of yalu102 over at https://github.com/mologie/yalu102 for the past few days and kept it in sync with your master branch. I think that the audience of yours can benefit of those patches and am submitting them here - merge/cherrypick at will, or ignore it entirely if the change set is too large. The actual exploitation phase remains untouched.

  • Adds a toggle for remote SSH access
  • Pulls in Automatically find IOKit #147
  • Factors tfp0 exploit out into a separate class, making the VC more designer friendly
  • Drops offsets.c/devicesupport.m in favour of an external Kernels.plist file
  • Moves code signing configuration to an external file (yalu.xcconfig), which makes it more git-friendly
  • Don't make the path to /private/var/mobile/Library/Preferences world-writable (I'll gladly revert this one if there is a sane reason to do this. So far, everything works nicely without the change.)
  • Enables ARC and makes the main view controller compatible
  • Significantly cuts down on the amount of warning noise in the tfp0 patch and jailbreak.m
  • Refactors the post-jailbreak FS modification part to fix various permission/owner/group issues and reduce it in length

mologie and others added 30 commits January 28, 2017 14:51
Remove IOKit.tbd and use the one shipped in the iOS SDK instead; move bootstrap files to Resources directory; move code signing settings to separate Xcode config file for the sake of keeping git diffs clean.
This avoids clashes if any iOS library should depend on quirks of the iOS libkern headers or includes them directly. However, OSTypes.h is missing from the iOS SDK. The rather short file from the macOS SDK is compatible.
# Conflicts:
#	yalu102/jailbreak.m
# Conflicts:
#	yalu102.xcodeproj/project.pbxproj
#	yalu102/Resources/reload
#	yalu102/jailbreak.m
#	yalu102/offsets.c
@mologie mologie changed the title Patch/project structure Various project, structure, UI and post-installation changes Jan 30, 2017
@OGKevin
Copy link

OGKevin commented Jan 30, 2017 via email

@KILLCAMPER
Copy link

You have been busy thanks

@ryanb93
Copy link
Contributor

ryanb93 commented Jan 30, 2017

This looks great

@mologie
Copy link
Contributor Author

mologie commented Jan 30, 2017

@mwoolweaver: This is by design. The app only has permissions to make changes to the SSH daemon during the jailbreaking process.

@nullpixel
Copy link
Contributor

Nice, might want to take a look at #141: that adds a bunch of stuff

@mologie
Copy link
Contributor Author

mologie commented Jan 30, 2017

@nullpixel1: Shameless self-advertisement ;P

I don't think we can merge our two forks together just yet. Git will scream at us with conflicts. I'm also not entirely sure if it is wise to add register url scheme which makes the device patch its kernel. Your simulator changes look very interesting. We should discuss this further once/if any of the two PRs are merged.

@nullpixel
Copy link
Contributor

nullpixel commented Jan 30, 2017

@mologie oh, no, I think they work well together as prs.

I'm also not entirely sure if it is wise to add register url scheme which makes the device patch its kernel

Doesn't do it directly, I only set a flag on app delegate if the user presses okay in the dialogue

Copy link
Contributor

@nullpixel nullpixel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this needed?

All you need to do is symlink the files, no need to add this

@mologie
Copy link
Contributor Author

mologie commented Jan 30, 2017

@nullpixel1, GitHub is not showing your comment in context of any code. What are you referring to exactly?

@nullpixel
Copy link
Contributor

Sorry. edf0859

@mologie
Copy link
Contributor Author

mologie commented Jan 30, 2017

Xcode is not guaranteed to be installed under /Applications/Xcode.app, for example the user may be using a beta build. Neither is the path to the macOS and iOS SDK within Xcode guaranteed to remain constant across Xcode releases. Using Xcode's environment to create the symlinks on demand is most robust and allows the user to replace them without affecting the Git workspace status.

@nullpixel
Copy link
Contributor

+1 then.

Does it need to be in the project dir, or could you get Xcode to move it into where it expects it without additional configuration?

@mologie
Copy link
Contributor Author

mologie commented Jan 30, 2017

Are you referring to the symlinks created? (Missing the context of what you wish to discuss...) If so, I made it write those to the project directory, because the an Xcode project pulled of github should not mess with any space not assigned to it. I especially wouldn't want it to modify the default search path.

@nullpixel
Copy link
Contributor

Looks nice to me then, +1

@spalekg
Copy link

spalekg commented Jan 31, 2017

This is nice, +1

@0neday
Copy link

0neday commented Feb 1, 2017

"Don't make the path to /private/var/mobile/Library/Preferences world-writable", I got it and anything work fine for me

@mologie
Copy link
Contributor Author

mologie commented Feb 2, 2017

Closing this; the ssh toggle would conflict with how proper integration with the package manager would work. The remainder are cosmetic changes, which don't really belong into a PR.

@mologie mologie closed this Feb 2, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants