Home | History | Annotate | Download | only in scripts
      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