Awesome developer Joao have (yesterday) released a brand new app called AutoTools to his big AutoApps-library. It´s supposed to be a ``supercharged Tasker´´. For example it has it´s own ``secure settings´´ very similar to the old original Secure Settings-app it self that stopped development a couple of years ago. And wait for it... it does NOT require root!
There are though warnings that claims the functions will not work on all phones and also to enable ``secure settings´´ you need to connect the phone to a PC and install a specific software etc. (all info is in the app).
I have not yet dived into all the functions myself but only checked it briefly. But this is exactly what Tasker needs And who else to bring it than Joao, he is really brilliant :good:
Read more HERE and take a look at the really informative Youtube video.
About the ``Secure settings´´ function.
AutoTools Secure Settings
This allows you to change settings on your device that you normally wouldn't be able to with Tasker
NO ROOT is needed for this action
Examples
Turn GPS on when in Google Maps, turn it off otherwise (No Root!)
Change Animation Speed with a Quick Tile on Android 7 and Above
Change input keyboard depending on situation
Set Screen Orientation
To use this, AutoTools needs to be granted permission to change secure settings on your device
How to grant AutoTools the Secure Settings permission
Enable Developer Mode: Go to Android Settings -> About Phone and look for the Build Number option. Touch it multiple times until developer mode is enabled.
Enable USB Debugging: Go to Android Settings -> and look for the Developer Options option. In there, enable the USB debugging option.
Install ADB on your PC: Check here for a quick way to do it.
Connect device to PC: Connect your device to a PC and look on your phone. A prompt should show up asking you to allow your phone to be debugged by your PC. Accept this.
Grant permission: Open a command line on your PC and write
adb shell pm grant com.joaomgcd.autotools android.permission.WRITE_SECURE_SETTINGS
Congratulations, AutoTools should now be able to use the "Secure Settings" action!
Click to expand...
Click to collapse
https://joaoapps.com/AutoApps/Help/...utotools.activity.ActivityConfigsettings.html
Warning info inside the app claims that ``mobile data´´ only will work on 25% of all devices, but I can confirm that it works on my S7 edge. Also power saver mode and GPS ''battery saver/high accuracy/off'' works as a charm.
Auto Tools been out for a hot minute…
snej81 said:
but I can confirm that it works on my S7 edge. Also power saver mode and GPS ''battery saver/high accuracy/off'' works as a charm.
Click to expand...
Click to collapse
And airplane mode?
You can toggle the Air Plane Mode by shell code, if you can't with that...
cottino said:
And airplane mode?
Click to expand...
Click to collapse
Just tried it and got some strange results lol. Airplane mode enables (icon lights up) and mobile data turns off BUT cell connection is still up and I can make calls and send texts. So you could say that I get ``almost airplane mode...´´.
I read about some Marshmallow bug though for third party apps writing system settings even with permissions, could be what causing this.. https://code.google.com/p/android/issues/detail?id=194376
loogielv said:
Auto Tools been out for a hot minute…
Click to expand...
Click to collapse
It has been out as a Beta app for a long time. It was released to the public a few days ago :-}
For Airplane Mode ( I don't have root), I use AutoInput to open up the notifications shade, then simulate a press of the airplane mode button. Works perfect
This is a lifesaver coming from Tasker + Secure Settings and System Module+ enabled which is not functioning with Marshmallow for GPS until I found someone talking about this app. Confirmed working with Marshmallow on LG G5 I'm very happy as soon as I saw it worked, I just bought the full version. This was the only issue I had as I like to use Waze often in my car and one or two less clicks is just another annoyance I didn't need :laugh:
can someone help me, I don't know how to install ADB, I'm running windows 10 home on my laptop,
Do i still need to do the adb command part if i'm rooted?
PAULRYAN52 said:
can someone help me, I don't know how to install ADB, I'm running windows 10 home on my laptop,
Click to expand...
Click to collapse
Not sure if you found the answer, but Google recently released an installer for just the tools like adb and fastboot: https://developer.android.com/studio/releases/platform-tools.html
I found out in the end
Hi everyone!
I just created my first Tasker plug-in. This plug-in enables you to send an adb shell command to any other device on the network that has adb over wifi enabled. I for example use it to turn my androidtv on or off by sending it the command "input keyevent POWER". You can also open specific activities in apps for example or simulate touch input.
Please read the description before using it and don't hesitate to leave feedback/bug reports/tips! This is my first app ever published so I still have a lot to learn.
You can download it for free from the play store:
https://play.google.com/store/apps/details?id=com.ADBPlugin
Edit: It's now also available on XDA Labs! You can find it here
First update is live!
This includes proper (cat)logs and Tasker errors if something went wrong, so if you run in any problems, you can now tell me . It also plays a lot nicer with the Tasker timeout system.
@Humpie
Thanks for this plugin. I allready made a project for my sony android tv. Start apps and controll media play.
But to make the plugin better I have some featur requests:
It would be nice to be able to work with tasker variables. e.g input text "%mytext".
Another feature reqest would be to get a output variable for commands with output like adb shell pm list packages.
MartelKombat said:
@Humpie
Thanks for this plugin. I allready made a project for my sony android tv. Start apps and controll media play.
But to make the plugin better I have some featur requests:
It would be nice to be able to work with tasker variables. e.g input text "%mytext".
Another feature reqest would be to get a output variable for commands with output like adb shell pm list packages.
Click to expand...
Click to collapse
Thanks for the tips! Will definitely add variable support and I'll also have a look at output variables. They are visible in the logs already, but not yet to tasker.
Why can't we use the built-in code Acton in Tasker? Is there a difference?
loogielv said:
Why can't we use the built-in code Acton in Tasker? Is there a difference?
Click to expand...
Click to collapse
In fact there is, since android 4.something google removed adb from android devices, so you can't perform adb commands from your phone, well aside from my plugin that is.
There would however be no difference if your remote device did have Tasker and you programmed it so that a certain action does something with code. However, you would have to figure out a way to contact that device etc...
Second update! The Plugin now has Tasker variable support!
(enjoy @MartelKombat btw I'm still thinking about how to implement your other request!)
I doont understand. I can type the code, but i do have to remove the "adb sell" part of the code but it's good to go… is that not what this plugin does?
Humpie said:
Thanks for the tips! Will definitely add variable support and I'll also have a look at output variables. They are visible in the logs already, but not yet to tasker.
Click to expand...
Click to collapse
Humpie said:
Second update! The Plugin now has Tasker variable support!
(enjoy @MartelKombat btw I'm still thinking about how to implement your other request!)
Click to expand...
Click to collapse
Any news on the output variable? I have high hopes since you mentioned you already see the output in the logs...
Thanks a lot for this plugin! It makes an unrooted phone much easier to control!
How to run root commands on an unrooted device with this plugin
I just wanted to share how I use this plugin, just to give others an example of what this nice plugin is capable of.
Recently, I bought a new device and for now, I have no intention of rooting it. Coming from a rooted OnePlus One, this means some of my Tasker profiles do not work as expected anymore and I have to find workarounds.
On LineageOS (and CyanogenMod before that), we have the option to display left/right cursor arrows in the navigation bar when typing text. I always loved this feature, since placing the cursor in the right position by tapping will always be a hit&miss game. Since my new device (S7 Edge) has no onscreen navigation bar, I was searching for a replacement solution to move the cursor. I came up with the idea that it would be quite handy to use the volume buttons for this. So, the idea was the following:
IF the keyboard is shown THEN use the volume keys to move the cursor (and suppress any volume changes, if possible).
It took me a while to figure out how to determine whether the keyboard is out (solution: install another keyboard and intercept the "change input method" notification as a trigger). Suppressing the volume keys' usual behaviour was easy (AutoInput -> Key Suppress) but the final step turned out to be quite difficult: How to move the cursor?
After doing some extensive research, I always came to the same point: "not possible without root". Damn.
But then, this plugin came in. The keyword "remote" in its name might suggest that you can use this plugin only to act from one device to another, but that's not true. Actually, you can use this plugin to run adb commands on the same device.
What does that mean? It means that you can run an adb shell command like "adb shell input keyevent xy" on your phone WITHOUT ROOT. In my case, I can run "input keyevent 21" and "input keyevent 22" to move the cursor. So, how can we do that?
Prerequisites:
Connect your device via ADB to a PC (google it if you don't know how) and run the command "adb tcpip 5555". That's it, you can disconnect your device now.
Then in Tasker, create an action with this plugin and type in the following:
IP Address: localhost
Port: 5555
ADB Shell Command: input keyevent POWER
Hit the play button to test this action. If you've done everything right, your screen will turn off.
Congrats, you just executed a command on an unrooted device which usually requires root privileges!
Important:
The only downside is, the tcpip setting does not survive a reboot, so you have to set the port 5555 again via PC after rebooting the device.
I hope I explained the important part well enough. If that's not the case, don't hesitate to quote me and I'll answer here.
digitalpig82 said:
Any news on the output variable? I have high hopes since you mentioned you already see the output in the logs...
Thanks a lot for this plugin! It makes an unrooted phone much easier to control!
Click to expand...
Click to collapse
I'm sorry for my absence, really busy with school etc. (honestly, I also completely forgot, I hope you can forgive me). I'll try to look into it soon (this week or the next) and see how far I get. I really like that you like my plugin! I just found out myself last week that I can let unrooted phones send shell commands to themselves using my plugin, so I'm glad to see you found it out as well! (I used it for snapchat to simulate volume key presses, which is also possible without root indeed: https://www.reddit.com/r/tasker/comments/699sav/project_share_handsfree_snapchat_picture_and/ It also works for other camera apps that require you to hold the button to film, like whatsapp etc)
Edit: I hope it pleases you to hear that today I started working on it again. I already have the responses bundled in a list in Java, now I just need to parse them to Tasker
loogielv said:
I doont understand. I can type the code, but i do have to remove the "adb sell" part of the code but it's good to go… is that not what this plugin does?
Click to expand...
Click to collapse
Yes, you have to remove the "adb shell" part since all my plugin does is access the adb shell part. This means commands like adb pull etc won't work, that requires a different type of connection, that for now I can't achieve with Tasker. But running any remote shell command should be fine (like how you would run it if you were directly running the commands from a terminal on your phone)
digitalpig82 said:
I just wanted to share how I use this plugin, just to give others an example of what this nice plugin is capable of.
Recently, I bought a new device and for now, I have no intention of rooting it. Coming from a rooted OnePlus One, this means some of my Tasker profiles do not work as expected anymore and I have to find workarounds.
On LineageOS (and CyanogenMod before that), we have the option to display left/right cursor arrows in the navigation bar when typing text. I always loved this feature, since placing the cursor in the right position by tapping will always be a hit&miss game. Since my new device (S7 Edge) has no onscreen navigation bar, I was searching for a replacement solution to move the cursor. I came up with the idea that it would be quite handy to use the volume buttons for this. So, the idea was the following:
IF the keyboard is shown THEN use the volume keys to move the cursor (and suppress any volume changes, if possible).
It took me a while to figure out how to determine whether the keyboard is out (solution: install another keyboard and intercept the "change input method" notification as a trigger). Suppressing the volume keys' usual behaviour was easy (AutoInput -> Key Suppress) but the final step turned out to be quite difficult: How to move the cursor?
After doing some extensive research, I always came to the same point: "not possible without root". Damn.
But then, this plugin came in. The keyword "remote" in its name might suggest that you can use this plugin only to act from one device to another, but that's not true. Actually, you can use this plugin to run adb commands on the same device.
What does that mean? It means that you can run an adb shell command like "adb shell input keyevent xy" on your phone WITHOUT ROOT. In my case, I can run "input keyevent 21" and "input keyevent 22" to move the cursor. So, how can we do that?
Prerequisites:
Connect your device via ADB to a PC (google it if you don't know how) and run the command "adb tcpip 5555". That's it, you can disconnect your device now.
Then in Tasker, create an action with this plugin and type in the following:
IP Address: localhost
Port: 5555
ADB Shell Command: input keyevent POWER
Hit the play button to test this action. If you've done everything right, your screen will turn off.
Congrats, you just executed a command on an unrooted device which usually requires root privileges!
Important:
The only downside is, the tcpip setting does not survive a reboot, so you have to set the port 5555 again via PC after rebooting the device.
I hope I explained the important part well enough. If that's not the case, don't hesitate to quote me and I'll answer here.
Click to expand...
Click to collapse
So...is it possible to create a version of the plugin that runs locally and doesn't disappear on a reboot?
kenkiller said:
So...is it possible to create a version of the plugin that runs locally and doesn't disappear on a reboot?
Click to expand...
Click to collapse
I would like to be able to create such a think but I don't think Google would allow it since it's a big security flaw to have adb opened to the world at all time without notifying the user. Some devices however have a debug over wifi function hidden in the developer options (like the nvidia shield android tv), there you can just enable it and it will probably survive a reboot.
However what I would advise to do if this option is not available, is to create a .bat file on your desktop containing "adb tcpip 5555". That way after a reboot you can just plug in your phone, click the bat file and be done!
Humpie said:
I would like to be able to create such a think but I don't think Google would allow it since it's a big security flaw to have adb opened to the world at all time without notifying the user. Some devices however have a debug over wifi function hidden in the developer options (like the nvidia shield android tv), there you can just enable it and it will probably survive a reboot.
However what I would advise to do if this option is not available, is to create a .bat file on your desktop containing "adb tcpip 5555". That way after a reboot you can just plug in your phone, click the bat file and be done!
Click to expand...
Click to collapse
Hmm....But there's this custom nav bar app where it allows users to grant it adb shell permissions, and the permission survives over reboots. Auto tools and Securetask relies on the same process as well.
I guess what we're asking for is something that's not as encompassing as your plugin. Me, I just want to execute the power command without root in a way that respects smart lock, which is possible now with your app but doesn't survive a reboot, or with the custom nav bar app, which survives a reboot, but restricts me to using it in a tiny button on the nav bar, as the dev doesn't seem interested in exposing the commands to external usage.
---------- Post added at 07:30 AM ---------- Previous post was at 07:28 AM ----------
We discussed it in this part here....
https://forum.xda-developers.com/an...avigation-bar-customize-t3590967/post72212488
kenkiller said:
Hmm....But there's this custom nav bar app where it allows users to grant it adb shell permissions, and the permission survives over reboots. Auto tools and Securetask relies on the same process as well.
I guess what we're asking for is something that's not as encompassing as your plugin. Me, I just want to execute the power command without root in a way that respects smart lock, which is possible now with your app but doesn't survive a reboot, or with the custom nav bar app, which survives a reboot, but restricts me to using it in a tiny button on the nav bar, as the dev doesn't seem interested in exposing the commands to external usage.
---------- Post added at 07:30 AM ---------- Previous post was at 07:28 AM ----------
We discussed it in this part here....
https://forum.xda-developers.com/an...avigation-bar-customize-t3590967/post72212488
Click to expand...
Click to collapse
It seems this app uses specific android permissions to be able to send events etc. However my plugin has no direct access to the android system (only by using the adb bridge), so granting my plugin these permissions won't help. What however would help is if I could find a way to enable adb over wifi using only some permissions... I have no clue whether this is possible though as the app would have to call service.adb.tcp.port 5555 for itself and that needs root or an adb connection (so it still requires a laptop XD). I'm still trying though.
Humpie said:
It seems this app uses specific android permissions to be able to send events etc. However my plugin has no direct access to the android system (only by using the adb bridge), so granting my plugin these permissions won't help. What however would help is if I could find a way to enable adb over wifi using only some permissions... I have no clue whether this is possible though as the app would have to call service.adb.tcp.port 5555 for itself and that needs root or an adb connection (so it still requires a laptop XD). I'm still trying though.
Click to expand...
Click to collapse
No worries. It's just that it's so close yet so far, heheh.... I guess I'll have to reboot only when home.
kenkiller said:
No worries. It's just that it's so close yet so far, heheh.... I guess I'll have to reboot only when home.
Click to expand...
Click to collapse
I found out it is in fact possible to have wireless adb survive a reboot! However it requires a build.prop edit.
in \system\build.prop "service.adb.tcp.port=5555" needs to be added at the end of the file and then after a reboot adb over wifi will still be enabled (at least it was in my case).
The downside is that this modification can't be done via adb without root unless you have a custom recovery like TWRP and run adb while having that opened and /System/ mounted.
I'm trying to create a zip that modifies the build.prop how it should be modified, but I don't think it's possible to run it through a non-custom recovery...
Edit: I added my .bat file for modifying the build.prop adding that line. It uses an adb connection that requires more rights than what android allows when booted, but should probably work if you are able to access adb from recovery and you are of course booted in recovery mode (using recoveries like TWRP or even some stock manufacturer ones).
Update 4.3 is live!
As requested you can now access the output from the console directly in Tasker.
I tried to order everything neatly in a list, with each line in the console being an item in the list, but this does mean that the initial "device\sdcard $" et cetera get added as an item as well.
But since I didn't want to cut off anything important I just kept it that way. You can just modify the list in any way you want (AutoTools has some handy Array handling tools built in).
I also added some hints in the main screen just for fun.
If you run into any strange behaviour, bugs or have tips, please tell me!
digitalpig82 said:
Any news on the output variable? I have high hopes since you mentioned you already see the output in the logs...
Thanks a lot for this plugin! It makes an unrooted phone much easier to control!
Click to expand...
Click to collapse
Enjoy
Since most people are using my Plugin locally instead of remotely, I'm thinking of renaming it to just 'ADB Shell [Tasker]'. It would make it simpler when googling it. What do you think?
Hi there,
I hope, someone can help me
I'm using Tasker for a while on several devices. For example I use profiles which turn location mode off or to high accuracy (using external app Autotools - Secure Settings) and mobile data on or off (using external app toggle data 5.0). This worked well until I updated our Oneplus 5T to Android 8.0.
The external app commands seem to work sometimes, but the rest of the profile tasks aren't executed and next time the commands don't work anymore.....
FYI: Autotools is granted permission to write secure settings and toggle data 5.0 has root access.
Toggle data 5.0 also got a widget to turn mobile data on or off and this works perfectly but tasker seems to have problems to use this external app and the app seems to freeze for a while after executing the task .
I attached an image from a run, where tasker managed to change location mode to high accuracy but stopped after this task with an error.
All apps are up to date (Tasker v5.1, Autotools v2.1.bf, Toggle Data 1.5.2.0) and the Oneplus 5T is on the latest Oxygen OS Version 5.0.4 (but on 5.0.3. the tasks didn't work either).
Thanks in advance
Better to include the log from running the task, probably a logcat as well since there is communication with plug-ins and it's always a good idea to share your profile when it's not working as expected. Make sure it's named - not a default name assigned by tasker. Then long press on the name to highlight the profile. Go to the 3-dot menu and select export -> Description to Clipboard.
Then you'll be able to paste it. Be aware, it easier to use pastebin then link to a post here. If you paste in a post here, the forum software will convert all semicolons with characters after, typically "on" and "off" to emoticons making it very hard to read.
"Good judgment comes from experience, and a lot of that comes from bad judgment." - Will Rogers
Since you have root, you can try to use the Run Shell action instead.
lauralbaby said:
Since you have root, you can try to use the Run Shell action instead.
Click to expand...
Click to collapse
Thank you very much for your answer
After a quick research I found the two shell commands "svc data enable" and "svc data disable" to enable and disable mobile data which work fine with root permission:good:
Do you know, if there are commands for changing location mode to off and high accuracy, too? I only found commands like " adb shell settings put secure location_providers_allowed ' ' " but these didn't work.
Thanks in advance.
Try changing location_mode from 3 to 0.
lauralbaby said:
Try changing location_mode from 3 to 0.
Click to expand...
Click to collapse
Could you please tell me the exact command, for example for location mode 0? The command i found doesn't work because the terminal and tasker can't use ADB....
.
Just take off the "adb shell" part:
settings get secure location_providers_allowed
network,gps
Run the "get" command to be sure you have the right values before changing them.
(BTW if AutoTools doesn't work Secure Settings or Secure Task might be worth trying.)
lauralbaby said:
Just take off the "adb shell" part:
settings get secure location_providers_allowed
network,gps
Run the "get" command to be sure you have the right values before changing them.
(BTW if AutoTools doesn't work Secure Settings or Secure Task might be worth trying.)
Click to expand...
Click to collapse
With your help and another research and tests I finally found the solution:laugh:
Thank you very much for your help
If you or anyone else wants to know the correct commands:
Turn location mode to high accuracy:
Code:
settings put secure location_providers_allowed +network,gps
Turn location mode off:
Code:
settings put secure location_providers_allowed -network,gps
Turn mobile data on:
Code:
svc data enable
Turn mobile data off:
Code:
svc data disable
So I am currently trying to make a non-root app that sends a text message with the geo position when receiving a password with the app factory. Problem is, that I haven't been able to find any reliable method of activating GPS on non-root devices. I have looked into secure settings, but that one needs root access to change location status. AutoTools secure settings has to be set up from the pc through adb to work proberly and most shell commands need root access as well.
So after all this I have narrowed it down to the possibility of being able to force android to show the GPS dialogue for the app. Is this possible, and if so, how?
I'm running OP2 with Pixel Experience android 8.1
Jakob1379 said:
So I am currently trying to make a non-root app that sends a text message with the geo position when receiving a password with the app factory. Problem is, that I haven't been able to find any reliable method of activating GPS on non-root devices. I have looked into secure settings, but that one needs root access to change location status. AutoTools secure settings has to be set up from the pc through adb to work proberly and most shell commands need root access as well.
So after all this I have narrowed it down to the possibility of being able to force android to show the GPS dialogue for the app. Is this possible, and if so, how?
I'm running OP2 with Pixel Experience android 8.1
Click to expand...
Click to collapse
Things have been changed after jelly bean... To enable gps automatically we need root permission.. I use AutomateIt app for the same setup but i needed root to activate gps automatically.
hasan4791 said:
Things have been changed after jelly bean... To enable gps automatically we need root permission.. I use AutomateIt app for the same setup but i needed root to activate gps automatically.
Click to expand...
Click to collapse
Dang it! I know it's possible with autotools, it's just not optimal for a. User to have to connect their device to the pc, learn about adb and all to get it to work..
This command:
Code:
am startservice -n com.google.wifisetup/.WifiSetupService -a WifiSetupService.Connect -e ssid "Testrouter" -e passphrase "1234467"
doesn't seem to work on LG Devices at. all.
is ther a substitute for "com.google.wifisetup" (probably lge. branded?) ?
Regards:
-Rye-
-Rye- said:
This command:
doesn't seem to work on LG Devices at. all.
is ther a substitute for "com.google.wifisetup" (probably lge. branded?) ?
Regards:
-Rye-
Click to expand...
Click to collapse
Is there a particular reason for connecting to Wi-Fi via ADB?
First and foremost: Ease of use. (Shell is always available and can be triggered from the device itself or over adb)
Aside from that, well, not necessarily. (At least not in "must be adb at all cost"- sense)
It's just that all the other options I tried (Tasker + Wifi Connect, MacroDroid, adb-join app) all refuse to work.
Shell is the last resort for me as far as this goes.
Sadly LG seems to handle wifi connections with their own settings app - inwhich I don't know the command for.
(I'd also be happy with a shell command that displays the "Wifi Picker" Dialogue [not the settings pane, way to inflexible])
A bit late, but maybe this will work?
adb shell "am start -a android.settings.WIFI_SETTINGS"