Releases: kdbhalala/avdslim
Releases · kdbhalala/avdslim
Release list
v1.0.12
Added
- Host System Memory & Swap Pressure Audit: Added Section 2 to
avdslim doctorchecking host physical RAM and swap pressure. On Apple Silicon, usesos.Getpagesize()to dynamically account for 16 KB pages instead of assuming 4 KB (which undercounts free RAM 4x), and warns if macOS is heavily compressing or swapping anonymous memory. - Compressed & Swapped Memory Indicator: When physical RSS reads significantly lower than Activity Monitor memory footprint due to macOS page compression or swap,
doctor,measure, andstatusnow display the compressed/swapped delta directly ((%d MB compressed/swapped out)).
Fixed
footprintExact Bytes & Unit-Aware Parsing: HardenedGetHostFootprintMbto request exact bytes viafootprint --format bytesand parseB,KB,MB, andGB(including decimal representations like1.8 GB). Prevents formatting parse errors from silently falling back tops RSS(which omits compressed/swapped pages).
Full Changelog: v1.0.11...v1.0.12
v1.0.11
Fixed
tune-avdcould rewriteconfig.iniwith no backup: theconfig.ini.bakwrite ignored its error but still reported success, so a failed backup (permissions, full disk) left the tune irreversible onceconfig.iniwas rewritten andsnapshots/purged. It now aborts before touching either.
v1.0.10
Fixed
start/baketargeted the wrong emulator when another was already running: the boot wait and slimming ran against whichever device adb picked, soavdslim start 2with AVD 1 up re-slimmed AVD 1 and left AVD 2 on a black screen. Both now pass-portto the emulator and target that serial.
v1.0.9
Added
avdslim repairCommand: Unsticks an AVD hung on a black screen by re-enabling boot-critical packages directly inpackage-restrictions.xml(viaadb root) and restarting the framework. Keeps user data.
Fixed
- AVD stuck on black screen after stop/start: slimming no longer disables
com.google.android.bluetooth. On Android 16+ imagessystem_servercrash-loops at boot (FATAL: Conflicting system configuration detected) when the Bluetooth APK is disabled, so every cold boot after the first slim hung. Bluetooth is still switched off at runtime viabluetooth_on=0.
v1.0.8
Added
avdslim enableCommand: Selectively re-enable specific features (bluetooth,animations,sync,location,bglimit) or app packages (maps,photos,chrome,camera,store, etc.) on running AVDs without performing a full restore. Supports index, AVD name, serial, and--allmulti-device targeting.- Bluetooth Debloating &
--skip bluetooth: Added Bluetooth subsystem (com.google.android.bluetooth,com.android.bluetoothmidiservice,bluetooth_on) debloating, saving ~25 MB RAM. Added--skip bluetoothoption for developers testing BLE peripherals. - Privacy Sandbox Debloating: Silenced
com.google.android.adservices.apiandcom.google.mainline.adservicesbackground attribution daemons. - Continuous Integration (CI): Added GitHub Actions CI workflow to run formatting checks,
go vet, tests, and binary compilation on push and pull requests.
Changed
- Animation Default Inverted: Animations are now ON by default (Fluid 1.0x) for natural UI navigation. Added
--no-anim/--no-animationsflag to explicitly disable animations (0x) for instant UI response. - Background Process Capping: Configured
max_cached_processes=4alongsidebackground_process_limit=4to eliminate hidden cached app RAM bloat on Android 14–37. - CPU Thread Tuning: Set
hw.cpu.ncore=2intune-avdto curb host thread stack allocation and parallel compilation thread churn. - PhotoPicker Protected: Excluded
com.google.android.photopickerby default to ensure modernActivityResultContracts.PickVisualMediadialogs remain functional.
v1.0.7
Added
- OS-Specific GPU Backends: Automatically selects
-gpu hoston macOS (native Apple Metal acceleration),-gpu autoon Linux and Windows (native DRI/Vulkan and Direct3D 11 via ANGLE), and-gpu swiftshader_indirecton headless Linux CI runners without display servers. - Flexible Device Target Resolution: Commands (
stop,snapshot,on,off,bench) now accept numeric 1-based index numbers (1,2), AVD names (Slim_Pixel_5), or ADB serials (emulator-5554). - Physical Keyboard Forwarding: Automatically sets
hw.keyboard = yesduringtune-avdso typing on host keyboards works out-of-the-box inside the emulator.
Changed
- Default RAM Raised to 1536 MB: Raised default guest RAM from 1024 MB to 1536 MB across CLI flags, Android Studio shim, AVD tuner, bake snapshots, and GitHub Actions workflows. Balances lightweight host memory (~1.7 GB) with guest OS
lmkdheadroom, preventing Gboard and dev application kills on Android API 34–37 images.
Fixed
- Fixed
avdslim stopto correctly target emulators by index, name, or serial with responsive termination polling. - Fixed
github-repo-statsworkflow downsampling ZeroDivisionError on new or sparse data branches.
v1
Full Changelog: v1.0.5...v1
Full Changelog: v1.0.6...v1
Full Changelog: v1.0.7...v1
Full Changelog: v1.0.8...v1
v1.0.6
Upgrading
- Run
avdslim install-shimagain after upgrading if you use the Android
Studio shim. Shims installed by 1.0.5 or earlier don't read the new defaults
file.avdslim doctorflags an outdated shim. go install github.com/kdbhalala/avdslim/cmd/avdslim@latestworks again
(the module path now matches the repository).- Emulators slimmed by 1.0.5 or earlier have no saved setting values, so
avdslim offstill resets them to stock (animations 1x, location on).
Runavdslim offthenavdslim ononce to start saving your own values.
Added
--skip=animations,bglimit,sync,location,setuponon,watch,start,
bakeandsnapshotto leave those settings unchanged.- Per-user defaults file (
~/Library/Application Support/avdslim/defaultson
macOS,~/.config/avdslim/defaultson Linux). The shim reads--ramfrom
it at every launch. doctorandwatchwarn when an Android Studio emulator update has
replaced the shim.- Release tarballs carry build provenance attestations
(gh attestation verify). TRADEMARKS.md: naming rules for forks and the list of official channels.
Changed
avdslim offrestores each setting to the value it had before
avdslim on, instead of fixed stock values.startpasses--aggressive,--keepand--skipthrough to slimming.install-shimrefuses on Windows with an explanation (the script wrapper
never worked there);uninstall-shimstill removes an old one.
Fixed
avdslim versionnow reports the release tag.
v1.0.5: 1024MB Default RAM, Golden SDK Recommendations & GitHub Action CI Support
⚡ What's New in v1.0.5
v1.0.5 introduces a leaner default memory footprint (1024 MB RAM), built-in SDK image auditing, and official support for the GitHub Actions Marketplace.
🌟 Highlights
-
1024 MB Default RAM Allocation:
- The default RAM allocation across
avdslim tune-avd,avdslim launch, the Android Studio emulator shim, and GitHub Actions is now 1024 MB (down from 1536 MB). Emulators run smoothly while saving up to 75% host RAM.
- The default RAM allocation across
-
Golden SDK System Image Recommendations (
avdslim doctor):- Added diagnostics to detect and audit AVD system images:
- ✅ Google APIs (Standard 4 KB): Recommended. Full Firebase Auth, Google Sign-In, FCM Push, and Maps support with zero Play Store updater bloat + guest root enabled for kernel memory compaction.
- 🚨 16 KB Page Size (
ps16k) Detection: Alerts users when QEMU enforces a hardcoded 4096 MB RAM floor and allocates 4x larger page buffers. ⚠️ Google Play Production Image Detection: Alerts users when Play Store background self-updaters and lack ofadb rootincrease RAM usage by ~40%.
- Added diagnostics to detect and audit AVD system images:
-
Graceful Shutdown & Snapshot-on-Exit (
avdslim stop):avdslim stop: Interactive prompt asks if you want to save the current state into the Golden Snapshot before powering off.avdslim stop --snap: Automatically trims memory, refreshes the Golden Snapshot, and shuts down in one step.
-
Official GitHub Action (
uses: kdbhalala/avdslim@v1):- Pre-configured composite action to prevent
OutOfMemory(OOM) kills on memory-constrained GitHub Actions CI runners (ubuntu-latest7 GB /macos-latest14 GB).
- Pre-configured composite action to prevent
📦 Installation & Upgrade
Homebrew (macOS & Linux)
brew update
brew upgrade avdslim
# or for fresh install:
brew install kdbhalala/avdslim/avdslimCurl Install Script
curl -fsSL https://raw.githubusercontent.com/kdbhalala/avdslim/main/install.sh | bashGitHub Actions CI
- name: Optimize Android Emulator RAM
uses: kdbhalala/avdslim@v1
with:
ram: '1024'
install-shim: 'true'🔍 Verification & Diagnostics
Run the updated doctor command to audit your installed AVDs and system images:
avdslim doctorFull Changelog: v1.0.4...v1.0.5