Mac OS-X Users need to follow some extra steps to get the radare2 program signed and ready to debug other applications without running it as root. Same happens for iOS users, read `doc/ios` for more information.
Installation
------------
To compile for OSX run configure in this way:
$ sys/install.sh
By default it is installed in /usr, you can specify a different prefix like this:
$ sys/install.sh /usr/local
To install bindings you will need to install r2, valac, valabind and swig. The whole process can be automated by using scripts under sys/
$ sys/python-deps.sh
$ sys/python.sh
Code Signing
------------
After OSX 10.6, binaries that need permissions to debug require to be signed and include a PLIST describing them. This process differs from the steps needed for iOS, so please read the `doc/ios` for further details.
- The first step requires creating a self signed system certificate for code signing, Open the `KeyChain Access` application and start the wizard found in:
Menu -> CertificateAssistant -> Create Certificate
-> certificate type: code signing
Use organization: radare.org
Name: org.radare.radare2
Once created, right click on certificate and:
-> Trust options -> Always trust
Then you can sign the binary by using the following command:
$ make -C binr/radare2 osxsign
But this is not all! As long as r2 code is splitted into several libraries, you should sign every single dependency (libr*) by typing the system password all the time. For simplicity, I would recommend you to build a static version of r2 and just sign it.
$ sys/static.sh
$ make -C binr/radare2 osxsign
You can verify that the binary is properly signed and verified by the code signing utility:
$ codesign -v binr/radare2/radare2
So let's check what the sandboxing thinks about it:
$ spctl -av radare2
radare2: accepted
override=security disabled
If this command says `rejected` instead of `accepted` it is probably because of your system settings. So launch the *System Preferences* application and:
-> Security & Privacy
-> General
-> Allow Apps Downloaded From
-> Anywhere
Because our signing hasnt been done from an apple verified account we have to mark this option and then manually restart `taskgated` to make it happen!
$ sudo killall taskgated
After this confirm it with the `spctl` tool and you should be able to debug on OSX without root permissions!
$ r2 -d ls
If you want to run and sign a dynamically linked version of radare2 you will get the following error:
$ codesign -dv binr/radare2/radare2
binr/radare2/radare2: code object is not signed at all
Follow those steps to fix this issue:
$ make -C binr/radare2 osx-sign-libs
And run `codesign -dv` and `spctl -av` to confirm.