Giter Club home page Giter Club logo

ish-aok's Introduction

Build Status goto counter fuck counter

A project to get a Linux shell running on iOS, using usermode x86 emulation and syscall translation.

For the current status of the project, check the issues tab, and the commit logs.

Hacking

This project has a git submodule, make sure to clone with --recurse-submodules or run git submodule update --init after cloning.

You'll need these things to build the project:

  • Python 3
    • Meson (pip3 install meson)
  • Ninja
  • Clang and LLD (on mac, brew install llvm, on linux, sudo apt install clang lld or sudo pacman -S clang lld or whatever)
  • sqlite3 (this is so common it may already be installed on linux and is definitely already installed on mac. if not, do something like sudo apt install libsqlite3-dev)
  • libarchive (brew install libarchive, sudo port install libarchive, sudo apt install libarchive-dev) TODO: bundle this dependency

Build for iOS

Open the project in Xcode, open iSH.xcconfig, and change ROOT_BUNDLE_IDENTIFIER to something unique. You'll also need to update the development team ID in the project (not target!) build settings. Then click Run. There are scripts that should do everything else automatically. If you run into any problems, open an issue and I'll try to help.

Build command line tool for testing

To set up your environment, cd to the project and run meson build to create a build directory in build. Then cd to the build directory and run ninja.

To set up a self-contained Alpine linux filesystem, download the Alpine minirootfs tarball for i386 from the Alpine website and run ./tools/fakefsify, with the minirootfs tarball as the first argument and the name of the output directory as the second argument. Then you can run things inside the Alpine filesystem with ./ish -f alpine /bin/login -f root, assuming the output directory is called alpine. If tools/fakefsify doesn't exist for you in your build directory, that might be because it couldn't find libarchive on your system (see above for ways to install it.)

You can replace ish with tools/ptraceomatic to run the program in a real process and single step and compare the registers at each step. I use it for debugging. Requires 64-bit Linux 4.11 or later.

Logging

iSH has several logging channels which can be enabled at build time. By default, all of them are disabled. To enable them:

  • In Xcode: Set the ISH_LOG setting in iSH.xcconfig to a space-separated list of log channels.
  • With Meson (command line tool for testing): Run meson configure -Dlog="<space-separated list of log channels>".

Available channels:

  • strace: The most useful channel, logs the parameters and return value of almost every system call.
  • instr: Logs every instruction executed by the emulator. This slows things down a lot.
  • verbose: Debug logs that don't fit into another category.
  • Grep for DEFAULT_CHANNEL to see if more log channels have been added since this list was updated.

A note on the JIT

Possibly the most interesting thing I wrote as part of iSH is the JIT. It's not actually a JIT since it doesn't target machine code. Instead it generates an array of pointers to functions called gadgets, and each gadget ends with a tailcall to the next function; like the threaded code technique used by some Forth interpreters. The result is a speedup of roughly 3-5x compared to pure emulation.

Unfortunately, I made the decision to write nearly all of the gadgets in assembly language. This was probably a good decision with regards to performance (though I'll never know for sure), but a horrible decision with regards to readability, maintainability, and my sanity. The amount of bullshit I've had to put up with from the compiler/assembler/linker is insane. It's like there's a demon in there that makes sure my code is sufficiently deformed, and if not, makes up stupid reasons why it shouldn't compile. In order to stay sane while writing this code, I've had to ignore best practices in code structure and naming. You'll find macros and variables with such descriptive names as ss and s and a. Assembler macros nested beyond belief. And to top it off, there are almost no comments.

So a warning: Long-term exposure to this code may cause loss of sanity, nightmares about GAS macros and linker errors, or any number of other debilitating side effects. This code is known to the State of California to cause cancer, birth defects, and reproductive harm.

ish-aok's People

Contributors

tbodt avatar github-actions[bot] avatar saagarjha avatar jason-conway avatar emkey1 avatar matthewmerrill avatar stek29 avatar lunixbochs avatar wishstudio avatar 0b101 avatar nimelehin avatar zhuowei avatar cristeahub avatar cmelbye-sc avatar mnpn avatar asdfugil avatar seproblem avatar woachk avatar khanknyo avatar davidsouthgate avatar krystophny avatar kkebo avatar rexx-org avatar sdushantha avatar ish-actions avatar rexogamer avatar noahpeeters avatar lorenzodla avatar mizu-bai avatar akemimadoka avatar

Stargazers

Ivon Huang avatar  avatar Harley Worrell avatar Erwann Lagouche avatar Valeriy Selitskiy avatar  avatar  avatar dumpsterfireXdesign avatar  avatar  avatar  avatar  avatar  avatar TheodoreE.Matt avatar  avatar troilus avatar MRY avatar Oooo avatar RanYe avatar LXXAqy avatar  avatar Justin Garrison avatar 菜鸟 avatar Domoyo avatar  avatar  avatar Eva avatar Yukai Huang avatar 罗鑫 avatar  avatar  avatar  avatar  avatar  avatar dai yuanquan avatar  avatar Mski avatar TemplarUndead avatar Gaizka P. avatar eddie avatar dot avatar NaiTuoZhou avatar  avatar Deng Xinke avatar  avatar  avatar  avatar Riyaadh Mahomed avatar Rbt avatar ForsakenDelusion avatar  avatar  avatar  avatar AMGAD CYBER avatar BR Web avatar taw420 avatar Netanel avatar Vincent Garneau avatar Bharathi avatar  avatar  avatar 帝少 avatar  avatar Hype0501 avatar  avatar malxwarez avatar JiuZero avatar  avatar Rayan Amal avatar 澪 avatar PROJECT ZERO avatar  avatar FN1X_ avatar  avatar MelonJack avatar Wei Tingjiang avatar Nick Turley avatar Sergey Derunikh avatar  avatar D0n_D0n avatar Robert avatar ToSeven avatar Gregory Sutherland avatar Egor Egorov avatar baggette avatar Zach avatar  avatar duck avatar  avatar Wyatt avatar Anton Volnuhin avatar  avatar V.Garneau avatar  avatar  avatar  avatar  avatar  avatar ViPiMP avatar Pete avatar

Watchers

Alexey Balchunas avatar PROJECT ZERO avatar Jannielove avatar  avatar  avatar

ish-aok's Issues

Add keyboard customization functionality in the iSH-AOK program settings

Is it possible to add keyboard customization functionality in the iSH-AOK program settings?
This feature is easily achievable on a regular computer. To avoid discomfort and pain in my little fingers, I typically swap the positions of the Shift and Control keys when using a computer. However, I've installed Alpine and Debian in iSH, and I'm unable to customize the keys. Many resources mention methods for customizing keys, such as xmodmap and setxkbmap, which can only be set in an X environment. Unfortunately, our iSH terminal mode doesn't support these methods. I humbly request that you consider adding keyboard customization functionality to the iSH settings menu.

cat /dev/location does not seem to keep iSH-AOK running any more

After updating to the new Build 21 today, cat /dev/location does not seem to keep it running in the background any more.

I start it up and ensure ssh and runbg is running with rc-status AND that the sshd and cat process is actually there with a ps -axu

Then switch to Blink and login remotely, after a couple of minutes iSH-AOK just stops responding. If I alt-tab back to iSH-AOK it is still responsive, the above mentioned checks pass, and I can run Blink for a couple of minutes again. Rinse repeat.

Exec format error @golang

goss
-bash: /usr/local/bin/goss: cannot execute binary file: Exec format error

ldd /usr/local/bin/goss
/lib/ld-musl-i386.so.1: /usr/local/bin/goss: Not a valid dynamic program

Requested Enhancements to various uname option outputs from jack

After giving it some thought, here are my concrete suggestions:

Suggestedd uname outputs, not breaking with current iSH aproach in an incompatible way

-m Hardware type
Virtualized i686 on iOS - or however it is best described
fallback is same as -p

-s Kernel name
iSH (mainline iSH)
iSH/AOK (in your case)
It seems the obvious choice since this is not Linux, not even doing that great
a job of emulating it, but thats another story 🙂
using iSH/forkshortname would make sense and if spread would be consistent.
It is an iSH, more specifically it is the AOK fork

-p Processor type
i686
or whatever makes sense, unknown is just lazy 🙂

-r
iSH/AOK github release version or tag used for build

-v
Most important compile time choices, multithreading etc ie a short string
indicating what major choices were made and compile time.
Since compilte time with -r defining version removes chronological parsing of -v,
compile time can be human reeadable iso-dates would not be reqursted in such
a scenario. If -r can not show a chronological number sequence,
then starting -v with an iso-date is a workable fallback.

-i The hardware platform
If practical to detect could indicate iPhone/iPad/iOS laptop env etc,
otherwise report same -p

-o
GNU/Linux
I agree with you on that one, that is the proper name.

tmpfs is unusable

(tldr: See 2 images, also attached IOS crash
report).

111E9748-51E0-48BB-9C02-D87502B0333D
8DE5D6ED-7333-42C4-B09E-6289C1EFBCD8

issue:

  1. mounting tmpfs results in write only mode. (touch returns file name is too long within tmpfs).

  2. Unmounting tmpfs will 100% result in a crash of the app.

  3. abi level rm on a filedesc in tmpfs will crash the app. busybox rm will just report permission issue.(perhaps due to first checking permission before abi)?

  4. basically tmpfs is unsuable.

  5. IOS crash returns "Address Size Fault" .

Theories:

  1. its the 'mount' syscall ( or 'mprotect' or suid bits called within mount param )

  2. its the inode offsets of 32 bit (ISH-AOK) address, differing from the IOS kernel (64 bit) address.

  3. It is due to the differing IOS and "linux"/ISH kernel paramaters of mount.

  4. Executables safely alloc and free avail mem, so it must be mount paramaters.

  5. it is due to the libmusl or busybox mount implimentation/param(related to suid bits).

Proposal:

  1. making a block device driver in /dev/ to mount the tmpfs with mount params preset.
  2. make every filedesc in tmpfs a buffered fifo.

Significance:

tmpfs will make some use cases 60-80% faster. (apt, fzf,tmux,etc...).

Maybe more rootfs distros can start init (related to tmpfs in fstab).

Let me know what you think and if you have any insight/leads to where to start to fix this issue.

534C5061-8496-427D-960A-264F4CA3ABBD
27FC0A0E-34BC-4811-8DA6-29A184887917

Thank you,

ADDITION:

Another solution is to use mmap and specify a valid address(size and location) paramaters manually at the ISH-AOK Kernel when mount is invoked.

It is stopped forever when I install emacs.

It is stopped forever when I install emacs.
sudo apt install emacs
............
emacsen-common: Handling install of emacsen flavor emacs
Ctrl-c

sudo dpkg --configure -a
Setting up emacs-lucid (1:26.1+1-3.2+deb10u4) ...
Install emacsen-common for emacs
emacsen-common: Handling install of emacsen flavor emacs

Processes become unresponsive

After some amount of time running, processes become unresponsive. Observed in bash and sshd, this is not a total iSH lockup scenario, other tabs/windows can still be responsive.

Can not login

When trying to login with either the ‘ish’ user account or root, the login isn’t completed. As in, after entering the username nothing happens when entering a false username, there also isn’t any reaction form the system.

Crash Report only generates after leaving the App in Background, after which it crashes.


{"roots_installed":0,"app_cohort":"2|date=1690923600000&sf=143445&tid=e8ebbd6c78172c00e34028c7c74021f5e7e7e671626407f7028d83c3f3be13b6&ttype=e","app_name":"iSH-AOK","app_version":"1.3","timestamp":"2023-08-31 14:30:04.00 +0200","slice_uuid":"2a99d6cb-ac41-3e05-92cc-5dc09e7044dc","adam_id":"1551507561","build_version":"485","platform":2,"bundleID":"app.ish.iSH-AOK","share_with_app_devs":0,"is_first_party":0,"bug_type":"309","os_version":"iPhone OS 16.6 (20G75)","incident_id":"F0239CAD-049B-41EA-A888-1B1E9254C43C","name":"iSH-AOK","is_beta":1}
{
  "uptime" : 940000,
  "procRole" : "unknown",
  "version" : 2,
  "userID" : 501,
  "deployVersion" : 210,
  "modelCode" : "iPhone13,1",
  "coalitionID" : 5383,
  "osVersion" : {
    "isEmbedded" : true,
    "train" : "iPhone OS 16.6",
    "releaseType" : "User",
    "build" : "20G75"
  },
  "captureTime" : "2023-08-31 14:30:02.9033 +0200",
  "incident" : "F0239CAD-049B-41EA-A888-1B1E9254C43C",
  "pid" : 24024,
  "cpuType" : "ARM-64",
  "roots_installed" : 0,
  "bug_type" : "309",
  "procLaunch" : "2023-08-31 14:29:48.3796 +0200",
  "procStartAbsTime" : 22760460754487,
  "procExitAbsTime" : 22760809170163,
  "procName" : "iSH-AOK",
  "procPath" : "\/private\/var\/containers\/Bundle\/Application\/2E1B99D3-0D3E-4958-A1CC-0BF92935322B\/iSH-AOK.app\/iSH-AOK",
  "bundleInfo" : {"CFBundleShortVersionString":"1.3","CFBundleVersion":"485","CFBundleIdentifier":"app.ish.iSH-AOK","DTAppStoreToolsBuild":"14E221"},
  "storeInfo" : {"itemID":"1551507561","storeCohortMetadata":"2|date=1690923600000&sf=143445&tid=e8ebbd6c78172c00e34028c7c74021f5e7e7e671626407f7028d83c3f3be13b6&ttype=e","entitledBeta":true,"deviceIdentifierForVendor":"B4D49A63-F02B-43D9-B7AF-A92BDED0D5FB","softwareVersionExternalIdentifier":"116426626","applicationVariant":"1:iPhone13,1:16","thirdParty":true},
  "parentProc" : "launchd",
  "parentPid" : 1,
  "coalitionName" : "app.ish.iSH-AOK",
  "isBeta" : 1,
  "wasUnlockedSinceBoot" : 1,
  "isLocked" : 0,
  "codeSigningID" : "app.ish.iSH-AOK",
  "codeSigningTeamID" : "UYU5FM4LQ4",
  "codeSigningFlags" : 570434305,
  "codeSigningValidationCategory" : 2,
  "codeSigningTrustLevel" : 0,
  "basebandVersion" : "3.80.01",
  "exception" : {"codes":"0x0000000000000000, 0x0000000000000000","rawCodes":[0,0],"type":"EXC_CRASH","signal":"SIGKILL"},
  "termination" : {"namespace":"RUNNINGBOARD","flags":6,"code":3735883980},
  "ktriageinfo" : "VM - (arg = 0x0) pmap_enter retried due to resource shortage\nVM - (arg = 0x0) pmap_enter retried due to resource shortage\nVM - (arg = 0x0) pmap_enter retried due to resource shortage\nVM - (arg = 0x0) pmap_enter retried due to resource shortage\nVM - (arg = 0x0) pmap_enter retried due to resource shortage\n",
  "faultingThread" : 0,
  "threads" : [{"triggered":true,"id":9161673,"threadState":{"x":[{"value":268451845},{"value":21592279046},{"value":8589934592},{"value":45092861640704},{"value":0},{"value":45092861640704},{"value":2},{"value":4294967295},{"value":18446744073709550527},{"value":0},{"value":10499},{"value":0},{"value":24000000},{"value":10499},{"value":69269232549888},{"value":0},{"value":18446744073709551569},{"value":69269232566018},{"value":0},{"value":4294967295},{"value":2},{"value":45092861640704},{"value":0},{"value":45092861640704},{"value":6164277144},{"value":8589934592},{"value":21592279046},{"value":21592279046},{"value":8013062144,"symbolLocation":384,"symbol":"sDataLists"}],"flavor":"ARM_THREAD_STATE64","lr":{"value":7616879476},"cpsr":{"value":1073745920},"fp":{"value":6164276992},"sp":{"value":6164276912},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":7616801956,"matchesCrashFrame":1},"far":{"value":26117967856}},"name":"login-3","queue":"com.apple.main-thread","frames":[{"imageOffset":3236,"symbol":"mach_msg2_trap","symbolLocation":8,"imageIndex":2},{"imageOffset":80756,"symbol":"mach_msg2_internal","symbolLocation":80,"imageIndex":2},{"imageOffset":81484,"symbol":"mach_msg_overwrite","symbolLocation":540,"imageIndex":2},{"imageOffset":4584,"symbol":"mach_msg","symbolLocation":24,"imageIndex":2},{"imageOffset":495652,"symbol":"__CFRunLoopServiceMachPort","symbolLocation":160,"imageIndex":3},{"imageOffset":500304,"symbol":"__CFRunLoopRun","symbolLocation":1208,"imageIndex":3},{"imageOffset":521196,"symbol":"CFRunLoopRunSpecific","symbolLocation":612,"imageIndex":3},{"imageOffset":4956,"symbol":"GSEventRunModal","symbolLocation":164,"imageIndex":4},{"imageOffset":3788632,"symbol":"-[UIApplication _run]","symbolLocation":888,"imageIndex":5},{"imageOffset":3787708,"symbol":"UIApplicationMain","symbolLocation":340,"imageIndex":5},{"imageOffset":56352,"imageIndex":0},{"imageOffset":89580,"symbol":"start","symbolLocation":2220,"imageIndex":6}]},{"id":9161676,"frames":[{"imageOffset":2932,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":7}]},{"id":9161677,"frames":[{"imageOffset":2932,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":7}]},{"id":9161679,"name":"com.apple.uikit.eventfetch-thread","frames":[{"imageOffset":3236,"symbol":"mach_msg2_trap","symbolLocation":8,"imageIndex":2},{"imageOffset":80756,"symbol":"mach_msg2_internal","symbolLocation":80,"imageIndex":2},{"imageOffset":81484,"symbol":"mach_msg_overwrite","symbolLocation":540,"imageIndex":2},{"imageOffset":4584,"symbol":"mach_msg","symbolLocation":24,"imageIndex":2},{"imageOffset":495652,"symbol":"__CFRunLoopServiceMachPort","symbolLocation":160,"imageIndex":3},{"imageOffset":500304,"symbol":"__CFRunLoopRun","symbolLocation":1208,"imageIndex":3},{"imageOffset":521196,"symbol":"CFRunLoopRunSpecific","symbolLocation":612,"imageIndex":3},{"imageOffset":270260,"symbol":"-[NSRunLoop(NSRunLoop) runMode:beforeDate:]","symbolLocation":212,"imageIndex":8},{"imageOffset":269980,"symbol":"-[NSRunLoop(NSRunLoop) runUntilDate:]","symbolLocation":64,"imageIndex":8},{"imageOffset":5045448,"symbol":"-[UIEventFetcher threadMain]","symbolLocation":416,"imageIndex":5},{"imageOffset":374052,"symbol":"__NSThread__start__","symbolLocation":716,"imageIndex":8},{"imageOffset":5816,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":7},{"imageOffset":2952,"symbol":"thread_start","symbolLocation":8,"imageIndex":7}]},{"id":9161680,"frames":[{"imageOffset":2932,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":7}]},{"id":9161684,"name":"init-1","frames":[{"imageOffset":5496,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":2},{"imageOffset":32888,"symbol":"_pthread_cond_wait","symbolLocation":1232,"imageIndex":7},{"imageOffset":337988,"imageIndex":0},{"imageOffset":337428,"imageIndex":0},{"imageOffset":203304,"imageIndex":0},{"imageOffset":205068,"imageIndex":0},{"imageOffset":172736,"imageIndex":0},{"imageOffset":184164,"imageIndex":0},{"imageOffset":184348,"imageIndex":0},{"imageOffset":5816,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":7},{"imageOffset":2952,"symbol":"thread_start","symbolLocation":8,"imageIndex":7}]},{"id":9161685,"name":"openrc-2","frames":[{"imageOffset":5496,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":2},{"imageOffset":32888,"symbol":"_pthread_cond_wait","symbolLocation":1232,"imageIndex":7},{"imageOffset":337988,"imageIndex":0},{"imageOffset":337428,"imageIndex":0},{"imageOffset":203304,"imageIndex":0},{"imageOffset":205068,"imageIndex":0},{"imageOffset":172736,"imageIndex":0},{"imageOffset":182396,"imageIndex":0},{"imageOffset":184348,"imageIndex":0},{"imageOffset":5816,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":7},{"imageOffset":2952,"symbol":"thread_start","symbolLocation":8,"imageIndex":7}]},{"id":9161688,"name":"login-3","frames":[{"imageOffset":5496,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":2},{"imageOffset":32888,"symbol":"_pthread_cond_wait","symbolLocation":1232,"imageIndex":7},{"imageOffset":337988,"imageIndex":0},{"imageOffset":337428,"imageIndex":0},{"imageOffset":203304,"imageIndex":0},{"imageOffset":205068,"imageIndex":0},{"imageOffset":172736,"imageIndex":0},{"imageOffset":182396,"imageIndex":0},{"imageOffset":184348,"imageIndex":0},{"imageOffset":5816,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":7},{"imageOffset":2952,"symbol":"thread_start","symbolLocation":8,"imageIndex":7}]},{"id":9161689,"name":"login.alpine-4","frames":[{"imageOffset":7336,"symbol":"__psynch_mutexwait","symbolLocation":8,"imageIndex":2},{"imageOffset":8468,"symbol":"_pthread_mutex_firstfit_lock_wait","symbolLocation":84,"imageIndex":7},{"imageOffset":37656,"symbol":"_pthread_mutex_firstfit_lock_slow","symbolLocation":248,"imageIndex":7},{"imageOffset":262876,"imageIndex":0},{"imageOffset":240352,"imageIndex":0},{"imageOffset":172736,"imageIndex":0},{"imageOffset":182396,"imageIndex":0},{"imageOffset":184348,"imageIndex":0},{"imageOffset":5816,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":7},{"imageOffset":2952,"symbol":"thread_start","symbolLocation":8,"imageIndex":7}]},{"id":9161690,"name":"JavaScriptCore libpas scavenger","frames":[{"imageOffset":5496,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":2},{"imageOffset":32888,"symbol":"_pthread_cond_wait","symbolLocation":1232,"imageIndex":7},{"imageOffset":1129668,"symbol":"scavenger_thread_main","symbolLocation":1428,"imageIndex":9},{"imageOffset":5816,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":7},{"imageOffset":2952,"symbol":"thread_start","symbolLocation":8,"imageIndex":7}]},{"id":9161691,"frames":[{"imageOffset":4452,"symbol":"__semwait_signal","symbolLocation":8,"imageIndex":2},{"imageOffset":22664,"symbol":"nanosleep","symbolLocation":220,"imageIndex":10},{"imageOffset":336156,"imageIndex":0},{"imageOffset":5816,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":7},{"imageOffset":2952,"symbol":"thread_start","symbolLocation":8,"imageIndex":7}]},{"id":9161754,"name":"dbus-5","frames":[{"imageOffset":9692,"symbol":"kevent","symbolLocation":8,"imageIndex":2},{"imageOffset":330636,"imageIndex":0},{"imageOffset":333484,"imageIndex":0},{"imageOffset":172736,"imageIndex":0},{"imageOffset":182396,"imageIndex":0},{"imageOffset":184348,"imageIndex":0},{"imageOffset":5816,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":7},{"imageOffset":2952,"symbol":"thread_start","symbolLocation":8,"imageIndex":7}]},{"id":9161764,"name":"openrc-run.sh-6","frames":[{"imageOffset":5496,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":2},{"imageOffset":32888,"symbol":"_pthread_cond_wait","symbolLocation":1232,"imageIndex":7},{"imageOffset":337988,"imageIndex":0},{"imageOffset":337428,"imageIndex":0},{"imageOffset":203304,"imageIndex":0},{"imageOffset":205068,"imageIndex":0},{"imageOffset":172736,"imageIndex":0},{"imageOffset":182396,"imageIndex":0},{"imageOffset":184348,"imageIndex":0},{"imageOffset":5816,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":7},{"imageOffset":2952,"symbol":"thread_start","symbolLocation":8,"imageIndex":7}]},{"id":9161787,"name":"supervise-da-24","frames":[{"imageOffset":10740,"symbol":"__openat","symbolLocation":8,"imageIndex":2},{"imageOffset":12684,"symbol":"openat","symbolLocation":40,"imageIndex":2},{"imageOffset":268800,"imageIndex":0},{"imageOffset":273192,"imageIndex":0},{"imageOffset":262956,"imageIndex":0},{"imageOffset":240352,"imageIndex":0},{"imageOffset":172736,"imageIndex":0},{"imageOffset":182396,"imageIndex":0},{"imageOffset":184348,"imageIndex":0},{"imageOffset":5816,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":7},{"imageOffset":2952,"symbol":"thread_start","symbolLocation":8,"imageIndex":7}]},{"id":9161788,"name":"supervise-da-25","frames":[{"imageOffset":7336,"symbol":"__psynch_mutexwait","symbolLocation":8,"imageIndex":2},{"imageOffset":8468,"symbol":"_pthread_mutex_firstfit_lock_wait","symbolLocation":84,"imageIndex":7},{"imageOffset":37656,"symbol":"_pthread_mutex_firstfit_lock_slow","symbolLocation":248,"imageIndex":7},{"imageOffset":262876,"imageIndex":0},{"imageOffset":191336,"imageIndex":0},{"imageOffset":197304,"imageIndex":0},{"imageOffset":172736,"imageIndex":0},{"imageOffset":182396,"imageIndex":0},{"imageOffset":184348,"imageIndex":0},{"imageOffset":5816,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":7},{"imageOffset":2952,"symbol":"thread_start","symbolLocation":8,"imageIndex":7}]},{"id":9161789,"name":"eend-26","frames":[{"imageOffset":7336,"symbol":"__psynch_mutexwait","symbolLocation":8,"imageIndex":2},{"imageOffset":8468,"symbol":"_pthread_mutex_firstfit_lock_wait","symbolLocation":84,"imageIndex":7},{"imageOffset":37656,"symbol":"_pthread_mutex_firstfit_lock_slow","symbolLocation":248,"imageIndex":7},{"imageOffset":262876,"imageIndex":0},{"imageOffset":240352,"imageIndex":0},{"imageOffset":172736,"imageIndex":0},{"imageOffset":182396,"imageIndex":0},{"imageOffset":184348,"imageIndex":0},{"imageOffset":5816,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":7},{"imageOffset":2952,"symbol":"thread_start","symbolLocation":8,"imageIndex":7}]},{"id":9161815,"frames":[{"imageOffset":2932,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":7}]}],
  "usedImages" : [
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 4302602240,
    "size" : 851968,
    "uuid" : "2a99d6cb-ac41-3e05-92cc-5dc09e7044dc",
    "path" : "\/private\/var\/containers\/Bundle\/Application\/2E1B99D3-0D3E-4958-A1CC-0BF92935322B\/iSH-AOK.app\/iSH-AOK",
    "name" : "iSH-AOK"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 4308402176,
    "size" : 49152,
    "uuid" : "7e77fc54-1c33-31c0-86e8-1fb7bf12836c",
    "path" : "\/private\/preboot\/Cryptexes\/OS\/usr\/lib\/libobjc-trampolines.dylib",
    "name" : "libobjc-trampolines.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 7616798720,
    "size" : 229352,
    "uuid" : "681b06a0-7f6b-3fa3-a2ce-063dc1da7b1b",
    "path" : "\/usr\/lib\/system\/libsystem_kernel.dylib",
    "name" : "libsystem_kernel.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6560100352,
    "size" : 4096000,
    "uuid" : "a900b459-0127-379e-9cba-0eab9c5d559f",
    "path" : "\/System\/Library\/Frameworks\/CoreFoundation.framework\/CoreFoundation",
    "name" : "CoreFoundation"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 7555805184,
    "size" : 36864,
    "uuid" : "cd8d7195-14e1-3c7c-a8c9-50ccea9f2a17",
    "path" : "\/System\/Library\/PrivateFrameworks\/GraphicsServices.framework\/GraphicsServices",
    "name" : "GraphicsServices"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6594109440,
    "size" : 25317376,
    "uuid" : "7d57a1d1-856f-338d-97db-880c4ec8b02e",
    "path" : "\/System\/Library\/PrivateFrameworks\/UIKitCore.framework\/UIKitCore",
    "name" : "UIKitCore"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 7086075904,
    "size" : 547412,
    "uuid" : "c3fc2ee4-367f-3086-beb8-420ad442bf88",
    "path" : "\/usr\/lib\/dyld",
    "name" : "dyld"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 8168869888,
    "size" : 49140,
    "uuid" : "aa302f5a-ffe5-327a-a003-3b288b935de1",
    "path" : "\/usr\/lib\/system\/libsystem_pthread.dylib",
    "name" : "libsystem_pthread.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6462312448,
    "size" : 9297920,
    "uuid" : "1715de5d-0893-3af0-b0c0-550bb14f91ec",
    "path" : "\/System\/Library\/Frameworks\/Foundation.framework\/Foundation",
    "name" : "Foundation"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6886506496,
    "size" : 24219648,
    "uuid" : "9840b0ef-5a92-3bcf-97fc-f8f58aa14d39",
    "path" : "\/System\/Library\/Frameworks\/JavaScriptCore.framework\/JavaScriptCore",
    "name" : "JavaScriptCore"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6682865664,
    "size" : 516084,
    "uuid" : "073251d1-d4c9-3774-8cee-75210751a5d8",
    "path" : "\/usr\/lib\/system\/libsystem_c.dylib",
    "name" : "libsystem_c.dylib"
  }
],
  "sharedCache" : {
  "base" : 6442500096,
  "size" : 3021537280,
  "uuid" : "d552bb62-3507-3f32-88b8-e0c065c2b299"
},
  "vmSummary" : "ReadOnly portion of Libraries: Total=854.9M resident=0K(0%) swapped_out_or_unallocated=854.9M(100%)\nWritable regions: Total=830.0M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=830.0M(100%)\n\n                                VIRTUAL   REGION \nREGION TYPE                        SIZE    COUNT (non-coalesced) \n===========                     =======  ======= \nActivity Tracing                   256K        1 \nCG raster data                     656K        9 \nColorSync                           64K        4 \nCoreAnimation                      192K       11 \nFoundation                          16K        1 \nKernel Alloc Once                   32K        1 \nMALLOC                           589.8M      117 \nMALLOC guard page                  128K        8 \nSQLite page cache                  896K        7 \nSTACK GUARD                        272K       17 \nStack                             9712K       17 \nVM_ALLOCATE                       1840K      107 \nVM_ALLOCATE (reserved)             304K       17         reserved VM address space (unallocated)\nWebKit Malloc                    192.1M        6 \nWebKit Malloc (reserved)          32.0M        1         reserved VM address space (unallocated)\n__AUTH                            1636K      192 \n__AUTH_CONST                      22.1M      535 \n__CTF                               824        1 \n__DATA                            11.2M      530 \n__DATA_CONST                      26.5M      541 \n__DATA_DIRTY                      5100K      504 \n__FONT_DATA                        2352        1 \n__INFO_FILTER                         8        1 \n__LINKEDIT                       319.1M        3 \n__OBJC_RO                         79.8M        1 \n__OBJC_RW                         2465K        1 \n__TEXT                           535.8M      552 \ndyld private memory                272K        1 \nmapped file                      253.9M      129 \nshared memory                       48K        3 \n===========                     =======  ======= \nTOTAL                              2.0G     3319 \nTOTAL, minus reserved VM space     2.0G     3319 \n",
  "legacyInfo" : {
  "threadTriggered" : {
    "name" : "login-3",
    "queue" : "com.apple.main-thread"
  }
},
  "logWritingSignature" : "314f73bbd363e93a5d095579acb86da7e23a4d58",
  "trialInfo" : {
  "rollouts" : [
    {
      "rolloutId" : "6081eda9c724863038027c4f",
      "factorPackIds" : {
        "BIFROST_PROD_2" : "645c03f71fb64129b5d04b99"
      },
      "deploymentId" : 240001025
    },
    {
      "rolloutId" : "639124e81d92412bfb4880b3",
      "factorPackIds" : {

      },
      "deploymentId" : 240000012
    }
  ],
  "experiments" : [
    {
      "treatmentId" : "0cdf1409-55b3-42a7-9c37-ff01c16f65c1",
      "experimentId" : "6466b966fb9e34345ea81fcb",
      "deploymentId" : 400000020
    },
    {
      "treatmentId" : "3a3cf641-8471-4e4e-9ad4-81d0ede970fd",
      "experimentId" : "64a84dae90d82611a0bd7d3d",
      "deploymentId" : 400000010
    }
  ]
}
}

Option to disable background run

I am wondering if there is a option to disable backgrounding... I know that I can simply disable location services.. But that results in a "ish-AOK has crashed." pop-up. Thanks

Request: Allow the user to choose for a minimal installation with OpenRC and iSH-AOK improvements.

Right now in packages the default setup on the AOK default rootfs is 100 MB, it includes things that users may not need like GNU features, sudo and shadow and util-linux and bash and zsh and tmux and openssh.

The user should be able to choose groups to be installed. A minimal one would contain the necessary Alpine packages and the shell scripts and OpenRC and the patches.

The other problem that the Alpine version is very out of date. Alpine only provides security updates to the newest release avaiable.

Many users including my self have no problem with recent or semi recent versions of Alpine.

Newcomers just starting with AOK, the following issues are unresolved, making it difficult to proceed

AOK was just used and encountered several issues, preventing further usage:

  1. When installing the Debian system, the installation of Emacs froze midway.
    #160 (comment)
  2. After reinstalling Debian, upon completing the new installation, even running 'apt-get update' resulted in an error. Surprisingly, the 'ncurses-term' package could neither be updated nor uninstalled, presenting an unresolved issue.
  3. To overcome this, I installed Debian in iSH and installed Emacs, then imported it back into AOK to proceed. However, after using Emacs for a few minutes and exiting, the command line disappeared, rendering it unusable. I had to swipe up to exit AOK and re-enter.
    .........

Unpacking ncurses-term (6.1+20181013-2+deb10u4) over (6.1+20181013-2+deb10u3) ...
dpkg: error processing archive /var/cache/apt/archives/ncurses-term_6.1+20181013-2+deb10u4_all.deb (--unpack):
unable to securely remove '/usr/share/terminfo/v/vt510pc.dpkg-new': No such file or directory
Errors were encountered while processing:
/var/cache/apt/archives/ncurses-term_6.1+20181013-2+deb10u4_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.