Releases: ScoRpiiTech/autoroid
Releases · ScoRpiiTech/autoroid
Release list
Autoroid v1.3.0
[v1.3.0] - Autoroid Power Suite: Smart Event Triggers, Background App Freezer, NetCut Firewall & Shizuku Wireless ADB Starter
- Date: 2026-09-20
- Status: Verified (Build Successful, Release APK Signed & Scheme v3 Verified)
1. Smart Event Triggers for Workflows (feature/workflow/trigger)
-
WorkflowTrigger.kt: Polymorphic trigger system allowing automations to execute autonomously in the background without user intervention:-
PowerConnected&PowerDisconnected: Responds to battery charger plug/unplug events. -
ScreenUnlocked&ScreenOff: Reacts to device lock/unlock transitions. -
BatteryLow: Triggers when battery level drops to threshold (default$\le$ 20%). -
WifiConnected: Detects Wi-Fi association (all networks or specific SSID).
-
-
WorkflowTriggerManager.kt: Dynamic broadcast listener and coordinator. Continuously evaluates incoming system events against configured workflow triggers and schedules execution viaWorkflowRunner.executeWorkflow(). -
Workflow UI Expansion (
WorkflowCard.kt,WorkflowEditorDialog.kt): Added trigger configuration UI with quick trigger dropdown, live trigger badges, and persistent trigger list serialization inautoroid_workflows.json.
2. Background App Freezer & Deep Sleep (feature/freezer)
FrozenApp.kt&AppFreezerRepository.kt: Model and persistent configuration storage for managed apps.AppFreezerManager.kt:- Elevated app suspension via
pm suspend/pm unsuspendand process termination (am force-stop). - Auto-freeze on screen off: When the display turns off, Autoroid automatically executes deep sleep force-stops and suspensions on designated background battery-drain apps.
- Elevated app suspension via
AppFreezerCard.kt: Integrated into Bank Shield tab with package search, quick freeze toggles, instant kill buttons, and auto-freeze configuration.
3. NetCut Per-App Firewall (feature/netcut)
NetCutApp.kt&NetCutRepository.kt: Internet rule tracking per application.NetCutManager.kt:- Kernel-level IP filtering (
iptablesandip6tablesOUTPUT -m owner --uid-owner <UID> -j DROP) under Root. - Strict network policy isolation (
cmd netpolicy add restrict-background-blacklist <UID>andappops set <package> RUN_IN_BACKGROUND ignore) under Shizuku/ADB. - Cuts off selected apps from cellular and Wi-Fi data completely without needing a battery-draining local VPN tunnel.
- Kernel-level IP filtering (
NetCutCard.kt: Cyberpunk per-app internet toggle card embedded in the Shield tab.
4. Shizuku Wireless ADB Auto-Starter (feature/shizuku)
ShizukuStarterManager.kt:- Detects active wireless debugging ports (
adb.tls.port/service.adb.tls.port). - Launches the Shizuku server daemon (
/data/user_de/0/moe.shizuku.privileged.api/bin/shizuku_starter) in 1 tap via Root or local shell ADB loops. - Provides instant status diagnostics and manual port connection fallback.
- Detects active wireless debugging ports (
ShizukuStarterCard.kt: Integrated into the Console tab for rapid privileged daemon recovery.
5. Build & Verification
- Bumped
versionCode = 20andversionName = "1.3.0". - Verified release APK with
apksigner(APK Signature Scheme v3).
Autoroid v1.2.18
[v1.2.18] - Modern Cyber-Glassmorphic UI & Navigation Makeover
- Date: 2026-09-19
- Status: Verified (Build Successful, Release APK Signed & Scheme v3 Verified)
1. Navigation Architecture & De-crowding
- Replaced the crowded, monolithic single-page
LazyColumnwith a modern multi-tab navigation shell powered by a floating glassmorphic bottom bar. AutoroidNavTab.kt: Defines 4 dedicated, focused feature spaces:IMS & Telephony(ImsScreenView.kt): Hero showcase for Carrier & IMS Patcher (VoLTE, VoWiFi, VoNR 5G, 5G+, signal calibration, carrier branding) and Dual-SIM Data & Schedule manager.Bank Shield(ShieldScreenView.kt): Bank Mode anti-detection accessibility shield with glowing halo status ring (Protected / Vulnerable / All Clear), live service registry breakdown, and Quick Settings tile guide.Automations(WorkflowsScreenView.kt): Dynamic app macro feed, 1-tap macro runner, and Screen Pointer Location coordinate inspector.Console(TerminalScreenView.kt): Elevated power shell command runner with quick command chips (id,getprop,dumpsys telephony.registry), clearable logs, and syntax-styled terminal output.
2. Modern Floating Navigation Bar (FloatingBottomBar.kt)
- Translucent glassmorphic pill (
FloatingBarGradient) with 26dp rounded corners, subtle cyber borders, and drop shadow. - Animated selection indicators with smooth spring-based pill expansion and glowing emerald status dots.
- Respects Android edge-to-edge system navigation bars (
navigationBarsPadding()).
3. Top App Bar Modernization
- Replaced static text headers with an interactive Top App Bar:
- High-tech "AUTOROID" cyber branding with letter spacing.
- Interactive Live Privilege Pill (
ROOT,SHIZUKU,ADB,UNAUTHORIZED) with dynamic pulsing color badges and 1-tap elevation prompt. - Status-aware Update button with emerald glow when GitHub updates are available.
- System guide and fast refresh actions.
4. Theme & Token Overhaul (Theme.kt)
- Introduced modern cyber-glassmorphic styling tokens:
ElectricBlue(#00A3FF),NeonPurple(#A855F7),GlassSurface(#161E2E),GlassBorder(#4000E5FF).- Added gradient brushes (
CyberCyanGradient,NeonGreenGradient,FloatingBarGradient).
5. Build & Verification
- Bumped
versionCode = 19andversionName = "1.2.18". - Compiled with JDK 19, AGP 8.6.0, Target SDK 36.
- Verified release APK with
apksigner(APK Signature Scheme v3).
Autoroid v1.2.17
[v1.2.17] - Complete Turbo IMS / TensorIMS Feature Parity
- Date: 2026-09-19
- Status: Verified (Build Successful, Release APK Signed & Scheme v3 Verified)
1. 100% Feature Parity with TensorIMS
- Added all remaining features, flags, and overrides from TensorIMS (Turbo IMS) to Autoroid:
- Cross-SIM Calling (
carrier_cross_sim_calling_available_bool): Enables Wi-Fi Calling over secondary SIM cellular data when off-grid or traveling. - 5G NR Modem Announcement (
carrier_nr_availabilities_int_array): Explicitly announces Standalone (SA) and Non-Standalone (NSA) 5G availability[1, 2]to the baseband modem and OS. - 5G+ / Ultra Wideband Icon Overrides (
FiveGPlusConfig): Configures SystemUI status bar icons to display5G+/5G_UWindicator on mid/high-band 5G networks (C-Band, mmWave). - 5G Signal Boundary Calibration (
5g_nr_ssrsrp_thresholds_int_array): Overrides SS-RSRP threshold boundaries to[-128, -98 dBm]for aggressive 5G cell latching and improved fringe reception. - Enhanced 4G LTE Controls (
enhanced_4g_lte_on_by_default_bool): Enforces default 4G advanced calling and provision state. - Status Bar Icon Customizations:
show_4g_for_lte_data_icon_bool: Replaces standard "LTE" text with "4G" in the status bar.hide_lte_plus_data_icon_bool: Hides the carrier aggregation "LTE+" badge for a cleaner status bar.
- Android Settings Visibility: Ensures VoLTE and Wi-Fi Calling toggles remain unhidden in device settings (
editable_enhanced_4g_lte_bool,editable_wfc_mode_bool). - Custom Carrier Name (
carrier_name_string): Overrides the network operator name displayed on lock screen and status bar. - Custom IMS SIP User-Agent (
carrier_ims_user_agent_string): Customizes the SIP registration user-agent header string for carrier IMS bypass.
- Cross-SIM Calling (
2. Architectural & Model Expansion
ImsConfig.kt:- Expanded data class with all 16 configuration parameters and defaults.
- Added
FiveGPlusConfighelper mapping full carrier bundle keys (5g_icon_configuration_string_array,5g_icon_display_grace_period_string_array). - Implemented
toBundle()andtoCarrierConfigBundle()packaging arrays, strings, and boolean keys directly forImsModifierandBrokerInstrumentation.
ImsRepository.kt:- Full JSON serialization and deserialization in
SharedPreferencessupporting all newly added switches, thresholds, and text fields.
- Full JSON serialization and deserialization in
ImsController.kt:- Transmits full multi-type
config.toBundle()toImsModifierandBrokerInstrumentation.
- Transmits full multi-type
3. Cyberpunk UI Redesign
ImsCarrierPatcherCard.kt:- Reorganized into 3 distinct, organized sections:
- Core Calling & IMS Features: VoLTE, VoWiFi, VoWiFi Roaming, VoNR (5G Voice), VT, UT / USSD, Cross-SIM Calling.
- Advanced 5G & Status Bar Icons (Expandable Accordion): 5G NR SA/NSA, 5G+ Ultra Wideband icon, 5G signal calibration, 4G vs LTE text, and LTE+ badge toggle.
- Carrier Name & SIP User-Agent (Expandable Accordion): Text inputs for custom carrier branding and SIP UA string.
- Reorganized into 3 distinct, organized sections:
4. Build & Distribution
- Bumped
versionCode = 18andversionName = "1.2.17". - Verified release APK with
apksigner(APK Signature Scheme v3).
Autoroid v1.2.16
[v1.2.16] - Full TensorIMS Parity: Direct ServiceManager IPC & BrokerInstrumentation Fallback
- Date: 2026-09-19
- Status: Verified (Build Successful, Release APK Signed & Scheme v3 Verified)
1. Root Cause Resolution: Binder Proxy Wrapping
- Identified Bug: Autoroid previously retrieved system binders using Rikka's
SystemServiceHelper.getSystemService(Context.ACTIVITY_SERVICE), which returns a remote binder proxy from Shizuku. Passing this already-proxied binder intoShizukuBinderWrapper(binder)corrupted IPC transactions when invokingstartInstrumentation()andstartDelegateShellPermissionIdentity(). - Fix: Aligned with TensorIMS by compiling
android.os.ServiceManager.getService(name)into the:stubmodule, acquiring the real local system binder, and wrapping it withShizukuBinderWrapper(binder)for clean Shizuku server transaction interception.
2. Two-Tier Execution Strategy with BrokerInstrumentation Fallback
- Introduced
BrokerInstrumentation.ktas an automated secondary fallback. - When
ImsModifieryields an empty result or permission error on modern Pixels with tight SELinux policies,ImsController.overrideImsConfig()immediately delegates toBrokerInstrumentationto apply carrier configurations without modem NVRAM provisioning failures. - Also added fallback to
BrokerInstrumentationfor factory carrier resets (clearConfig).
3. Early Process Bootstrap Hidden API Exemption
- Created
com.autoroid.app.core.privilege.ShizukuProvidersubclassingrikka.shizuku.ShizukuProvider. - Calls
HiddenApiBypass.addHiddenApiExemptions("")inonCreate()beforeApplication.onCreate(), ensuring all Android runtime hidden API enforcement is removed before any system component initializes.
4. Safe Modem NVRAM Provisioning & Error Visibility
- Isolated
applyPersistentProvisioning()inImsModifierwith safe fallbacks (KEY_VOIMS_OPT_IN_STATUS = 10) so modem NVRAM provisioning hiccups never fail the carrier config override. - Upgraded
ImsCarrierPatcherCardwith a live Shizuku authorization warning banner (with 1-tap "GRANT" button) and an in-card live operation result badge. - Propagated clear diagnostic error messages instead of generic fallbacks.
5. Build & Verification
- Bumped
versionCode = 17andversionName = "1.2.16". - Verified release APK with
apksigner(APK Signature Scheme v3).
Autoroid v1.2.15
[v1.2.15] - Full Turbo IMS / TensorIMS Privileged Instrumentation Architecture
- Date: 2026-09-18
- Status: Verified (Build Successful, Release APK Signed & Scheme v3 Verified)
1. Root Cause Analysis & Pixel Restriction Resolution
- Bypassed CVE-2025-48617: On modern Google Pixel devices (Android 14/15/16 with the October 2025 security update), Android's
CarrierConfigLoaderblocksProcess.SHELL_UID(UID 2000, Shizuku) from invokingoverrideConfig()withSecurityException: overrideConfig cannot be invoked by shell. - Resolved Process Termination: Previous attempts invoking
am instrumentfrom the shell killed Autoroid because CLI tools start instrumentation with flag0(restarting target process). In contrast,IActivityManager.startInstrumentation()withflags = 8(INSTR_FLAG_NO_RESTART) launches the instrumentation runner inside the already-running app process without killing or restarting it!
2. Compile-Time Framework Stub Module (:stub)
- Introduced a dedicated
:stublibrary module providing compile-only Android framework classes (compileOnly(project(":stub"))with 0 APK footprint):stub/src/main/aidl/android/app/IInstrumentationWatcher.aidl: Status and completion callbacks fromActivityManagerService.stub/src/main/java/android/app/IActivityManager.java:startInstrumentationand shell permission delegation methods.stub/src/main/java/android/app/UiAutomationConnection.java: UiAutomation connection stub.stub/src/main/aidl/com/android/internal/telephony/ITelephony.aidl: Telephony reset and registration checks.
3. Privileged Instrumentation Engine
ImsModifier.kt:- Registered in
AndroidManifest.xmltargeting${applicationId}. - Launched dynamically via
am.startInstrumentation(..., flags = 8, ...). - Executes
startDelegateShellPermissionIdentity(Os.getuid(), null)(allowed becauseisCallerInstrumentation() == true). - Calls
CarrierConfigManager.overrideConfig(subId, bundle, persistent = false). - Performs persistent hardware VoLTE provisioning directly on modem NVRAM:
ProvisioningManager.setProvisioningIntValue(KEY_VOIMS_OPT_IN_STATUS, 1)ImsMmTelManager.setAdvancedCallingSettingEnabled(true)SubscriptionManager.setSubscriptionProperty("ENHANCED_4G_MODE_ENABLED", "1")SubscriptionManager.setSubscriptionProperty("VOIMS_OPT_IN_STATUS", "1")
- Safely releases delegation via
stopDelegateShellPermissionIdentityCompat().
- Registered in
ImsResetter.kt: Resets carrier configurations and resets IMS viaITelephony.resetIms().ImsCapabilityReader.kt: Live inspection of VoLTE, VoWiFi, VoNR, VT, and 5G NSA/SA availability.
4. Build & Distribution
- Bumped
versionCode = 16andversionName = "1.2.15". - Verified with
apksigner(APK Signature Scheme v3).
Autoroid v1.2.14
[v1.2.14] - Fix App Launch Crash & In-Process Shell Permission Delegation
- Date: 2026-09-18
- Status: Verified (Build Successful, Release APK Signed & Scheme v3 Verified)
1. Root Cause Analysis of Launch Crash
- Problem: Following the VoLTE/VoWiFi updates, users experienced immediate crashes on app launch ("not opening").
- Identified Root Causes:
<instrumentation>Manifest Conflict: Declaring an<instrumentation>tag insrc/main/AndroidManifest.xmltargeting the app's own package (com.autoroid.app) caused Android'sActivityThreadto treat the package as an instrumentation test target on app startup. Normal activity launches failed immediately withSecurityException/Process crashed.- Process Termination by
am instrument: Android'sActivityManagerServiceforcefully kills any existing process fortargetPackagewhenam instrumentis executed. Callingam instrumentfromImsController.onBoot()resulted in Android killing Autoroid's process 2.5 seconds after launch. - Unprotected Startup Coroutine:
applicationScope.launchinAutoroidApp.ktlacked individual exception guards around subsystem initialization.
2. Implementation: In-Process Shell Permission Delegation
AndroidManifest.xml: Completely removed the<instrumentation>tag.- Deleted
BrokerInstrumentation.kt: Eliminated the external instrumentation component. ImsController.kt:- Replaced
am instrumentwith direct in-process Shell Permission Delegation via Shizuku:- Acquires
IActivityManagerviaShizukuBinderWrapper(getSystemService("activity")). - Calls
startDelegateShellPermissionIdentity(Process.myUid(), null)to grant the app's process shell-level identity. - Directly calls
CarrierConfigManager.overrideConfig(subId, bundle, persistent = false). - Safely releases delegation via
stopDelegateShellPermissionIdentity().
- Acquires
- Added direct
ICarrierConfigLoaderBinder IPC fallback. - Added Root execution fallback (
pm grant com.autoroid.app android.permission.MODIFY_PHONE_STATE). - Added safety wrappers around
onBoot()so auto-restore never interrupts app startup.
- Replaced
AutoroidApp.kt: Wrapped each subsystem's initialization in individualtry-catchblocks to ensure fail-safe app launches.
3. Version Bump
app/build.gradle.kts: BumpedversionCode = 15andversionName = "1.2.14".
Autoroid v1.2.13
[v1.2.13] - Luxury Adaptive App Icon & Material You Dynamic Theming
- Date: 2026-09-18
- Status: Verified (Build Successful, Release APK Signed & Scheme v3 Verified)
1. High-Class Luxury App Icon Redesign
- Problem: Replaced the legacy placeholder square icon (
#00E5FFrectangle) with a state-of-the-art luxury design. - Design Philosophy:
- Futuristic titanium cybernetic shield emblem infused with glowing neon cyan (
#00E5FF) and electric emerald (#2EE59D) microchip circuitry. - Dark obsidian glass depth background (
#080E17). - Stylized cybernetic crest 'A' integrated with an elevated Android core processor.
- Ultra-high resolution asset downsampled using Lanczos resampling for razor-sharp fidelity across all density buckets.
- Futuristic titanium cybernetic shield emblem infused with glowing neon cyan (
2. Full Android Adaptive Icon Architecture (mipmap-anydpi-v26)
- Adaptive Icon Layers:
drawable/ic_launcher_background.xml: Deep obsidian cyber grid background vector (#080E17/#0A1424).drawable-{mdpi,hdpi,xhdpi,xxhdpi,xxxhdpi}/ic_launcher_foreground.png: High-resolution foreground layers scaled to 108dp canvas with safe zone margins to prevent clipping on circular and squircle launchers.drawable/ic_launcher_monochrome.xml: Minimalist vector silhouette of the cyber shield, 'A' crest, and microchip core for Android 13+ (Pixel 7 Pro) Material You dynamic wallpaper color theming.mipmap-anydpi-v26/ic_launcher.xmlandic_launcher_round.xml: Updated to declare<adaptive-icon>referencing background, foreground, and monochrome assets.
3. Legacy Density Mipmaps
- Generated multi-density raster drawables for legacy launchers, Android Settings, notifications, and APK extractors:
mipmap-mdpi/ic_launcher.png&ic_launcher_round.png(48x48)mipmap-hdpi/ic_launcher.png&ic_launcher_round.png(72x72)mipmap-xhdpi/ic_launcher.png&ic_launcher_round.png(96x96)mipmap-xxhdpi/ic_launcher.png&ic_launcher_round.png(144x144)mipmap-xxxhdpi/ic_launcher.png&ic_launcher_round.png(192x192)
4. Version Bump
app/build.gradle.kts: BumpedversionCode = 14andversionName = "1.2.13".
Autoroid v1.2.12
[v1.2.12] - Elevated BrokerInstrumentation Carrier Patcher (CVE-2025-48617 Bypass)
- Date: 2026-09-18
- Status: Verified (Build Successful, Release APK Signed & Scheme v3 Verified)
1. Root Cause Fix: "Failed to Apply Override to SIM"
- Identified Root Causes:
- In recent Android security updates (CVE-2025-48617 on Pixel 7 Pro, Android 14/15/16), Google patched the shell user from directly calling
CarrierConfigManager.overrideConfig()orICarrierConfigLoaderwithSecurityException: overrideConfig cannot be invoked by shell. - Android requires caller to be an active instrumentation runner started from the shell in order to invoke
startDelegateShellPermissionIdentity(Os.getuid(), null). - The
<instrumentation>tag was not registered inAndroidManifest.xml. ImsControllerpreviously fell back to non-existent shell commandcmd phone cc set-value.- Command-line arguments passed via
am instrumentare received asStringinBundle, which causedmoder_subIdand boolean flags (carrier_volte_available_bool, etc.) to be misinterpreted unless parsed as typed Booleans and Integers.
- In recent Android security updates (CVE-2025-48617 on Pixel 7 Pro, Android 14/15/16), Google patched the shell user from directly calling
- Architecture Solution:
AndroidManifest.xml: Registered<instrumentation android:name=".feature.telephony.ims.BrokerInstrumentation" android:targetPackage="com.autoroid.app" />.BrokerInstrumentation.kt:- Robust string-to-type parsing for
moder_subIdandPersistableBundleboolean/int configuration flags. - Uses
IActivityManager.startDelegateShellPermissionIdentity(Os.getuid(), null)within the active instrumentation context. - Calls
CarrierConfigManager.overrideConfig(subId, bundle, persistent = false). - Returns structured result bundle (
Activity.RESULT_OK/Activity.RESULT_CANCELED).
- Robust string-to-type parsing for
ImsController.kt:- Rewrote
applyConfigandclearConfigto executeam instrument -wviaPrivilegeManager(Root UID 0 or Shizuku UID 2000 ADB shell). - Added error message extraction and diagnostics.
- Rewrote
2. Version Bump
app/build.gradle.kts: BumpedversionCode = 13andversionName = "1.2.12".
Autoroid v1.2.11
[v1.2.11] - Rate-Limit-Free Atom Feed Fallback for App Updates
- Date: 2026-09-18
- Status: Verified (Build Successful, Release APK Signed & Scheme v3 Verified)
1. Bypass GitHub API Rate Limits
- Problem: GitHub REST API (
api.github.com) restricts unauthenticated requests to 60 per hour per IP. On mobile cellular carrier networks (CGNAT) or shared Wi-Fi, multiple devices share a single IPv4 address, quickly triggering403 rate limit exceeded. - Solution:
- Implemented automatic fallback to GitHub's public Atom feed (
https://github.com/$OWNER/$REPO/releases.atom). - Atom feeds are public web feeds served without rate limiting or authentication requirements.
- Automatically parses latest release tag, publication timestamp, and HTML release notes via
android.text.Html. - When
api.github.comreturns HTTP 403, 429, or network errors,UpdateManagertransparently falls back to the Atom feed within milliseconds without failing or bothering the user.
- Implemented automatic fallback to GitHub's public Atom feed (
2. Version Bump
app/build.gradle.kts: BumpedversionCode = 12andversionName = "1.2.11".
Autoroid v1.2.10
[v1.2.10] - GitHub Release Pipeline Fix & Deterministic Update Engine
- Date: 2026-09-18
- Status: Verified (Build Successful, Release APK Signed & Scheme v3 Verified)
1. Root Cause Fix: "Already Up To Date" & Missing Assets
- Diagnosed Root Causes:
- Parallel GitHub Actions runners triggered on both
mainbranch push and tag push raced to publish the same release, causing asset upload deadlocks and leaving releases with empty assets. UpdateManager.ktpreviously calculatedhasUpdate = isNewer && downloadUrl.isNotBlank(). When GitHub release assets were empty or still finalizing,hasUpdateevaluated tofalse, silently suppressing the update and reporting "Autoroid is up to date".- GitHub
/releases/latestendpoint caching caused delayed visibility of newly published releases.
- Parallel GitHub Actions runners triggered on both
UpdateManager.ktFixes:- Switched endpoint to
/releases?per_page=5with semver tag sorting to bypass CDN edge cache staleness. - Added deterministic fallback download URL (
https://github.com/$OWNER/$REPO/releases/download/$TAG/app-release.apk) if asset metadata is delayed. - Decoupled
hasUpdate = isNewerso newly available releases are always surfaced to the user.
- Switched endpoint to
2. CI/CD Release Pipeline Hardening
.github/workflows/release.yml:- Removed
push: branches: [main]so release jobs only trigger on explicit version tags (v*), completely eliminating concurrent runner collisions. - Migrated from third-party release action to native GitHub CLI (
gh release create/gh release upload --clobber), preventing hanging and ensuring idempotent asset uploads.
- Removed
3. Version Bump
app/build.gradle.kts: BumpedversionCode = 11andversionName = "1.2.10".