simulate status using adb & telnet - android

I am trying to understand how to simulate statuses (battery, sensors, etc) using adb and telnet. I am using emulator.
On doing:
adb shell battery
there is no change in simulator status
But on doing:
adb shell dumpsys battery set level 5
I can see change in value.
I therefore would like to ask:
Is there any reason why "adb shell battery " does not work with emulator?
setting value with dumpsys does works, although it is documneted that dumpsys is used for dumping status (and there is no documentation for other usages). and the questions, is whether we can use dumpsys to set other statuses, such as sensors ? if yes - how we can find out how to set other values ?
What is ther purpose of telnet to the device ? Seems that some attributes can be set using telnet and some using the adb utility. Why are these 2 utilities required and not only one ?

Related

how can I understand if the phones are really rebooted adb

Im trying to reboot the devices and really check that they are really rebooted. I tried to use uptime like this: adb s device id uptime
but didnt work .
For the purpose of checking device's uptime the following command provides data in a format which is much easier to work with:
adb -s <device_id> shell cut -d' ' -f1 /proc/uptime
But checking the device's uptime immediately after reboot is pointless - the device would not be available. So it would make more sense to check the local USB device enumeration instead.

How to toggle turn on/off mobile data with adb command

I looking for toggle my android phone mobile data with adb command. that is usually i do it with touch my mobile data icon in settings.
i found many reference to do it, for example this question , but nothing work for me, i try use:
$ adb shell svc data enable
$ adb shell svc data disable
when i look to my android phone nothing happen.
my android is KitKat 4 and i sure have rooted
Thanks.

How to disable battery charging during ADB connection?

Problem description:
Each time wen I connect USB cable between PC and my mobile phone the battery automatically is charged. I want to use ADB protocol but I don't want to charge my battery during ADB connection. Is it possible to to turn off this charging? And ofcourse how can I do this?
Environment:
Mobile phone with Android os 4 and higher
I need only mention that my referential device working on android 5 so there is no /sys/class/power_supply/battery/force_usb_charging file
BEWARE: adb shell dumpsys battery unplug only MOCKS the battery status. I checked with a current indicator on my usb cable and this does not change the amount of flowing current at all so the battery is still charging.
It only changes what applications think about the state, so for example google play would not start updating if you have configured that it can only update when charging...
Changing the value of a file like /sys/devices/battery.XX/power_supply/battery/hv_charger_set to 0 does really work but its a different file for every device. For example, for my yotaphone 2 with a snapdragon 805 there is a file: /sys/devices/qpnp-charger-14/power_supply/battery/charging_enabled
So you could make a script that you can use in tasker(if you have root):
echo $1 > /sys/devices/qpnp-charger-14/power_supply/battery/charging_enabled
if you write that to an executable file /data/setcharging.sh then you could call the script like /data/setcharging.sh 0 to disable or
/data/setcharging.sh 1 to enable.
This works, I checked with my current metering usb cable, but it does not show that it works in the battery status icon. So you could use a combination of this and adb shell dumpsys battery unplug / reset to make it look better, but the problem is that then apps like tasker don't know whether you have ac power or not, so you can not put triggers for that when you've set it to unplugged...
One more thing, I also tested what it does in recovery (twrp) and during boot. And it turns out that during boot and in recovery, the charging just works. So its not like your device will end up dead if you forget to turn on charging again. You can always charge it in recovery mode and then boot up and change the value again (or change it while in recovery if your recovery gives access to adb).
Lastly, there are apps on the play store that are made exactly for this, but I would recommend getting such a current indicating usb-cable and checking if they really do what they say and are not just mocking.
You can make the system think it is not loading th battery using
adb shell dumpsys battery unplug
Refer to this good article :
https://stanfy.com/blog/android-shell-part-1-mocking-battery-status/
Try this for rooted device:
To enable battery Charging:
adb shell dumpsys battery set ac 1
adb shell dumpsys battery set usb 1
adb shell dumpsys battery set wireless 1
To disable battery Charging:
adb shell dumpsys battery set ac 0
adb shell dumpsys battery set usb 0
adb shell dumpsys battery set wireless 0
Probably it can be done via (root privileges):
/sys/devices/battery.XX/power_supply/battery/hv_charger_set
0 - Disable USB Charging
1 - Enable USB Charging
if android os version is more than 6 use unplug and reset to revert back.
adb shell dumpsys battery unplug
adb shell dumpsys battery reset
Copied from perfetto.dev
On rooted phones the power management IC driver allows to disconnect the USB charging while keeping the USB data link active. This feature is SoC-specific, is undocumented and not exposed through any HAL. For instance on a Pixel 2 this can be achieved running, as root: echo 1 > /sys/devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998#2:qcom,qpnp-smb2/power_supply/battery/input_suspend. Note that in most devices the kernel USB driver holds a wakelock to keep the USB data link active, so the device will never fully suspend even when turning the screen off.

Battery usage during application test

I’m looking for battery parameter in Ruby that’s tells me the usage while the app is running.
I want to take the battery status snapshot in the beginning of the run, take another snapshot in the end of the run and then calculate the usage.
Battery level status won’t give me the result that I need – the app runs are shorts in my testing and the % won’t change or won’t give me what I need.
I abled to connect to the device wireless for those tests
(the command: adb shell setprop persist.usb.chgdisabled 1 didn’t work).
The command adb shell dumpsys battery won’t give me anything.
Maybe it is the command adb shell dumpsys batteryinfo
Your thoughts?
adb shell dumpsys batterystats
Should give you the info you want.

How to get ADB status?

This post described how to switch on and switch off debugging via WiFi. Is there way to detect current status for this? I think I need to get current value of service.adb.tcp.port and check it on equals -1. But how to get this value?
To debug via wifi you need to connect your device(phone/ tablet) to the same network as your pc. Get the device's ip from the advanced menu in Settings -> WiFi. Then use this to connect to the device:
adb connect deviceip
Now, when you use adb devices, you should see something like deviceip:5555 device.
UPDATE:
To truly answer your question: to get the value you are looking for just use this:
adb shell getprop service.adb.tcp.port

Categories

Resources