sickcodes / Docker-OSX

Run macOS VM in a Docker! Run near native OSX-KVM in Docker! X11 Forwarding! CI/CD for OS X Security Research! Docker mac Containers.
https://hub.docker.com/r/sickcodes/docker-osx
GNU General Public License v3.0
46.37k stars 2.49k forks source link

Can't install Xcode requires newer version of MacOS #24

Closed peterandrewd closed 4 years ago

peterandrewd commented 4 years ago

As the title says. Would some be kind enough to let me know how I can install Xcode to sideload apps?

sickcodes commented 4 years ago

Really? Let me check now and change to installed a newer build.

I will upload how I sideloaded my unc0ver shorty. It involved signing the release https://dantheman827.github.io/ios-app-signer/

And then installed using OTA plist method. I am not sure if you need a iOS Developer certificate to do OTA app installs by your phone's UUID, but it might.

peterandrewd commented 4 years ago

Ok thanks. That would be much appreciated. Latest Xcode only supports newest Mac OS, and lower Xcode versions don't support iOS 13.5. I have a developer account so I don't mind doing OTA install method. Please let me know when you've changed it to a newer build.

peterandrewd commented 4 years ago

Really? Let me check now and change to installed a newer build.

I will upload how I sideloaded my unc0ver shorty. It involved signing the release https://dantheman827.github.io/ios-app-signer/

And then installed using OTA plist method. I am not sure if you need a iOS Developer certificate to do OTA app installs by your phone's UUID, but it might.

how's the progress?

sickcodes commented 4 years ago

Yeah done, just testing out a new thing I did for the QEMU arguments so any argument can be modified with docker env args:

-e RAM -e CORES -e NFS_DISK -e ROOT_PASS

Etc.

peterandrewd commented 4 years ago

Yeah done, just testing out a new thing I did for the QEMU arguments so any argument can be modified with docker env args:

-e RAM -e CORES -e NFS_DISK -e ROOT_PASS

Etc.

Awesome. Love your work. So to reinstall MacOS with the new image, follow the same steps as before?

hypermoist commented 4 years ago

Would love this rn xD

sickcodes commented 4 years ago

Yeah done, just testing out a new thing I did for the QEMU arguments so any argument can be modified with docker env args: -e RAM -e CORES -e NFS_DISK -e ROOT_PASS Etc.

Awesome. Love your work. So to reinstall MacOS with the new image, follow the same steps as before?

I will include instructions (in the form of an automated shell script) how to migrate the img to the new container.

But regarding the new version, I would suggest doing the new actual box when I push it

sickcodes commented 4 years ago

New version will have the absolute works.

sickcodes commented 4 years ago

Would love this rn xD

Hopefully tonight, just stocked up on Red Bull šŸ˜‚

peterandrewd commented 4 years ago

Would love this rn xD

Hopefully tonight, just stocked up on Red Bull šŸ˜‚

You the man! Also include instructions for creating a new box for the new OS please

hypermoist commented 4 years ago

Would love this rn xD

Hopefully tonight, just stocked up on Red Bull šŸ˜‚

Damn you, i just ran out XD

peterandrewd commented 4 years ago

So eagerly awaiting for the new instructions to run and sideload apps haha

sickcodes commented 4 years ago

So eagerly awaiting for the new instructions to run and sideload apps haha

Iā€™m pretty tired, got a few more things to check.

QEMU crashed unexpectedly, not sure why.

Hereā€™s what I used to do the OTA update if you canā€™t wait: https://gist.github.com/hramos/774468

You need a domain with SSL, if you donā€™t want to buy anything just use a .tk domain + Lets Encrypt

Is the app signed yet?

peterandrewd commented 4 years ago

So eagerly awaiting for the new instructions to run and sideload apps haha

Iā€™m pretty tired, got a few more things to check.

QEMU crashed unexpectedly, not sure why.

Hereā€™s what I used to do the OTA update if you canā€™t wait: https://gist.github.com/hramos/774468

You need a domain with SSL, if you donā€™t want to buy anything just use a .tk domain + Lets Encrypt

Is the app signed yet?

Sorry for my lack of knowledge here but how do I use this script? What do I do exactly? I've just signed up for a domain and gotten an SSL certificate which i'll install in Ubuntu, but confused as to what I do with the manifest.plist script.

sickcodes commented 4 years ago

Here is an explanation, https://medium.com/@adrianstanecki/distributing-and-installing-non-market-ipa-application-over-the-air-ota-2e65f5ea4a46

Gotta finish some client work today unfortunately I won't be able to release v2 yet.

Will let everyone know ASAP, will post here and on my twitter http://twitter.com/sickcodes

peterandrewd commented 4 years ago

Here is an explanation, https://medium.com/@adrianstanecki/distributing-and-installing-non-market-ipa-application-over-the-air-ota-2e65f5ea4a46

Gotta finish some client work today unfortunately I won't be able to release v2 yet.

Will let everyone know ASAP, will post here and on my twitter http://twitter.com/sickcodes

Iā€™ve followed it to a tee. I can access my local server through my iPhone safari browser, I click the install link to the ipa I want to install and it just keeps asking me to open itunes. I have a developer account. Wtf am I doing wrong? Iā€™m pretty frustrated

peterandrewd commented 4 years ago

Well I changed something and now the link does sweet fuck all. Where am I supposed to put the ipa files so it can be added and accessed on my local host server?

sickcodes commented 4 years ago

Same directory.

It does require a valid SSL cert

So it cannot be http://localhost

It must be https:// and I am not sure because it alsoneeds a valid SSL certificate. I had been meaning to test IPA downloads with invalid or self signed certs, perhaps installing the certificate first, which should work but thatā€™s why I mentioned .tk and letā€™s encrypt

Also the URL looks like this

itms-services://?action=download-manifest&url=https://website.com/manifest.plist

peterandrewd commented 4 years ago

Dont mean to rush you but I really need Catalina to run in QEMU, that other solution has not at all worked out for me.

peterandrewd commented 4 years ago

why on earth did you use an old version of Mac OS to begin with?

reticivis-net commented 4 years ago

Would upgrading within the VM to Catalina work? image edit: ill download and try it myself why not lol

reticivis-net commented 4 years ago

It didnt work with the default storage amount BUT you can build the dockerfile with any version that gibMacOS supported

sudo docker build -t docker-osx:latest \
--build-arg VERSION=10.15.4 \
--build-arg SIZE=200G

then replace sickcodes/docker-osx with docker-osx:latest in your run command

sudo docker run --privileged -v /tmp/.X11-unix:/tmp/.X11-unix docker-osx:latest /bin/bash -c "sed -e 's/3072/8000/g' ./OpenCore-Boot.sh | sh -"

I currently haven't gotten to the desktop or installed xcode yet, but it did boot and it shows macOS Catalina on the install screen.

Edit: I installed Xcode and ran it

sickcodes commented 4 years ago

10.15.5 builds fine too.

Old version for stability, same reason LTS kernels exist.

peterandrewd commented 4 years ago

It didnt work with the default storage amount BUT you can build the dockerfile with any version that gibMacOS supported

sudo docker build -t docker-osx:latest \
--build-arg VERSION=10.15.4 \
--build-arg SIZE=200G

then replace sickcodes/docker-osx with docker-osx:latest in your run command

sudo docker run --privileged -v /tmp/.X11-unix:/tmp/.X11-unix docker-osx:latest /bin/bash -c "sed -e 's/3072/8000/g' ./OpenCore-Boot.sh | sh -"

I currently haven't gotten to the desktop or installed xcode yet, but it did boot and it shows macOS Catalina on the install screen.

Edit: I installed Xcode and ran it

I get this error when inputting the above commands. I have downloaded Catalina from gibMacOS. Usage: docker build [OPTIONS] PATH | URL | -

Build an image from a Dockerfile

How to fix?

reticivis-net commented 4 years ago

Download the github repository, cd to it, and add a dot to the end iirc

peterandrewd commented 4 years ago

Now it does sweet fuck all. Doesn't load anything I just get: Unable to find image 'docker-osx:latest' locally

reticivis-net commented 4 years ago

Guess I remembered wrong. Iā€™m pretty sure you need the repo downloaded to build it though. Google the errors I guess idk

peterandrewd commented 4 years ago

Really? That's your solution in trying to help? GTFO off here then.

AubreyHewes commented 4 years ago

@peterandrewd Unable to find image 'docker-osx:latest' literally... means you have no image downloaded at that tag name.. so check that it is available locally been built? docker images..

Your previous usage errors on docker build actually literally means you are probably not correctly copying the command proposed... i.e. missing a slash or such like..

Docker usage is not part of this repo.. linux/macos shell usage is not part of this repo..

An error from a cli command telling you how to use the command is not an error. It is a user error.

reticivis-net commented 4 years ago

dude, Iā€™m not the owner of the repo. Iā€™m just posting what worked for me. No need to be so rude

peterandrewd commented 4 years ago

@peterandrewd Unable to find image 'docker-osx:latest' literally... means you have no image downloaded at that tag name.. so check that it is available locally been built? docker images..

Your previous usage errors on docker build actually literally means you are probably not correctly copying the command proposed... i.e. missing a slash or such like..

Docker usage is not part of this repo.. linux/macos shell usage is not part of this repo..

An error from a cli command telling you how to use the command is not an error. It is a user error.

well could someone be kind enough to give me a step by step guide?

it does exist: docker images REPOSITORY TAG IMAGE ID CREATED SIZE sickcodes/docker-osx latest 86d96fb48732 4 days ago 11.8GB

AubreyHewes commented 4 years ago

@peterandrewd A step by step guide on how to use docker? Or read directions?

The image you are displaying is sickcodes/docker-osx:latest not docker-osx:latest (cf your error)... so I assume you have missed a step?

Maybe just rename it and get on going?

Possibly be kind enough to apologise to @HexCodeFFF as was only trying to help and there was no need for your type of reaction?

AubreyHewes commented 4 years ago

@peterandrewd Possibly be kind enough to apologise to @HexCodeFFF as was only trying to help and there was no need for your type of reaction?

peterandrewd commented 4 years ago

@peterandrewd A step by step guide on how to use docker? Or read directions?

The image you are displaying is sickcodes/docker-osx:latest not docker-osx:latest (cf your error)... so I assume you have missed a step?

Maybe just rename it and get on going?

Possibly be kind enough to apologise to @HexCodeFFF as was only trying to help and there was no need for your type of reaction?

Ok I apologise for how I spoke. I am just frustrated. When I run docker run --privileged -e "DISPLAY=${DISPLAY:-:0.0}" -v /tmp/.X11-unix:/tmp/.X11-unix sickcodes/docker-osx:latest in theory whatever it's named, it should let me install Catalina. But it still says Mojave on the install screen.

reticivis-net commented 4 years ago

You have to run the build command successfully first, thatā€™s where it actually ā€œchangesā€ to Catalina.

AubreyHewes commented 4 years ago

@peterandrewd see docs on setting the version...

It is no excuse to talk as you did. Mention and apologize to @HexCodeFFF explicitly and not an off hand oh sorry.

The platform/software you are using is delivered by people. That you are frustrated ok. Keep that to yourself. Ask questions on how to alleviate your problem and be polite there within you can be frustrated.

The way you react. Determines how people see you.. You have a very shallow github profile (means nothing I know).. but such info added with your reactions also tells others what kind of person you are.

peterandrewd commented 4 years ago

You have to run the build command successfully first, thatā€™s where it actually ā€œchangesā€ to Catalina.

Ok so ive renamed sickcodes/docker-osx:latest to docker-osx:latest as I was meant to do. But when I copy and paste his above commands: sudo docker build -t docker-osx:latest \ --build-arg VERSION=10.15.4 \ --build-arg SIZE=200G I get the same error: "docker build" requires exactly 1 argument.

peterandrewd commented 4 years ago

@peterandrewd see docs on setting the version...

It is no excuse to talk as you did. Mention and apologize to @HexCodeFFF explicitly and not an off hand oh sorry.

The platform/software you are using is delivered by people. That you are frustrated ok. Keep that to yourself. Ask questions on how to alleviate your problem and be polite there within you can be frustrated.

The way you react. Determines how people see you.. You have a very shallow github profile (means nothing I know).. but such info added with your reactions also tells others what kind of person you are.

Noted. Ive apologised that's all I can do and won't do it again.

AubreyHewes commented 4 years ago

@peterandrewd You should apologize direct to the person you have been rude to. i.e. mention and apologize directly (which you have not done). A sign of respect and humility brings you a long way.

I have no time to tell you how to copy-paste commands in your shell.

peterandrewd commented 4 years ago

You have to run the build command successfully first, thatā€™s where it actually ā€œchangesā€ to Catalina.

Iā€™m sorry for talking to you the way I did HexCode

peterandrewd commented 4 years ago

You have to run the build command successfully first, thatā€™s where it actually ā€œchangesā€ to Catalina.

Iā€™m sorry for talking to you the way I did HexCode

Now can I please get some help with the codes

AubreyHewes commented 4 years ago

@peterandrewd You may be new to GitHub. To mention a person you first use a @.. this way you know that that person may receive your message. Within an issue you are autofilled with names who are in the issue.. why am i explaining this? .. then you can continue. I understand that you did apologise.. though as the person was not mentioned.. they may not ever know. They may be the only person that can help. Do you understand what I am saying?

peterandrewd commented 4 years ago

@HexCodeFFF I am sorry for how I spoke to you. Please accept my apology it will not happen again.

peterandrewd commented 4 years ago

@peterandrewd You may be new to GitHub. To mention a person you first use a @.. this way you know that that person may receive your message. Within an issue you are autofilled with names who are in the issue.. why am i explaining this? .. then you can continue. I understand that you did apologise.. though as the person was not mentioned.. they may not ever know. They may be the only person that can help. Do you understand what I am saying?

Yep understood. Still learning. Done. But now can I please get some help regarding my codes and issue im having.

AubreyHewes commented 4 years ago

@peterandrewd what problem do you have? still the invalid docker command usage? did you put the complete command on one line and then use it?

AubreyHewes commented 4 years ago

@peterandrewd there are no "codes".. it is mostly knowledge.. asking to fix the "codes" is actually also very depressing.. you should probably ask the "codes" questions on stack or such like...

peterandrewd commented 4 years ago

@peterandrewd what problem do you have? still the invalid docker command usage? did you put the complete command on one line and then use it?

just tried it on 1 line: sudo docker build -t docker-osx:latest --build-arg VERSION=10.15.5 --build-arg SIZE=200G getting this error: unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /home/peter/docker-osx:latest/Dockerfile: no such file or directory

AubreyHewes commented 4 years ago

@peterandrewd Also it is generally regarded when someone gives a usable answer that the recipient says something.. also a new thing for you.. but as you are learning.. and know everything better I do not really care.

peterandrewd commented 4 years ago

@peterandrewd Also it is generally regarded when someone gives a usable answer that the recipient says something.. also a new thing for you.. but as you are learning.. and know everything better I do not really care.

wtf? since when did I say I knew everything better? I have done my due diligence and apologised directly.

AubreyHewes commented 4 years ago

@peterandrewd The error is a user error has nothing to do with this repo or any other repo. You should probably fix it or go to the Docker repo and ask there?