You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+88-16Lines changed: 88 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@
4
4
5
5
A monitor solution for jailbroken iOS devices. The core goal of this project is to make sure a specific iOS application is constantly running without needed to use Single App Mode (SAM) or Guided Access Mode (GAM).
6
6
7
-
A `./bin/setup` script is included to help with initial configuration of a jailbroken device.
7
+
A script, `./bin/setup`, is included to help with initial configuration of a jailbroken device.
8
8
9
9
Lastly, in the future I would like to include a way to handle updates for the various components.
10
10
@@ -17,44 +17,73 @@ If you only care about the monitoring component from this repo you can grab the
17
17
1. Run `dpkg -i com.github.clburlison.dmon-XXX.deb`
18
18
1. The LaunchDaemon service will now monitor to make sure all components are properly running
19
19
20
+
## Prerequisites
21
+
22
+
- A Mac
23
+
- A jailbroken iPhone that is supervised
24
+
- Apple Command Line Tools (`xcode-select --install`)
- Optional but **highly recommend** creating a ssh keypair
27
+
- Setup your ssh config entry. This makes your life much easier as ssh sessions can be remembered.
28
+
29
+
```sh
30
+
cat ~/.ssh/config
31
+
Host iphone
32
+
HostName localhost
33
+
User root
34
+
Port 2222
35
+
StrictHostKeyChecking no
36
+
37
+
Host *
38
+
ControlMaster auto
39
+
ControlPath /tmp/%r@%h:%p
40
+
ControlPersist 1800
41
+
```
42
+
20
43
## Getting started
21
44
22
45
It is assumed you know your way around a command line. All commands are run on your computer connected to a single iOS device. While it is possible to do some of this manually on a jailbroken iOS device that is pron to human error.
23
46
24
47
1. Grab a valid iOS 14+ device and jailbreak it: https://ios.cfw.guide/get-started/select-iphone/
25
-
1. Clone this git repo
48
+
1. Clone this git repo.
26
49
27
50
```sh
28
51
git clone https://github.com/clburlison/dmon
29
52
```
30
53
31
-
1. Change directory into the freshly cloned repo
54
+
1. Change directory into the freshly cloned repo.
32
55
33
56
```sh
34
57
cd dmon
35
58
```
36
59
37
-
1. Create a `config.json` at the root of this repo with the correct values
60
+
1. Create a `config.json` at the root of this repo with the correct values.
61
+
62
+
Make sure to remove all `// comments` before saving. They are not valid json!
"dmon_url": "https://YOUR_URL:PORT/path/", // Url to download update files from
69
+
"dmon_username": "username", // Basic Auth username. Leave empty if not used
70
+
"dmon_password": "password"// Basic Auth password. Leave empty if not used
43
71
}
44
72
```
45
73
46
-
1. Download any extra .deb files you want installed into the `./debs/` directory. These are installed based on file name IE 01_foobar.deb, 02_curl.deb, etc.
47
-
48
-
> Substitute is installed as part of the `setup` script
74
+
1. Download any extra .deb files you want installed into the `./debs/` directory.
1. Connect your iOS device to your computer via USB
67
-
1. Open Terminal and run (remember to only have one phone connected)
95
+
1. Connect your iOS device to your computer via USB.
96
+
1. Open Terminal and run (remember to only have one phone connected).
68
97
69
98
```sh
70
99
# Alteratively you can pass -u <device-uuid> if multiple phones are connected
@@ -75,13 +104,14 @@ It is assumed you know your way around a command line. All commands are run on y
75
104
76
105
```sh
77
106
ssh root@localhost -p 2222 # default password is 'alpine'
107
+
# Now disconnect with: Control + d
78
108
```
79
109
80
-
1.In a third terminal window run:
110
+
1.Now run:
81
111
82
112
```sh
83
113
./bin/setup
84
-
# If you want to setup passwordless ssh then pass the argument with the path to your key
114
+
# If you want to setup passwordless ssh then pass the argument with the path to your public key
85
115
./bin/setup -s ~/.ssh/main.pub
86
116
```
87
117
@@ -97,9 +127,51 @@ Bonus items that are out of scope for this project.
97
127
98
128
- All testing has been completed with iOS 15 using palera1n
99
129
- Only confirmed on older A9 processors aka iPhone SE first gen
100
-
- DEB Package is build on macOS Ventura
130
+
- DEB Package is built on macOS Ventura
131
+
132
+
## Commonly asked questions
133
+
134
+
### Why didn't you use Theos to build the deb?
135
+
136
+
I was expecting to add a few external compiled binaries and didn't want to read a ton of documentation. Things changed and now I'm too lazy to rewrite.
It is a flat structure. You can use nginx, apache, caddy, python, node, etc. Your files should be named like this:
151
+
152
+
```sh
153
+
top_level_folder
154
+
├── gc.deb
155
+
├── pogo.ipa
156
+
└── version.txt
157
+
```
158
+
159
+
Then in your config point `dmon_url` to `http://HOSTNAME:PORT/top_level_folder`.
160
+
161
+
### Why did you reuse the existing `config.json`?
162
+
163
+
This isn't a pure solution. I am lazy. Now bugger off.
164
+
165
+
### Why didn't you include the debs I need?
166
+
167
+
I don't have the original authors permissions to upload their files.
168
+
169
+
### Why is my https url not working?
170
+
171
+
We are using the stock CA Certificates installed as part of the iOS jailbreak. The Procursus Team placed files in `/usr/lib/ssl/cacert.pem` and I figured it would be safe to keep using them. Those root certs might have expired and need an update.
101
172
102
173
## References
103
174
104
175
-[dm.pl](https://github.com/theos/dm.pl)
176
+
-[theos](https://theos.dev)
105
177
-[appknox/Open](https://github.com/appknox/Open) which was originally from [conradev/Open](https://github.com/conradev/Open)
0 commit comments