Skip to content
New issue

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.

Already on GitHub? Sign in to your account

Safari does not run on the created jail. #2

Open
gavaza opened this issue Oct 14, 2017 · 1 comment
Open

Safari does not run on the created jail. #2

gavaza opened this issue Oct 14, 2017 · 1 comment

Comments

@gavaza
Copy link

gavaza commented Oct 14, 2017

$ /Applications/Safari.app/Contents/MacOS/Safari
Killed: 9

Running on MacOS 10.13.
Darwin Kernel Version 17.0.0: Thu Aug 24 21:48:19 PDT 2017; root:xnu-4570.1.46~2/RELEASE_X86_64

@jsarenik
Copy link
Owner

Hi @gavaza! Thank you for reporting this. First I thought it is similar issue like the one described in README, but then after working around signal 9, I got following:

Barboras-MacBook-Pro:Mac-Hroot jajo$ sudo ./chroot.sh mac-jail/
mac-jail$ /Applications/Safari.app/Contents/MacOS/Safari 
Segmentation fault: 11

In dmesg I see following messages:

ent[<ptr>]::removeBufferSet(<ptr>)
+ IOAudioStream[<ptr>]::removeClient(<ptr>)
+-IOAudioStream[<ptr>]::safeLogError kErrorLogDumpCounters mStreamErrorCountsUpdated=0
- IOAudioStream[<ptr>]::removeClient(<ptr>)
- IOAudioEngineUserClient::unregisterClientBuffer64 no sourcebuffer returns 0x0
- IOAudioEngineUserClient::externalMethod returns 0x0
+ IOAudioEngineUserClient::externalMethod, selector=0x0,   arg0 0x0, arg1 0x10fde4000, arg2 0x8010 arg3 0x4f 
  scalarInputCount=0x4  structureInputSize 0x0, scalarOutputCount 0x0, structureOutputSize 0x0 
+ IOAudioEngineUserClient::registerBuffer64 0x0 0x10fde4000 0x8010 0x4f
+ IOAudioEngineUserClient::safeRegisterClientBuffer64 <ptr> 
+ IOAudioEngineUserClient[<ptr>]::registerClientBuffer64  (<ptr>[1], 0x10fde4000, 0x8010, 0x4f)
  null clientBufferSetList
  did not find clientBufferSetList for ID 0x4f 
  clientBuffer->mAudioClientBuffer32.sourceBuffer before offset: <ptr>, offset size: 16
  clientBuffer->mAudioClientBuffer32.sourceBuffer after offset: <ptr>
  null clientBufferSetList
  did not find clientBufferSetList for ID 0x4f 
  creating new IOAudioClientBufferSet 
  output 
  !isOnline 
- IOAudioEngineUserClient::registerClientBuffer64() result 0x0
- IOAudioEngineUserClient::safeRegisterClientBuffer64  returns 0x0
- IOAudioEngineUserClient::registerBuffer64 0x0 0x10fde4000 0x8010 0x4f returns 0x0
- IOAudioEngineUserClient::externalMethod returns 0x0
+ IOAudioEngineUserClient::externalMethod, selector=0x3,   arg0 0x0, arg1 0x0, arg2 0x0 arg3 0x0 
  scalarInputCount=0x0  structureInputSize 0x0, scalarOutputCount 0x0, structureOutputSize 0x0 
+ IOAudioEngineUserClient[<ptr>]::startClient() - 0
  audioEngine && !isInactive(). State = 1 
  audioEngine->getState() != kIOAudioEnginePaused 
+- IOAudioEngineUserClient[<ptr>]::setOnline(1)
  !isOnline() setting online 
+ IOAudioEngine[<ptr>]::startClient(<ptr>)
+ IOAudioEngine[<ptr>]::incrementActiveUserClients() - 0
+ IOAudioEngine[<ptr>]::startAudioEngine(state = 1)
- IOAudioEngine[<ptr>]::startAudioEngine() returns 0x0
- IOAudioEngine[<ptr>]::incrementActiveUserClients() - 1 returns 0
- IOAudioEngine[<ptr>]::startClient(<ptr>) returns 0x0
  engine started 
  bufferSet <ptr> 
  output clientBuffer <ptr> 
+ IOAudioStream[<ptr>]::addClient(<ptr>)
- IOAudioStream[<ptr>]::addClient(<ptr>) returns 0x0
- IOAudioEngineUserClient[<ptr>]::startClient() - 1 returns 0x0
- IOAudioEngineUserClient::externalMethod returns 0x0
+ IOAudioEngineUserClient::externalMethod, selector=0x4,   arg0 0x0, arg1 0x0, arg2 0x0 arg3 0x0 
  scalarInputCount=0x0  structureInputSize 0x0, scalarOutputCount 0x0, structureOutputSize 0x0 
+ IOAudioStream[<ptr>]::removeClient(<ptr>)
+-IOAudioStream[<ptr>]::safeLogError kErrorLogDumpCounters mStreamErrorCountsUpdated=0
- IOAudioStream[<ptr>]::removeClient(<ptr>)
+- IOAudioEngine[<ptr>]::decrementActiveUserClients() - 0 returns 0x0
+- IOAudioEngine[<ptr>]::stopClient(<ptr>) returns 0x0
+- IOAudioEngineUserClient[<ptr>]::setOnline(0)
- IOAudioEngineUserClient::externalMethod returns 0x0
+ IOAudioEngineUserClient::externalMethod, selector=0x1,   arg0 0x10FDE4000, arg1 0x4f, arg2 0x0 arg3 0x0 
  scalarInputCount=0x2  structureInputSize 0x0, scalarOutputCount 0x0, structureOutputSize 0x0 
+ IOAudioEngineUserClient[<ptr>]::unregisterClientBuffer64(0x<ptr>, 0x4f)
  searching for sourceBuffer 0x10fde4000 
+- IOAudioEngineUserClient[<ptr>]::removeBufferSet(<ptr>)
+ IOAudioStream[<ptr>]::removeClient(<ptr>)
+-IOAudioStream[<ptr>]::safeLogError kErrorLogDumpCounters mStreamErrorCountsUpdated=0
- IOAudioStream[<ptr>]::removeClient(<ptr>)
- IOAudioEngineUserClient::unregisterClientBuffer64 no sourcebuffer returns 0x0
- IOAudioEngineUserClient::externalMethod returns 0x0
+ IOAudioEngine[<ptr>]::stopAudioEngine()
+-IOAudioEngine[<ptr>]::setState(0x0. oldState=0x1)
+ IOAudioDevice[<ptr>]::audioEngineStopped() - numRunningAudioEngines = 1
+ IOAudioDevice[<ptr>]::scheduleIdleAudioSleep: idleSleepDelayTime = ffffffffffffffffffffffff
- IOAudioDevice[<ptr>]::scheduleIdleAudioSleep: idleSleepDelayTime = ffffffffffffffffffffffff
- IOAudioDevice[<ptr>]::audioEngineStopped() - numRunningAudioEngines = 0
- IOAudioEngine[<ptr>]::stopAudioEngine() returns 0x0
+-IOAudioEngine[<ptr>]::setState(0x0. oldState=0)
+ IOAudioEngineUserClient::externalMethod, selector=0x0,   arg0 0x0, arg1 0x10fde4000, arg2 0x8010 arg3 0x4f 
  scalarInputCount=0x4  structureInputSize 0x0, scalarOutputCount 0x0, structureOutputSize 0x0 
+ IOAudioEngineUserClient::registerBuffer64 0x0 0x10fde4000 0x8010 0x4f
+ IOAudioEngineUserClient::safeRegisterClientBuffer64 <ptr> 
+ IOAudioEngineUserClient[<ptr>]::registerClientBuffer64  (<ptr>[1], 0x10fde4000, 0x8010, 0x4f)
  null clientBufferSetList
  did not find clientBufferSetList for ID 0x4f 
  clientBuffer->mAudioClientBuffer32.sourceBuffer before offset: <ptr>, offset size: 16
  clientBuffer->mAudioClientBuffer32.sourceBuffer after offset: <ptr>
  null clientBufferSetList
  did not find clientBufferSetList for ID 0x4f 
  creating new IOAudioClientBufferSet 
  output 
  !isOnline 
- IOAudioEngineUserClient::registerClientBuffer64() result 0x0
- IOAudioEngineUserClient::safeRegisterClientBuffer64  returns 0x0
- IOAudioEngineUserClient::registerBuffer64 0x0 0x10fde4000 0x8010 0x4f returns 0x0
- IOAudioEngineUserClient::externalMethod returns 0x0
+ IOAudioEngineUserClient::externalMethod, selector=0x3,   arg0 0x0, arg1 0x0, arg2 0x0 arg3 0x0 
  scalarInputCount=0x0  structureInputSize 0x0, scalarOutputCount 0x0, structureOutputSize 0x0 
+ IOAudioEngineUserClient[<ptr>]::startClient() - 0
  audioEngine && !isInactive(). State = 0 
  audioEngine->getState() != kIOAudioEnginePaused 
+- IOAudioEngineUserClient[<ptr>]::setOnline(1)
  !isOnline() setting online 
+ IOAudioEngine[<ptr>]::startClient(<ptr>)
+ IOAudioEngine[<ptr>]::incrementActiveUserClients() - 0
+ IOAudioEngine[<ptr>]::startAudioEngine(state = 0)
+ IOAudioDevice[<ptr>]::protectedCompletePowerStateChange() - current = 2 - pending = 2
- IOAudioDevice[<ptr>]::protectedCompletePowerStateChange() - current = 2 - pending = 2 returns 0x0
+ IOAudioDevice[<ptr>]::protectedCompletePowerStateChange() - current = 2 - pending = 2
- IOAudioDevice[<ptr>]::protectedCompletePowerStateChange() - current = 2 - pending = 2 returns 0x0
+ IOAudioDevice[<ptr>]::audioEngineStarting() - numRunningAudioEngines = 0
- IOAudioDevice[<ptr>]::audioEngineStarting() - numRunningAudioEngines = 1
+- IOAudioEngine[<ptr>]::resetStatusBuffer()
+-IOAudioEngine[<ptr>]::setState(0x1. oldState=0)
- IOAudioEngine[<ptr>]::getTimerInterval()
- IOAudioEngine[<ptr>]::startAudioEngine() returns 0x0
- IOAudioEngine[<ptr>]::incrementActiveUserClients() - 1 returns 0
- IOAudioEngine[<ptr>]::startClient(<ptr>) returns 0x0
  engine started 
  bufferSet <ptr> 
  output clientBuffer <ptr> 
+ IOAudioStream[<ptr>]::addClient(<ptr>)
- IOAudioStream[<ptr>]::addClient(<ptr>) returns 0x0
- IOAudioEngineUserClient[<ptr>]::startClient() - 1 returns 0x0
- IOAudioEngineUserClient::externalMethod returns 0x0
+ IOAudioEngineUserClient::externalMethod, selector=0x4,   arg0 0x0, arg1 0x0, arg2 0x0 arg3 0x0 
  scalarInputCount=0x0  structureInputSize 0x0, scalarOutputCount 0x0, structureOutputSize 0x0 
+ IOAudioStream[<ptr>]::removeClient(<ptr>)
+-IOAudioStream[<ptr>]::safeLogError kErrorLogDumpCounters mStreamErrorCountsUpdated=0
- IOAudioStream[<ptr>]::removeClient(<ptr>)
+- IOAudioEngine[<ptr>]::decrementActiveUserClients() - 0 returns 0x0
+- IOAudioEngine[<ptr>]::stopClient(<ptr>) returns 0x0
+- IOAudioEngineUserClient[<ptr>]::setOnline(0)
- IOAudioEngineUserClient::externalMethod returns 0x0
+ IOAudioEngineUserClient::externalMethod, selector=0x1,   arg0 0x10FDE4000, arg1 0x4f, arg2 0x0 arg3 0x0 
  scalarInputCount=0x2  structureInputSize 0x0, scalarOutputCount 0x0, structureOutputSize 0x0 
+ IOAudioEngineUserClient[<ptr>]::unregisterClientBuffer64(0x<ptr>, 0x4f)
  searching for sourceBuffer 0x10fde4000 
+- IOAudioEngineUserClient[<ptr>]::removeBufferSet(<ptr>)
+ IOAudioStream[<ptr>]::removeClient(<ptr>)
+-IOAudioStream[<ptr>]::safeLogError kErrorLogDumpCounters mStreamErrorCountsUpdated=0
- IOAudioStream[<ptr>]::removeClient(<ptr>)
- IOAudioEngineUserClient::unregisterClientBuffer64 no sourcebuffer returns 0x0
- IOAudioEngineUserClient::externalMethod returns 0x0
+ IOAudioEngine[<ptr>]::stopAudioEngine()
+-IOAudioEngine[<ptr>]::setState(0x0. oldState=0x1)
+ IOAudioDevice[<ptr>]::audioEngineStopped() - numRunningAudioEngines = 1
+ IOAudioDevice[<ptr>]::scheduleIdleAudioSleep: idleSleepDelayTime = ffffffffffffffffffffffff
- IOAudioDevice[<ptr>]::scheduleIdleAudioSleep: idleSleepDelayTime = ffffffffffffffffffffffff
- IOAudioDevice[<ptr>]::audioEngineStopped() - numRunningAudioEngines = 0
- IOAudioEngine[<ptr>]::stopAudioEngine() returns 0x0
+-IOAudioEngine[<ptr>]::setState(0x0. oldState=0)
SmartBattery: finished polling type 4
IO80211Interface::updateReport _peerManager is missing
SmartBattery: finished polling type 4
SmartBattery: finished polling type 4
+ IOAudioEngineUserClient::externalMethod, selector=0x0,   arg0 0x0, arg1 0x10fde4000, arg2 0x8010 arg3 0x4f 
  scalarInputCount=0x4  structureInputSize 0x0, scalarOutputCount 0x0, structureOutputSize 0x0 
+ IOAudioEngineUserClient::registerBuffer64 0x0 0x10fde4000 0x8010 0x4f
+ IOAudioEngineUserClient::safeRegisterClientBuffer64 <ptr> 
+ IOAudioEngineUserClient[<ptr>]::registerClientBuffer64  (<ptr>[1], 0x10fde4000, 0x8010, 0x4f)
  null clientBufferSetList
  did not find clientBufferSetList for ID 0x4f 
  clientBuffer->mAudioClientBuffer32.sourceBuffer before offset: <ptr>, offset size: 16
  clientBuffer->mAudioClientBuffer32.sourceBuffer after offset: <ptr>
  null clientBufferSetList
  did not find clientBufferSetList for ID 0x4f 
  creating new IOAudioClientBufferSet 
  output 
  !isOnline 
- IOAudioEngineUserClient::registerClientBuffer64() result 0x0
- IOAudioEngineUserClient::safeRegisterClientBuffer64  returns 0x0
- IOAudioEngineUserClient::registerBuffer64 0x0 0x10fde4000 0x8010 0x4f returns 0x0
- IOAudioEngineUserClient::externalMethod returns 0x0
+ IOAudioEngineUserClient::externalMethod, selector=0x3,   arg0 0x0, arg1 0x0, arg2 0x0 arg3 0x0 
  scalarInputCount=0x0  structureInputSize 0x0, scalarOutputCount 0x0, structureOutputSize 0x0 
+ IOAudioEngineUserClient[<ptr>]::startClient() - 0
  audioEngine && !isInactive(). State = 0 
  audioEngine->getState() != kIOAudioEnginePaused 
+- IOAudioEngineUserClient[<ptr>]::setOnline(1)
  !isOnline() setting online 
+ IOAudioEngine[<ptr>]::startClient(<ptr>)
+ IOAudioEngine[<ptr>]::incrementActiveUserClients() - 0
+ IOAudioEngine[<ptr>]::startAudioEngine(state = 0)
+ IOAudioDevice[<ptr>]::protectedCompletePowerStateChange() - current = 2 - pending = 2
- IOAudioDevice[<ptr>]::protectedCompletePowerStateChange() - current = 2 - pending = 2 returns 0x0
+ IOAudioDevice[<ptr>]::protectedCompletePowerStateChange() - current = 2 - pending = 2
- IOAudioDevice[<ptr>]::protectedCompletePowerStateChange() - current = 2 - pending = 2 returns 0x0
+ IOAudioDevice[<ptr>]::audioEngineStarting() - numRunningAudioEngines = 0
- IOAudioDevice[<ptr>]::audioEngineStarting() - numRunningAudioEngines = 1
+- IOAudioEngine[<ptr>]::resetStatusBuffer()
+-IOAudioEngine[<ptr>]::setState(0x1. oldState=0)
- IOAudioEngine[<ptr>]::getTimerInterval()
- IOAudioEngine[<ptr>]::startAudioEngine() returns 0x0
- IOAudioEngine[<ptr>]::incrementActiveUserClients() - 1 returns 0
- IOAudioEngine[<ptr>]::startClient(<ptr>) returns 0x0
  engine started 
  bufferSet <ptr> 
  output clientBuffer <ptr> 
+ IOAudioStream[<ptr>]::addClient(<ptr>)
- IOAudioStream[<ptr>]::addClient(<ptr>) returns 0x0
- IOAudioEngineUserClient[<ptr>]::startClient() - 1 returns 0x0
- IOAudioEngineUserClient::externalMethod returns 0x0
+ IOAudioEngineUserClient::externalMethod, selector=0x4,   arg0 0x0, arg1 0x0, arg2 0x0 arg3 0x0 
  scalarInputCount=0x0  structureInputSize 0x0, scalarOutputCount 0x0, structureOutputSize 0x0 
+ IOAudioStream[<ptr>]::removeClient(<ptr>)
+-IOAudioStream[<ptr>]::safeLogError kErrorLogDumpCounters mStreamErrorCountsUpdated=0
- IOAudioStream[<ptr>]::removeClient(<ptr>)
+- IOAudioEngine[<ptr>]::decrementActiveUserClients() - 0 returns 0x0
+- IOAudioEngine[<ptr>]::stopClient(<ptr>) returns 0x0
+- IOAudioEngineUserClient[<ptr>]::setOnline(0)
- IOAudioEngineUserClient::externalMethod returns 0x0
+ IOAudioEngineUserClient::externalMethod, selector=0x1,   arg0 0x10FDE4000, arg1 0x4f, arg2 0x0 arg3 0x0 
  scalarInputCount=0x2  structureInputSize 0x0, scalarOutputCount 0x0, structureOutputSize 0x0 
+ IOAudioEngineUserClient[<ptr>]::unregisterClientBuffer64(0x<ptr>, 0x4f)
  searching for sourceBuffer 0x10fde4000 
+- IOAudioEngineUserClient[<ptr>]::removeBufferSet(<ptr>)
+ IOAudioStream[<ptr>]::removeClient(<ptr>)
+-IOAudioStream[<ptr>]::safeLogError kErrorLogDumpCounters mStreamErrorCountsUpdated=0
- IOAudioStream[<ptr>]::removeClient(<ptr>)
- IOAudioEngineUserClient::unregisterClientBuffer64 no sourcebuffer returns 0x0
- IOAudioEngineUserClient::externalMethod returns 0x0
+ IOAudioEngine[<ptr>]::stopAudioEngine()
+-IOAudioEngine[<ptr>]::setState(0x0. oldState=0x1)
+ IOAudioDevice[<ptr>]::audioEngineStopped() - numRunningAudioEngines = 1
+ IOAudioDevice[<ptr>]::scheduleIdleAudioSleep: idleSleepDelayTime = ffffffffffffffffffffffff
- IOAudioDevice[<ptr>]::scheduleIdleAudioSleep: idleSleepDelayTime = ffffffffffffffffffffffff
- IOAudioDevice[<ptr>]::audioEngineStopped() - numRunningAudioEngines = 0
- IOAudioEngine[<ptr>]::stopAudioEngine() returns 0x0
+-IOAudioEngine[<ptr>]::setState(0x0. oldState=0)
SmartBattery: finished polling type 2
+ IOAudioEngineUserClient::externalMethod, selector=0x0,   arg0 0x0, arg1 0x10fde4000, arg2 0x8010 arg3 0x4f 
  scalarInputCount=0x4  structureInputSize 0x0, scalarOutputCount 0x0, structureOutputSize 0x0 
+ IOAudioEngineUserClient::registerBuffer64 0x0 0x10fde4000 0x8010 0x4f
+ IOAudioEngineUserClient::safeRegisterClientBuffer64 <ptr> 
+ IOAudioEngineUserClient[<ptr>]::registerClientBuffer64  (<ptr>[1], 0x10fde4000, 0x8010, 0x4f)
  null clientBufferSetList
  did not find clientBufferSetList for ID 0x4f 
  clientBuffer->mAudioClientBuffer32.sourceBuffer before offset: <ptr>, offset size: 16
  clientBuffer->mAudioClientBuffer32.sourceBuffer after offset: <ptr>
  null clientBufferSetList
  did not find clientBufferSetList for ID 0x4f 
  creating new IOAudioClientBufferSet 
  output 
  !isOnline 
- IOAudioEngineUserClient::registerClientBuffer64() result 0x0
- IOAudioEngineUserClient::safeRegisterClientBuffer64  returns 0x0
- IOAudioEngineUserClient::registerBuffer64 0x0 0x10fde4000 0x8010 0x4f returns 0x0
- IOAudioEngineUserClient::externalMethod returns 0x0
+ IOAudioEngineUserClient::externalMethod, selector=0x3,   arg0 0x0, arg1 0x0, arg2 0x0 arg3 0x0 
  scalarInputCount=0x0  structureInputSize 0x0, scalarOutputCount 0x0, structureOutputSize 0x0 
+ IOAudioEngineUserClient[<ptr>]::startClient() - 0
  audioEngine && !isInactive(). State = 0 
  audioEngine->getState() != kIOAudioEnginePaused 
+- IOAudioEngineUserClient[<ptr>]::setOnline(1)
  !isOnline() setting online 
+ IOAudioEngine[<ptr>]::startClient(<ptr>)
+ IOAudioEngine[<ptr>]::incrementActiveUserClients() - 0
+ IOAudioEngine[<ptr>]::startAudioEngine(state = 0)
+ IOAudioDevice[<ptr>]::protectedCompletePowerStateChange() - current = 2 - pending = 2
- IOAudioDevice[<ptr>]::protectedCompletePowerStateChange() - current = 2 - pending = 2 returns 0x0
+ IOAudioDevice[<ptr>]::protectedCompletePowerStateChange() - current = 2 - pending = 2
- IOAudioDevice[<ptr>]::protectedCompletePowerStateChange() - current = 2 - pending = 2 returns 0x0
+ IOAudioDevice[<ptr>]::audioEngineStarting() - numRunningAudioEngines = 0
- IOAudioDevice[<ptr>]::audioEngineStarting() - numRunningAudioEngines = 1
+- IOAudioEngine[<ptr>]::resetStatusBuffer()
+-IOAudioEngine[<ptr>]::setState(0x1. oldState=0)
- IOAudioEngine[<ptr>]::getTimerInterval()
- IOAudioEngine[<ptr>]::startAudioEngine() returns 0x0
- IOAudioEngine[<ptr>]::incrementActiveUserClients() - 1 returns 0
- IOAudioEngine[<ptr>]::startClient(<ptr>) returns 0x0
  engine started 
  bufferSet <ptr> 
  output clientBuffer <ptr> 
+ IOAudioStream[<ptr>]::addClient(<ptr>)
- IOAudioStream[<ptr>]::addClient(<ptr>) returns 0x0
- IOAudioEngineUserClient[<ptr>]::startClient() - 1 returns 0x0
- IOAudioEngineUserClient::externalMethod returns 0x0

Here is the only diff to the mkmacchroot.sh script I did while experimenting.

diff --git a/mkmacchroot.sh b/mkmacchroot.sh
index 0b851da..73c9912 100755
--- a/mkmacchroot.sh
+++ b/mkmacchroot.sh
@@ -4,6 +4,7 @@ MACJAIL=${1:-"$PWD/mac-jail"}
 
 {
 cat <<EOF
+/Applications/Safari.app/Contents/MacOS/Safari
 /usr/lib/dyld
 /bin/bash
 /bin/ls

My Mac version is:

hostname:~ root# uname -a
Darwin hostname.local 16.5.0 Darwin Kernel Version 16.5.0: Fri Mar  3 16:52:33 PST 2017; root:xnu-3789.51.2~3/RELEASE_X86_64 x86_64`

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants