# Battery

***

## 🔋 Battery Overview & How to Use

Spoofing the battery level is useful for stable, long-running device life. Android phones will still routinely self-check the battery state even when hard-wired by a BMS cable. The system often can't determine the state of the battery and maybe shut itself down or throttle operations.

### Why spoof battery level (and how it helps)

By not spoofing the battery level, a phone often encounters the following:

* Force reboots
* Performance throttling due to triggered thermal or low-battery protection
* Halting background tasks or automation flows

By spoofing the level values you:

* Prevent unexpected reboots
* Maintain maximum performance
* Avoid operating system safety features that would otherwise interrupt automations

{% hint style="success" %}

#### Recommended Levels

* Battery Level: `100%`
* Battery Temperature: `~25°C`
* AC Charging: Enabled (if chassis supplies power)
  {% endhint %}

***

<figure><img src="https://740728927-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyHs71H35gSuLlkbdhdKs%2Fuploads%2FVauIseULltgJcnf8OYUw%2FScreenshot%202025-10-24%20171827.png?alt=media&#x26;token=048b8edd-dfa1-4fd6-bd6d-ddea38fdc455" alt=""><figcaption><p>View of the Battery Tab</p></figcaption></figure>

***

### How to use Battery Automation

1. **Select devices** at the top (individual cards or **Select All**).
2. In **Battery Automation**, either:
   * Use an existing set (click **Apply Set X**)
   * Or create a new set: click **+ Add Battery Set**, choose level & temp, toggle AC charging, then **Save**.
3. Click the set’s **Apply** button — the selected devices will receive the spoofed battery values.
4. Verify device cards update to show the new battery % and temperature.

***

### Quick Actions

* **Set to Full (100%)** — Instantly sets selected devices to 100% battery. Use for immediate stabilization.
* **Reset Battery State** — Clears spoofing and returns devices to their real readings. Use only for testing or troubleshooting.
* **Enable/Disable AC or USB Charging** — Toggle charge source simulation to match your physical setup.
* **Custom Level / Temp** — Enter a numeric value and click **Set Level** / **Set Temp** to apply a one-off spoof.

***

### Examples & Best Practices

* **Long-running automation / miners / farms:**
  * Apply a Battery Set with `100%`, `25°C`, AC charging **enabled**.
  * Run a scheduled task to re-apply the set every X hours if your setup resets battery state on reboot.
* **Testing or power-cycling scenarios:**
  * Use **Reset Battery State** after tests to return devices to real battery reporting.
* **When swapping devices or hubs:**
  * Verify ADB and device connectivity before applying battery sets. If a device shows `0%` unexpectedly, set it to `100%` immediately to avoid automatic reboot.

***

### Troubleshooting

* **Spoof didn’t apply / values unchanged:**
  * Ensure the device is selected and authorized (ADB keys or USB authorization accepted).
  * Check ADB connection (Reset ADB on Settings page if stuck).
  * Verify the device supports battery spoofing (some OEM firmwares heavily restrict ADB hooks).
* **Device reboots after spoof applied:**
  * Confirm spoof values (set to 100% and 25°C).
  * Ensure AC charging is enabled if the chassis supplies power.
  * Check system logs (Terminal / Device logs) for OS-level reasons.
* **Spoof disappears after device restart:**
  * Battery spoofing is ephemeral — re-apply using an automation set or script at boot.
  * Consider adding a startup automation to apply the desired Battery Set on device reconnect.

***

### Automating re-application

For clusters where devices may reboot, create an **Automation Flow** that:

1. Waits for device online event
2. Applies your preferred Battery Set (100% / 25°C / AC on)
3. Logs success and retries on failure

This prevents manual intervention after reboots and keeps fleets stable.

***

### Quick Checklist before running automation

* [ ] Devices selected and ADB-authorized
* [ ] Desired Battery Set created and saved
* [ ] AC charging toggled correctly to match hardware
* [ ] Automation flow created (optional) to re-apply set on reconnect
