Skip to content

Commit 4db085a

Browse files
fix. terminal in fdroid flavour
1 parent d6a8322 commit 4db085a

File tree

5 files changed

+70
-32
lines changed

5 files changed

+70
-32
lines changed

package-lock.json

Lines changed: 1 addition & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
},
3737
"cordova-plugin-websocket": {},
3838
"cordova-plugin-buildinfo": {},
39-
"com.foxdebug.acode.rk.exec.proot": {},
4039
"cordova-plugin-system": {},
4140
"com.foxdebug.acode.rk.exec.terminal": {}
4241
},
@@ -64,7 +63,6 @@
6463
"@types/url-parse": "^1.4.11",
6564
"autoprefixer": "^10.4.19",
6665
"babel-loader": "^9.1.3",
67-
"com.foxdebug.acode.rk.exec.proot": "file:src/plugins/proot",
6866
"com.foxdebug.acode.rk.exec.terminal": "file:src/plugins/terminal",
6967
"cordova-android": "^13.0.0",
7068
"cordova-clipboard": "^1.3.0",

src/plugins/terminal/scripts/init-alpine.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ fi
3333
ln -sf /bin/bash /bin/login
3434

3535
if [ "$1" = "--installing" ]; then
36+
mkdir -p $PREFIX/.configured
3637
echo "Installation completed."
3738
exit 0
3839
fi

src/plugins/terminal/scripts/init-sandbox.sh

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,35 @@
11
export LD_LIBRARY_PATH=$PREFIX
22
export PROOT_TMP_DIR=$PREFIX/tmp
33

4+
mkdir -p "$PREFIX/tmp"
45

5-
if [ -f "$NATIVE_DIR/libproot.so" ]; then
6-
export PROOT_LOADER="$NATIVE_DIR/libproot.so"
7-
fi
6+
if [ "$FDROID" = "true" ]; then
87

9-
if [ -f "$NATIVE_DIR/libproot32.so" ]; then
10-
export PROOT_LOADER32="$NATIVE_DIR/libproot32.so"
11-
fi
8+
if [ -f "$PREFIX/libproot.so" ]; then
9+
export PROOT_LOADER="$PREFIX/libproot.so"
10+
fi
11+
12+
if [ -f "$PREFIX/libproot32.so" ]; then
13+
export PROOT_LOADER32="$PREFIX/libproot32.so"
14+
fi
1215

13-
mkdir -p "$PREFIX/tmp"
1416

15-
if [ "$FDROID" = "true" ]; then
1617
export PROOT="$PREFIX/libproot-xed.so"
17-
chmod +x $PROOT
18-
chmod +x $PREFIX/libtalloc.so.2
18+
chmod +x $PREFIX/*
1919
else
20+
if [ -f "$NATIVE_DIR/libproot.so" ]; then
21+
export PROOT_LOADER="$NATIVE_DIR/libproot.so"
22+
fi
23+
24+
if [ -f "$NATIVE_DIR/libproot32.so" ]; then
25+
export PROOT_LOADER32="$NATIVE_DIR/libproot32.so"
26+
fi
27+
28+
2029
if [ -e "$PREFIX/libtalloc.so.2" ] || [ -L "$PREFIX/libtalloc.so.2" ]; then
2130
rm "$PREFIX/libtalloc.so.2"
2231
fi
32+
2333
ln -s "$NATIVE_DIR/libtalloc.so" "$PREFIX/libtalloc.so.2"
2434
export PROOT="$NATIVE_DIR/libproot-xed.so"
2535
fi

src/plugins/terminal/www/Terminal.js

Lines changed: 48 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -107,18 +107,25 @@ const Terminal = {
107107
let axsUrl;
108108
let prootUrl;
109109
let libTalloc;
110+
let libproot = null;
111+
let libproot32 = null;
110112

111113
if (arch === "arm64-v8a") {
114+
libproot = "https://raw.githubusercontent.com/Acode-Foundation/Acode/main/src/plugins/proot/libs/arm64/libproot.so";
115+
libproot32 = "https://raw.githubusercontent.com/Acode-Foundation/Acode/main/src/plugins/proot/libs/arm64/libproot32.so";
112116
libTalloc = "https://raw.githubusercontent.com/Acode-Foundation/Acode/main/src/plugins/proot/libs/arm64/libtalloc.so";
113117
prootUrl = "https://raw.githubusercontent.com/Acode-Foundation/Acode/main/src/plugins/proot/libs/arm64/libproot-xed.so";
114118
axsUrl = `https://github.com/bajrangCoder/acodex_server/releases/latest/download/axs-musl-android-arm64`;
115119
alpineUrl = "https://dl-cdn.alpinelinux.org/alpine/v3.21/releases/aarch64/alpine-minirootfs-3.21.0-aarch64.tar.gz";
116120
} else if (arch === "armeabi-v7a") {
121+
libproot = "https://raw.githubusercontent.com/Acode-Foundation/Acode/main/src/plugins/proot/libs/arm32/libproot.so";
117122
libTalloc = "https://raw.githubusercontent.com/Acode-Foundation/Acode/main/src/plugins/proot/libs/arm32/libtalloc.so";
118123
prootUrl = "https://raw.githubusercontent.com/Acode-Foundation/Acode/main/src/plugins/proot/libs/arm32/libproot-xed.so";
119124
axsUrl = `https://github.com/bajrangCoder/acodex_server/releases/latest/download/axs-musl-android-armv7`;
120125
alpineUrl = "https://dl-cdn.alpinelinux.org/alpine/v3.21/releases/armhf/alpine-minirootfs-3.21.0-armhf.tar.gz";
121126
} else if (arch === "x86_64") {
127+
libproot = "https://raw.githubusercontent.com/Acode-Foundation/Acode/main/src/plugins/proot/libs/x64/libproot.so";
128+
libproot32 = "https://raw.githubusercontent.com/Acode-Foundation/Acode/main/src/plugins/proot/libs/x64/libproot32.so";
122129
libTalloc = "https://raw.githubusercontent.com/Acode-Foundation/Acode/main/src/plugins/proot/libs/x64/libtalloc.so";
123130
prootUrl = "https://raw.githubusercontent.com/Acode-Foundation/Acode/main/src/plugins/proot/libs/x64/libproot-xed.so";
124131
axsUrl = `https://github.com/bajrangCoder/acodex_server/releases/latest/download/axs-musl-android-x86_64`;
@@ -166,6 +173,27 @@ const Terminal = {
166173
resolve, reject
167174
);
168175
});
176+
177+
if (libproot != null) {
178+
await new Promise((resolve, reject) => {
179+
cordova.plugin.http.downloadFile(
180+
libproot, {}, {},
181+
cordova.file.dataDirectory + "libproot.so",
182+
resolve, reject
183+
);
184+
});
185+
}
186+
187+
if (libproot32 != null) {
188+
await new Promise((resolve, reject) => {
189+
cordova.plugin.http.downloadFile(
190+
libproot32, {}, {},
191+
cordova.file.dataDirectory + "libproot32.so",
192+
resolve, reject
193+
);
194+
});
195+
}
196+
169197
}
170198

171199
logger("✅ All downloads completed");
@@ -198,9 +226,9 @@ const Terminal = {
198226
return installResult;
199227

200228
} catch (e) {
201-
err_logger("Installation failed:", e);
202-
console.error("Installation failed:", e);
203-
return false;
229+
err_logger("Installation failed:", e);
230+
console.error("Installation failed:", e);
231+
return false;
204232
}
205233
},
206234

@@ -232,7 +260,13 @@ const Terminal = {
232260
}, reject);
233261
});
234262

235-
resolve(alpineExists && downloaded && extracted);
263+
const configured = alpineExists && await new Promise((resolve, reject) => {
264+
system.fileExists(`${filesDir}/.configured`, false, (result) => {
265+
resolve(result == 1);
266+
}, reject);
267+
});
268+
269+
resolve(alpineExists && downloaded && extracted && configured);
236270
});
237271
},
238272

@@ -358,10 +392,10 @@ const Terminal = {
358392
* console.error(`Uninstall failed: ${error}`);
359393
* }
360394
*/
361-
uninstall(){
395+
uninstall() {
362396
return new Promise(async (resolve, reject) => {
363-
if(await this.isAxsRunning()){
364-
await this.stopAxs()
397+
if (await this.isAxsRunning()) {
398+
await this.stopAxs();
365399
}
366400

367401
const cmd = `
@@ -378,13 +412,13 @@ const Terminal = {
378412
done
379413
380414
echo "ok"
381-
`
382-
const result = await Executor.execute(cmd)
383-
if(result === "ok"){
384-
resolve(result)
385-
}else{
386-
reject(result)
387-
}
415+
`;
416+
const result = await Executor.execute(cmd);
417+
if (result === "ok") {
418+
resolve(result);
419+
} else {
420+
reject(result);
421+
}
388422
});
389423
}
390424
};

0 commit comments

Comments
 (0)