Umtv2-umtpro-ultimateunisoc-v0.1-installer May 2026

def create_uninstaller(install_path): """Create uninstall registry and script.""" uninstall_script = install_path / "uninstall.py" uninstall_content = f'''#!/usr/bin/env python3 import shutil, sys, os from pathlib import Path target = Path(r"{install_path}") if input(f"Delete {{target}}? (y/N): ").lower() == 'y': shutil.rmtree(target) print("Removed", target) # Optionally remove from PATH here ''' uninstall_script.write_text(uninstall_content) log.info(f"Uninstaller created at {uninstall_script}")

def run_as_admin(): """Restart script with admin rights.""" if not is_admin(): log.warning("Requesting administrator privileges...") script = os.path.abspath(sys.argv[0]) params = ' '.join([script] + sys.argv[1:]) try: ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, params, None, 1) except Exception as e: log.error(f"Failed to elevate: {e}") sys.exit(1) sys.exit() umtv2-umtpro-ultimateunisoc-v0.1-installer

def install_drivers(): """Launch Unisoc driver installer if available.""" driver_installer = DEFAULT_INSTALL_PATH / "drivers" / "unisoc_driver.exe" if driver_installer.exists(): log.info("Installing Unisoc drivers...") subprocess.run([str(driver_installer), "/silent"], check=False) else: log.warning(f"Driver installer not found. Download from {DRIVER_URL}") umtv2-umtpro-ultimateunisoc-v0.1-installer