feat: support non-rooted device

This commit is contained in:
tretrauit 2024-07-01 20:36:33 +07:00
parent e02d6c15ec
commit a18b87fa61
14 changed files with 84 additions and 25 deletions

0
apps/lutris/discord_rpc.sh Executable file → Normal file
View File

0
apps/lutris/enable-picom-ingame.sh Executable file → Normal file
View File

0
apps/lutris/preloader.sh Executable file → Normal file
View File

0
apps/proxytext/proxytext-wrapper.sh Executable file → Normal file
View File

0
apps/spotify/wine/install-blockthespot.sh Executable file → Normal file
View File

0
apps/spotify/wine/soggfy.sh Executable file → Normal file
View File

View File

@ -4,43 +4,61 @@
### Notes
- **YOU NEED TO HAVE WS-SCRCPY INSTALLED, ALONG WITH ROOT ACCESS AND DEPENDENCIES**
- **YOU NEED TO HAVE WS-SCRCPY INSTALLED, ALONG WITH DEPENDENCIES**
- ~~YOU ALSO NEED TO OPEN ADB WIRELESS IN DEVELOPER SETTINGS FOR THIS TO WORK~~ (The script can use `su` to start ADB wireless now)
- You need to grant Termux:API full Location permission and set to "Always" (Foreground mode will not work correctly)
- Rootless mode is available, although it **will not** work in most cases.
- Rootless mode is available, although you'll have to start the ADB server yourself.
- Dependencies: `root-repo` `tsu` `moreutils` `build-essential` `nodejs` `python3` `android-tools` `git` `termux-api`
> Or execute `pkg install root-repo tsu moreutils build-essential nodejs python3 android-tools git termux-api`
- You also need to downgrade npm to version 6 to fix Termux problem: `npm install -g npm@6`
### Installation
> Please ignore the vulnerability message, if you care about it then please don't use this script.
0. Install ws-scrcpy:
- Download ws-scrcpy-launcher.py:
```bash
curl -OL https://gitlab.com/tretrauit/scripts/-/raw/main/Apps/ws-scrcpy/ws-scrcpy-launcher.py
chmod +x ws-scrcpy-launcher.py
```
> Execute `./ws-scrcpy-launcher.py` to launch ws-scrcpy with scrcpy server for local device.
- Full script for lazy people (including install ws-scrcpy steps):
```bash
pkg update
pkg install root-repo moreutils build-essential nodejs python3 android-tools git
pkg install tsu
npm install -g npm@6
cd ~
```shell
git clone https://github.com/NetrisTV/ws-scrcpy
cd ./ws-scrcpy
export GYP_DEFINES="android_ndk_path=''"
npm install
cd ..
curl -OL https://gitlab.com/tretrauit/scripts/-/raw/main/Apps/ws-scrcpy/ws-scrcpy-launcher.py
```
1. Download ws-scrcpy-launcher.py:
```shell
curl -OL https://git.tretrauit.me/tretrauit/scripts/raw/branch/main/apps/ws-scrcpy/ws-scrcpy-launcher.py
chmod +x ws-scrcpy-launcher.py
```
- The script will tell you to wait for ws-scrcpy to start, and when it starts it'll show the started message with the ip address and the port to access using browsers
2. Execute `./ws-scrcpy-launcher.py` to launch ws-scrcpy with scrcpy server for local device.
> You need to use `adb pair` to pair termux with your device adb server, then you can launch ws-scrcpy as explained above.
> The script will tell you to wait for ws-scrcpy to start, and when it starts it'll show the started message with the ip address and the port to access using browsers
#### Android 11 and above (where true wireless debugging is available)
You need to use `adb pair` to pair termux with your device adb server, then you can launch ws-scrcpy as explained above.
#### Below Android 11
You'll have to use your PC to restart ADB in TCP mode with:
```shell
adb tcpip 5555
```
Then after that you can launch ws-scrcpy as explained above.
> Full script for lazy people (including install ws-scrcpy steps):
>
> ```shell
> pkg update
> pkg install root-repo moreutils build-essential nodejs python3 android-tools git termux-api
> pkg install tsu
> cd ~
> git clone https://github.com/NetrisTV/ws-scrcpy
> cd ./ws-scrcpy
> export GYP_DEFINES="android_ndk_path=''"
> npm install
> cd ..
> curl -OL https://git.tretrauit.me/tretrauit/scripts/raw/branch/main/apps/ws-scrcpy/ws-scrcpy-launcher.py
> chmod +x ws-scrcpy-launcher.py
> ```

View File

@ -11,6 +11,12 @@ from shutil import which
APP_UUID="a6db95c2-27db-4b88-a687-c8107d1bc9d6"
def is_root_available():
output = subprocess.check_output(['su', '-c', 'echo', '"iamgroot"']).decode("utf-8").strip()
if output == "iamgroot":
return True
return False
def Popen(args: list | str, root=False, shell=False, cwd=Path.cwd()):
if root:
if shell:
@ -120,6 +126,10 @@ def main():
show_notification("Checking for current adb port...")
adb_port = None
try:
if not is_root_available():
print("Root access is not available, assuming the port is 5555")
print("You'll have to start adbd manually as instructed in the README.md")
adb_port = 5555
adb_port = get_port_from_process_name("adbd")
except:
pass

0
games/lol/linux/discord_rpc.sh Executable file → Normal file
View File

0
games/lol/linux/garena_wrapper.sh Executable file → Normal file
View File

0
games/lol/linux/sulaunchhelper2.sh Executable file → Normal file
View File

0
games/lol/linux/syscall_check.sh Executable file → Normal file
View File

0
os/linux/automount.py Executable file → Normal file
View File

View File

@ -0,0 +1,31 @@
// Vencord polyfills for loading in Ferdium
function GM_xmlhttpRequest(details) {
var xhr = new XMLHttpRequest();
xhr.open(details.method, details.url, true, details.password);
xhr.responseType = details.responseType || 'text';
xhr.timeout = details.timeout || 0;
if (details.headers) {
for (const [name, value] of Object.entries(details.headers)) {
xhr.setRequestHeader(name, value);
}
}
// Events
xhr.onabort = details.onabort;
xhr.onerror = details.onerror;
xhr.onload = details.onload;
xhr.onloadend = details.onloadend;
xhr.onloadstart = details.onloadstart;
xhr.onprogress = details.onprogress;
xhr.onreadystatechange = details.onreadystatechange;
xhr.ontimeout = details.ontimeout;
// Missing fields: anonymous
xhr.send(details.data);
return {
abort: () => xhr.abort(),
}
}
window.GM_xmlhttpRequest = GM_xmlhttpRequest;
window.unsafeWindow = window;
document.head.innerHTML += `<meta http-equiv="Content-Security-Policy" content="default-src * self blob: data: gap:; style-src * self 'unsafe-inline' blob: data: gap:; script-src * 'self' 'unsafe-eval' 'unsafe-inline' blob: data: gap:; object-src * 'self' blob: data: gap:; img-src * self 'unsafe-inline' blob: data: gap:; connect-src self * 'unsafe-inline' blob: data: gap:; frame-src * self blob: data: gap:;">`;
eval(await (await fetch("https://raw.githubusercontent.com/Vencord/builds/main/Vencord.user.js")).text());