Merge Pull Request

pull/227/head
u 2 days ago
commit 069e2de75c

@ -7,25 +7,25 @@ Script to add GApps and other stuff to Waydroid!
## Interactive terminal interface ## Interactive terminal interface
``` ```
git clone https://github.com/casualsnek/waydroid_script git clone --depth 1 --single-branch https://github.com/huakim/waydroid_script
cd waydroid_script cd waydroid_script
python3 -m venv venv python3 -m venv venv
venv/bin/pip install -r requirements.txt venv/bin/pip install -r requirements.txt
sudo venv/bin/python3 main.py sudo venv/bin/python3 main.py
``` ```
![image-20230430013103883](assets/img/README/image-20230430013103883.png) ![image-20230430013103883](https://raw.githubusercontent.com/huakim/waydroid_script_assets/main/assets/img/README/image-20230430013103883.png)
![image-20230430013119763](assets/img/README/image-20230430013119763.png) ![image-20230430013119763](https://raw.githubusercontent.com/huakim/waydroid_script_assets/main/assets/img/README/image-20230430013119763.png)
![image-20230430013148814](assets/img/README/image-20230430013148814.png) ![image-20230430013148814](https://raw.githubusercontent.com/huakim/waydroid_script_assets/main//assets/img/README/image-20230430013148814.png)
## Command Line ## Command Line
```bash ```bash
git clone https://github.com/casualsnek/waydroid_script git clone --depth 1 --single-branch https://github.com/huakim/waydroid_script
cd waydroid_script cd waydroid_script
python3 -m venv venv python3 -m venv venv
venv/bin/pip install -r requirements.txt venv/bin/pip install -r requirements.txt
@ -42,18 +42,18 @@ sudo venv/bin/python3 main.py hack {nodataperm, hidestatusbar}
## Dependencies ## Dependencies
"lzip" is required for this script to work, install it using your distribution's package manager: "lzip" is required for this script to work, install it using your distribution's package manager:
### openSUSE, Gecko based distributions:
sudo zypper install lzip
### RHEL, Fedora and Rocky based distributions:
sudo dnf install lzip
### Arch, Manjaro and EndeavourOS based distributions: ### Arch, Manjaro and EndeavourOS based distributions:
sudo pacman -S lzip sudo pacman -S lzip
### Debian and Ubuntu based distributions: ### Debian and Ubuntu based distributions:
sudo apt install lzip sudo apt install lzip
### RHEL, Fedora and Rocky based distributions:
sudo dnf install lzip
### openSUSE based distributions:
sudo zypper install lzip
## Install OpenGapps ## Install OpenGapps
![](assets/1.png) ![](https://raw.githubusercontent.com/huakim/waydroid_script_assets/main/assets/1.png)
Open terminal and switch to the directory where "main.py" is located then run: Open terminal and switch to the directory where "main.py" is located then run:
@ -65,13 +65,13 @@ Then launch waydroid with:
After waydroid has finished booting, open terminal and switch to directory where "main.py" is located then run: After waydroid has finished booting, open terminal and switch to directory where "main.py" is located then run:
sudo python3 main.py google sudo venv/bin/python3 main.py certified
Copy the returned numeric ID, then open ["https://google.com/android/uncertified/?pli=1"](https://google.com/android/uncertified/?pli=1). Enter the ID and register it. Wait 10-20 minutes for device to get registered. Then clear Google Play Service's cache and try logging in! Copy the returned numeric ID, then open ["https://google.com/android/uncertified/?pli=1"](https://google.com/android/uncertified/?pli=1). Enter the ID and register it. Wait 10-20 minutes for device to get registered. Then clear Google Play Service's cache and try logging in!
## Install Magisk ## Install Magisk
![](assets/2.png) ![](https://raw.githubusercontent.com/huakim/waydroid_script_assets/main/assets/2.png)
Open terminal and switch to directory where "main.py" is located then run: Open terminal and switch to directory where "main.py" is located then run:
@ -81,7 +81,7 @@ Magisk will be installed on next boot!
Zygisk and modules like LSPosed should work now. Zygisk and modules like LSPosed should work now.
If you want to update Magisk, Please use `Direct Install into system partition` or run this sript again. If you want to update Magisk, Please use `Direct Install into system partition` or run this script again.
This script only focuses on Magisk installation, if you need more management, please check https://github.com/nitanmarcel/waydroid-magisk This script only focuses on Magisk installation, if you need more management, please check https://github.com/nitanmarcel/waydroid-magisk
@ -109,7 +109,7 @@ Open terminal and switch to directory where "main.py" is located then run:
## Integrate Widevine DRM (L3) ## Integrate Widevine DRM (L3)
![](assets/3.png) ![](https://raw.githubusercontent.com/huakim/waydroid_script_assets/main/assets/3.png)
Open terminal and switch to directory where "main.py" is located then run: Open terminal and switch to directory where "main.py" is located then run:
@ -117,8 +117,8 @@ Open terminal and switch to directory where "main.py" is located then run:
## Install Smart Dock ## Install Smart Dock
![](assets/4.png) ![](https://raw.githubusercontent.com/huakim/waydroid_script_assets/main/assets/4.png)
![](assets/5.png) ![](https://raw.githubusercontent.com/huakim/waydroid_script_assets/main/assets/5.png)
Open terminal and switch to directory where "main.py" is located then run: Open terminal and switch to directory where "main.py" is located then run:
@ -137,7 +137,7 @@ This is a temporary hack to combat against the apps permission issue on Android
Arknights, PUNISHING: GRAY RAVEN and other games won't freeze on the black screen. Arknights, PUNISHING: GRAY RAVEN and other games won't freeze on the black screen.
![](assets/6.png) ![](https://raw.githubusercontent.com/huakim/waydroid_script_assets/main/assets/6.png)
Open terminal and switch to directory where "main.py" is located then run: Open terminal and switch to directory where "main.py" is located then run:
@ -163,7 +163,7 @@ chmod 777 -R /mnt/*/*/*/*/Android/obb
## Install microG, Aurora Store and Aurora Droid ## Install microG, Aurora Store and Aurora Droid
![](assets/7.png) ![](https://raw.githubusercontent.com/huakim/waydroid_script_assets/main/assets/7.png)
``` ```
sudo venv/bin/python3 main.py install microg sudo venv/bin/python3 main.py install microg
@ -171,10 +171,10 @@ sudo venv/bin/python3 main.py install microg
## Hide Status Bar ## Hide Status Bar
Before Before
![Before](assets/8.png) ![Before](https://raw.githubusercontent.com/huakim/waydroid_script_assets/main/assets/8.png)
After After
![After](assets/9.png) ![After](https://raw.githubusercontent.com/huakim/waydroid_script_assets/main/assets/9.png)
``` ```
sudo venv/bin/python3 main.py hack hidestatusbar sudo venv/bin/python3 main.py hack hidestatusbar

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 344 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 321 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 348 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 590 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 665 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

@ -1,22 +1,4 @@
with (import <nixpkgs> {}); let
pkgs = import <nixpkgs> {};
stdenv.mkDerivation { in
name = "waydroid_script"; pkgs.callPackage ./package.nix { }
buildInputs = [
(python3.withPackages(ps: with ps; [ tqdm requests inquirerpy ]))
];
src = ./.;
postPatch = ''
patchShebangs main.py
'';
installPhase = ''
mkdir -p $out/libexec
cp -r . $out/libexec/waydroid_script
mkdir -p $out/bin
ln -s $out/libexec/waydroid_script/main.py $out/bin/waydroid_script
'';
}

@ -0,0 +1,41 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1707650010,
"narHash": "sha256-dOhphIA4MGrH4ElNCy/OlwmN24MsnEqFjRR6+RY7jZw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "809cca784b9f72a5ad4b991e0e7bcf8890f9c3a6",
"type": "github"
},
"original": {
"id": "nixpkgs",
"type": "indirect"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs",
"systems": "systems"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

@ -0,0 +1,21 @@
{
description = "Waydroid Extras Script";
inputs = {
systems.url = "github:nix-systems/default";
};
outputs = { self, nixpkgs, systems }:
let
inherit (nixpkgs) lib;
eachSystem = lib.genAttrs (import systems);
mkApp = program: { type = "app"; inherit program; };
in {
packages = eachSystem (system: rec {
waydroid_script = nixpkgs.legacyPackages."${system}".callPackage ./package.nix { };
default = waydroid_script;
});
apps = eachSystem (system: rec {
waydroid_script = mkApp "${self.outputs.packages.${system}.waydroid_script}/bin/waydroid_script";
default = waydroid_script;
});
};
}

@ -1,7 +1,10 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
from InquirerPy import inquirer try:
from InquirerPy.base.control import Choice from InquirerPy import inquirer
from InquirerPy.separator import Separator from InquirerPy.base.control import Choice
from InquirerPy.separator import Separator
except ModuleNotFoundError:
inquirer = None
import argparse import argparse
import os import os
from typing import List from typing import List
@ -21,45 +24,29 @@ from stuff.fdroidpriv import FDroidPriv
import tools.helper as helper import tools.helper as helper
from tools import container from tools import container
from tools import images from tools import images
import argparse
from tools.logger import Logger from tools.logger import Logger
def get_certified():
def get_certified(args):
AndroidId().get_id() AndroidId().get_id()
def mount(partition, copy_dir): def mount(partition, copy_dir):
img = os.path.join(images.get_image_dir(), partition+".img") img = os.path.join(images.get_image_dir(), f"{partition}.img")
mount_point = "" mount_point = os.path.join(copy_dir) if partition == "system" else os.path.join(copy_dir, partition)
if partition == "system": Logger.info(f"Mounting {img} to {mount_point}")
mount_point = os.path.join(copy_dir)
else:
mount_point = os.path.join(copy_dir, partition)
Logger.info("Mounting {} to {}".format(img, mount_point))
images.mount(img, mount_point) images.mount(img, mount_point)
def resize(partition): def resize(partition):
img = os.path.join(images.get_image_dir(), partition+".img") img = os.path.join(images.get_image_dir(), f"{partition}.img")
img_size = int(os.path.getsize(img)/(1024*1024)) img_size = int(os.path.getsize(img) / (1024 * 1024))
new_size = "{}M".format(img_size+500) new_size = f"{img_size + 500}M"
Logger.info("Resizing {} to {}".format(img, new_size)) Logger.info(f"Resizing {img} to {new_size}")
images.resize(img, new_size) images.resize(img, new_size)
def umount(partition, copy_dir): def umount(partition, copy_dir):
mount_point = "" mount_point = os.path.join(copy_dir) if partition == "system" else os.path.join(copy_dir, partition)
if partition == "system": Logger.info(f"Unmounting {mount_point}")
mount_point = os.path.join(copy_dir)
else:
mount_point = os.path.join(copy_dir, partition)
Logger.info("Umounting {}".format(mount_point))
images.umount(mount_point) images.umount(mount_point)
def install_app(args): def install_app(args):
install_list: List[General] = [] install_list: List[General] = []
app = args.app app = args.app
@ -118,7 +105,6 @@ def install_app(args):
container.upgrade() container.upgrade()
def remove_app(args): def remove_app(args):
remove_list: List[General] = [] remove_list: List[General] = []
app = args.app app = args.app
@ -158,10 +144,8 @@ def remove_app(args):
container.upgrade() container.upgrade()
def hack_option(args): def hack_option(args):
Logger.warning( Logger.warning("If these hacks cause any problems, run `sudo python main.py remove <hack_option>` to remove")
"If these hacks cause any problems, run `sudo python main.py remove <hack_option>` to remove")
hack_list: List[General] = [] hack_list: List[General] = []
options = args.option_name options = args.option_name
@ -198,10 +182,11 @@ def hack_option(args):
container.upgrade() container.upgrade()
def interact(): def interact():
if inquirer is None:
print('Please, install InquirerPy module first')
return
os.system("clear") os.system("clear")
args = argparse.Namespace()
android_version = inquirer.select( android_version = inquirer.select(
message="Select Android version", message="Select Android version",
instruction="(\u2191\u2193 Select Item)", instruction="(\u2191\u2193 Select Item)",
@ -214,15 +199,12 @@ def interact():
).execute() ).execute()
if not android_version: if not android_version:
exit() exit()
args.android_version = android_version
args = argparse.Namespace(android_version=android_version, microg_variant="Standard")
action = inquirer.select( action = inquirer.select(
message="Please select an action", message="Please select an action",
choices=[ choices=["Install", "Remove", "Hack", "Get Google Device ID to Get Certified"],
"Install",
"Remove",
"Hack",
"Get Google Device ID to Get Certified"
],
instruction="([↑↓]: Select Item)", instruction="([↑↓]: Select Item)",
default=None, default=None,
).execute() ).execute()
@ -231,7 +213,7 @@ def interact():
install_choices = ["gapps", "microg", "libndk", "libhoudini", "magisk", "smartdock", "fdroidpriv",] install_choices = ["gapps", "microg", "libndk", "libhoudini", "magisk", "smartdock", "fdroidpriv",]
hack_choices = [] hack_choices = []
if android_version=="11": if android_version == "11":
install_choices.extend(["widevine"]) install_choices.extend(["widevine"])
hack_choices.extend(["nodataperm", "hidestatusbar"]) hack_choices.extend(["nodataperm", "hidestatusbar"])
@ -243,8 +225,7 @@ def interact():
invalid_message="should be at least 1 selection", invalid_message="should be at least 1 selection",
choices=install_choices choices=install_choices
).execute() ).execute()
microg_variants = ["Standard", "NoGoolag", microg_variants = ["Standard", "NoGoolag", "UNLP", "Minimal", "MinimalIAP"]
"UNLP", "Minimal", "MinimalIAP"]
if "microg" in apps: if "microg" in apps:
microg_variant = inquirer.select( microg_variant = inquirer.select(
message="Select MicroG variant", message="Select MicroG variant",
@ -263,7 +244,7 @@ def interact():
choices=[*install_choices, *hack_choices] choices=[*install_choices, *hack_choices]
).execute() ).execute()
args.app = apps args.app = apps
args.microg_variant="Standard" args.microg_variant = "Standard"
remove_app(args) remove_app(args)
elif action == "Hack": elif action == "Hack":
apps = inquirer.checkbox( apps = inquirer.checkbox(
@ -276,15 +257,14 @@ def interact():
args.option_name = apps args.option_name = apps
hack_option(args) hack_option(args)
elif action == "Get Google Device ID to Get Certified": elif action == "Get Google Device ID to Get Certified":
AndroidId().get_id() get_certified()
def main(): def main():
parser = argparse.ArgumentParser(description=''' parser = argparse.ArgumentParser(description='''
Does stuff like installing Gapps, installing Magisk, installing NDK Translation and getting Android ID for device registration. Does stuff like installing Gapps, installing Magisk, installing NDK Translation and getting Android ID for device registration.
Use -h flag for help!''') Use -h flag for help!''')
subparsers = parser.add_subparsers(title="coomand", dest='command') subparsers = parser.add_subparsers(title="command", dest='command')
parser.add_argument('-a', '--android-version', parser.add_argument('-a', '--android-version',
dest='android_version', dest='android_version',
help='Specify the Android version', help='Specify the Android version',
@ -296,8 +276,7 @@ def main():
'certified', help='Get device ID to obtain Play Store certification') 'certified', help='Get device ID to obtain Play Store certification')
certified.set_defaults(func=get_certified) certified.set_defaults(func=get_certified)
install_choices = ["gapps", "microg", "libndk", "libhoudini", install_choices = ["gapps", "microg", "libndk", "libhoudini", "magisk", "mitm", "smartdock", "widevine"]
"magisk", "mitm", "smartdock", "widevine"]
hack_choices = ["nodataperm", "hidestatusbar"] hack_choices = ["nodataperm", "hidestatusbar"]
micrg_variants = ["Standard", "NoGoolag", "UNLP", "Minimal", "MinimalIAP"] micrg_variants = ["Standard", "NoGoolag", "UNLP", "Minimal", "MinimalIAP"]
remove_choices = install_choices remove_choices = install_choices
@ -306,7 +285,6 @@ def main():
"dest": "app", "dest": "app",
"type": str, "type": str,
"nargs": '+', "nargs": '+',
# "metavar":"",
} }
install_help = """ install_help = """
@ -344,15 +322,12 @@ widevine: Add support for widevine DRM L3
hack_parser.set_defaults(func=hack_option) hack_parser.set_defaults(func=hack_option)
args = parser.parse_args() args = parser.parse_args()
args.microg_variant = "Standard"
if hasattr(args, 'func'): if hasattr(args, 'func'):
args_dict = vars(args)
helper.check_root() helper.check_root()
args.func(args) args.func(args)
else: else:
helper.check_root() helper.check_root()
interact() interact()
if __name__ == "__main__": if __name__ == "__main__":
main() main()

@ -0,0 +1,32 @@
{ lib,
stdenvNoCC,
lzip,
python3,
makeWrapper }:
let
wrappedPath = lib.makeBinPath [ lzip ];
in stdenvNoCC.mkDerivation {
name = "waydroid_script";
buildInputs = [
(python3.withPackages(ps: with ps; [ tqdm requests inquirerpy ]))
];
nativeBuildInputs = [
makeWrapper
];
src = ./.;
postPatch = ''
patchShebangs main.py
'';
installPhase = ''
mkdir -p $out/libexec
cp -r . $out/libexec/waydroid_script
mkdir -p $out/bin
makeShellWrapper $out/libexec/waydroid_script/main.py $out/bin/waydroid_script \
--prefix PATH : "${wrappedPath}"
'';
}

@ -1,3 +1,2 @@
tqdm tqdm
requests requests
InquirerPy

@ -36,11 +36,11 @@ class MicroG(General):
"6136b383153c2a6797d14fb4d7ca3f97" "6136b383153c2a6797d14fb4d7ca3f97"
], ],
"Minimal": [ "Minimal": [
"https://github.com/ayasa520/MinMicroG/releases/download/latest/MinMicroG-Minimal-2.11.1-20230429100521.zip" "https://github.com/ayasa520/MinMicroG/releases/download/latest/MinMicroG-Minimal-2.11.1-20230429100521.zip",
"afb87eb64e7749cfd72c4760d85849da" "afb87eb64e7749cfd72c4760d85849da"
], ],
"MinimalIAP": [ "MinimalIAP": [
"https://github.com/ayasa520/MinMicroG/releases/download/latest/MinMicroG-MinimalIAP-2.11.1-20230429100556.zip" "https://github.com/ayasa520/MinMicroG/releases/download/latest/MinMicroG-MinimalIAP-2.11.1-20230429100556.zip",
"cc071f4f776cbc16c4c1f707aff1f7fa" "cc071f4f776cbc16c4c1f707aff1f7fa"
] ]
} }

@ -49,4 +49,4 @@ class Ndk(General):
Logger.info("Copying libndk library files ...") Logger.info("Copying libndk library files ...")
name = re.findall("([a-zA-Z0-9]+)\.zip", self.dl_link)[0] name = re.findall("([a-zA-Z0-9]+)\.zip", self.dl_link)[0]
shutil.copytree(os.path.join(self.extract_to, "vendor_google_proprietary_ndk_translation-prebuilt-" + name, shutil.copytree(os.path.join(self.extract_to, "vendor_google_proprietary_ndk_translation-prebuilt-" + name,
"prebuilts"), os.path.join(self.copy_dir, self.partition), dirs_exist_ok=True) "prebuilts"), os.path.join(self.copy_dir, self.partition), dirs_exist_ok=True)

@ -40,7 +40,7 @@ class Nodataperm(General):
self.act_md5 = self.dl_links[android_version][arch][1] self.act_md5 = self.dl_links[android_version][arch][1]
def copy(self): def copy(self):
name = re.findall("([a-zA-Z0-9]+)\.zip", self.dl_link)[0] name = re.findall("([a-zA-Z0-9]+)\\.zip", self.dl_link)[0]
extract_path = os.path.join( extract_path = os.path.join(
self.extract_to, f"hack_full_data_permission-{name}") self.extract_to, f"hack_full_data_permission-{name}")
if not container.use_overlayfs(): if not container.use_overlayfs():

@ -4,10 +4,10 @@ from stuff.general import General
class Smartdock(General): class Smartdock(General):
id = "smartdock" id = "smartdock"
dl_link = "https://f-droid.org/repo/cu.axel.smartdock_1100.apk" dl_link = "https://f-droid.org/repo/cu.axel.smartdock_1130.apk"
partition = "system" partition = "system"
dl_file_name = "smartdock.apk" dl_file_name = "smartdock.apk"
act_md5 = "f4087d34218eac902a5cca98ee03d215" act_md5 = "6bfedb959ef5855c3782e8001cb67f86"
apply_props = { "qemu.hw.mainkeys" : "1" } apply_props = { "qemu.hw.mainkeys" : "1" }
skip_extract = True skip_extract = True
permissions = """<?xml version="1.0" encoding="utf-8"?> permissions = """<?xml version="1.0" encoding="utf-8"?>
@ -30,6 +30,7 @@ class Smartdock(General):
<permission name="android.permission.ACCESS_SUPERUSER"/> <permission name="android.permission.ACCESS_SUPERUSER"/>
<permission name="android.permission.PACKAGE_USAGE_STATS" /> <permission name="android.permission.PACKAGE_USAGE_STATS" />
<permission name="android.permission.QUERY_ALL_PACKAGES" /> <permission name="android.permission.QUERY_ALL_PACKAGES" />
<permission name="android.permission.WRITE_SECURE_SETTINGS" />
</privapp-permissions> </privapp-permissions>
</permissions> </permissions>
""" """

@ -40,7 +40,7 @@ class Widevine(General):
self.act_md5 = self.dl_links[self.arch[0]][android_version][1] self.act_md5 = self.dl_links[self.arch[0]][android_version][1]
def copy(self): def copy(self):
name = re.findall("([a-zA-Z0-9]+)\.zip", self.dl_link)[0] name = re.findall("([a-zA-Z0-9]+)\\.zip", self.dl_link)[0]
Logger.info("Copying widevine library files ...") Logger.info("Copying widevine library files ...")
shutil.copytree(os.path.join(self.extract_to, "vendor_google_proprietary_widevine-prebuilt-"+name, shutil.copytree(os.path.join(self.extract_to, "vendor_google_proprietary_widevine-prebuilt-"+name,
"prebuilts"), os.path.join(self.copy_dir, self.partition), dirs_exist_ok=True) "prebuilts"), os.path.join(self.copy_dir, self.partition), dirs_exist_ok=True)

@ -22,7 +22,7 @@ def use_overlayfs():
cfg = configparser.ConfigParser() cfg = configparser.ConfigParser()
cfg_file = os.environ.get("WAYDROID_CONFIG", "/var/lib/waydroid/waydroid.cfg") cfg_file = os.environ.get("WAYDROID_CONFIG", "/var/lib/waydroid/waydroid.cfg")
if not os.path.isfile(cfg_file): if not os.path.isfile(cfg_file):
Logger.error("Cannot locate waydroid config file, reinit wayland and try again!") Logger.error("Cannot locate waydroid config file, reinit waydroid and try again!")
sys.exit(1) sys.exit(1)
cfg.read(cfg_file) cfg.read(cfg_file)
if "waydroid" not in cfg: if "waydroid" not in cfg:
@ -50,4 +50,4 @@ def is_running():
return "Session:\tRUNNING" in run(["waydroid", "status"]).stdout.decode() return "Session:\tRUNNING" in run(["waydroid", "status"]).stdout.decode()
def upgrade(): def upgrade():
run(["waydroid", "upgrade", "-o"], ignore=r"\[.*\] Stopping container\n\[.*\] Starting container") run(["waydroid", "upgrade", "-o"], ignore=r"\[.*\] Stopping container\n\[.*\] Starting container")

@ -32,7 +32,7 @@ def get_image_dir():
cfg = configparser.ConfigParser() cfg = configparser.ConfigParser()
cfg_file = os.environ.get("WAYDROID_CONFIG", "/var/lib/waydroid/waydroid.cfg") cfg_file = os.environ.get("WAYDROID_CONFIG", "/var/lib/waydroid/waydroid.cfg")
if not os.path.isfile(cfg_file): if not os.path.isfile(cfg_file):
Logger.error("Cannot locate waydroid config file, reinit wayland and try again!") Logger.error("Cannot locate waydroid config file, reinit waydroid and try again!")
sys.exit(1) sys.exit(1)
cfg.read(cfg_file) cfg.read(cfg_file)
if "waydroid" not in cfg: if "waydroid" not in cfg:

Loading…
Cancel
Save