feat: support non-rooted device
This commit is contained in:
parent
e02d6c15ec
commit
a18b87fa61
0
apps/lutris/discord_rpc.sh
Executable file → Normal file
0
apps/lutris/discord_rpc.sh
Executable file → Normal file
0
apps/lutris/enable-picom-ingame.sh
Executable file → Normal file
0
apps/lutris/enable-picom-ingame.sh
Executable file → Normal file
0
apps/lutris/preloader.sh
Executable file → Normal file
0
apps/lutris/preloader.sh
Executable file → Normal file
0
apps/proxytext/proxytext-wrapper.sh
Executable file → Normal file
0
apps/proxytext/proxytext-wrapper.sh
Executable file → Normal file
0
apps/spotify/wine/install-blockthespot.sh
Executable file → Normal file
0
apps/spotify/wine/install-blockthespot.sh
Executable file → Normal file
0
apps/spotify/wine/soggfy.sh
Executable file → Normal file
0
apps/spotify/wine/soggfy.sh
Executable file → Normal file
@ -4,43 +4,61 @@
|
|||||||
|
|
||||||
### Notes
|
### 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 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)
|
- 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`
|
- 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`
|
> 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:
|
```shell
|
||||||
|
|
||||||
```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 ~
|
|
||||||
git clone https://github.com/NetrisTV/ws-scrcpy
|
git clone https://github.com/NetrisTV/ws-scrcpy
|
||||||
cd ./ws-scrcpy
|
cd ./ws-scrcpy
|
||||||
|
export GYP_DEFINES="android_ndk_path=''"
|
||||||
npm install
|
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
|
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
|
||||||
|
> ```
|
@ -11,6 +11,12 @@ from shutil import which
|
|||||||
|
|
||||||
APP_UUID="a6db95c2-27db-4b88-a687-c8107d1bc9d6"
|
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()):
|
def Popen(args: list | str, root=False, shell=False, cwd=Path.cwd()):
|
||||||
if root:
|
if root:
|
||||||
if shell:
|
if shell:
|
||||||
@ -120,6 +126,10 @@ def main():
|
|||||||
show_notification("Checking for current adb port...")
|
show_notification("Checking for current adb port...")
|
||||||
adb_port = None
|
adb_port = None
|
||||||
try:
|
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")
|
adb_port = get_port_from_process_name("adbd")
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
0
games/lol/linux/discord_rpc.sh
Executable file → Normal file
0
games/lol/linux/discord_rpc.sh
Executable file → Normal file
0
games/lol/linux/garena_wrapper.sh
Executable file → Normal file
0
games/lol/linux/garena_wrapper.sh
Executable file → Normal file
0
games/lol/linux/sulaunchhelper2.sh
Executable file → Normal file
0
games/lol/linux/sulaunchhelper2.sh
Executable file → Normal file
0
games/lol/linux/syscall_check.sh
Executable file → Normal file
0
games/lol/linux/syscall_check.sh
Executable file → Normal file
0
os/linux/automount.py
Executable file → Normal file
0
os/linux/automount.py
Executable file → Normal file
31
userscripts/ferdium/vencord.user.js
Normal file
31
userscripts/ferdium/vencord.user.js
Normal 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());
|
Loading…
Reference in New Issue
Block a user