1 #!/usr/bin/env python3 2 # 3 # Copyright (C) 2018 The Android Open Source Project 4 # 5 # Licensed under the Apache License, Version 2.0 (the "License"); 6 # you may not use this file except in compliance with the License. 7 # You may obtain a copy of the License at 8 # 9 # http://www.apache.org/licenses/LICENSE-2.0 10 # 11 # Unless required by applicable law or agreed to in writing, software 12 # distributed under the License is distributed on an "AS IS" BASIS, 13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 # See the License for the specific language governing permissions and 15 # limitations under the License. 16 17 """ 18 battery_simulator.py is an interactive shell that modifies a device's battery 19 status. 20 21 $ battery_simulator.py 22 ...> 60 # Sets battery level to 60%. 23 ...> on # Plug in charger. 24 ...> 70 # Sets battery level to 70%. 25 ...> off # Plug out charger. 26 ...> q #quit 27 28 """ 29 30 import atexit 31 import os 32 import re 33 import sys 34 35 def echo_run(command): 36 print("\x1b[36m[Running: %s]\x1b[0m" % command) 37 os.system(command) 38 39 def battery_unplug(): 40 echo_run("adb shell dumpsys battery unplug") 41 42 @atexit.register 43 def battery_reset(): 44 echo_run("adb shell dumpsys battery reset") 45 46 def interactive_start(): 47 while True: 48 try: 49 val = input("Type NUMBER, 'on', 'off' or 'q' > ").lower() 50 except EOFError: 51 print() 52 break 53 if val == 'q': 54 break 55 if val == "on": 56 echo_run("adb shell dumpsys battery set ac 1") 57 continue 58 if val == "off": 59 echo_run("adb shell dumpsys battery set ac 0") 60 continue 61 if re.match("\d+", val): 62 echo_run("adb shell dumpsys battery set level %s" % val) 63 continue 64 print("Unknown command.") 65 66 67 def main(): 68 battery_unplug() 69 interactive_start() 70 71 if __name__ == '__main__': 72 main() 73