Execute shell commands in the smartwatch without root - Wear OS Q&A, Help & Troubleshooting

Hi everyone,
I have an LG G Watch R.
I want to execute in the smartwatch simple commands that do not need root.
It's strange, because from the adb shell I can use the command "cat /sdcard/hardbutton2 > /dev/input/event1" or "cp /sdcard/hardbutton2 /dev/input/event1" and works perfectly (this emulate a double press on the hardbutton of the smartwatch to enter theater mode), but from WearShell this commands or any other similar give me error (permission denied).
And with adb shell I can use the command "settings put global theater_mode_on 1" and works perfectly (this enter theater mode), but from WearShell does not make anything (I suppose that it's a permission denied too).
Does anyone know any way to execute shell commands on the smartwatch like that ones using tasker or any similar tool?
Thanks in advance and best regards

Related

busybox & Windows command prompt & colors & ls

ok... so, I've loaded my custom ROM and it contains busybox... I do like the extra functions that busybox offers over the stock Android "toolbox", so I don't really want to disable the commands like ls... I'd just like to turn the colors off.
Here's what I've found in my researches...
1) I can always
Code:
ls --color=never
but that is a lot of extra typing that I'm just not willing to do.
2) I can now SSH into my phone with putty and the colors are nice... but if I'm doing this over the cell modem (even EVDO), it's not too responsive (probably has some to do with currently running applications, syncs, and so forth)
3) I can use Droid Explorer and open a command shell from there, and the colors are nice... but Droid Explorer takes a lot longer to load than adb shell and the nice thing about being at my command prompt is if I need to push, pull, or remount (I understand I can always manually remount,rw and remount,ro from any shell, but adb makes it really easy to do with less typing) quickly... I can exit out of the shell, do the command, and go right back into the shell.
4) I can use Better Terminal Emulator on the phone... again... colors nice (I think you're seeing a theme here) but the typing is excruciating for long commands, and God forbid you make 1 typo... for quick things it's cool and to do a command while not at my computer, it's great.
5) If I were running Windows 95 (or maybe even XP), I could just use ansi.sys and do it. However, I've found that the only way ansi.sys works in a command prompt is to use COMMAND.COM and not CMD... plus you have to set CONFIG.NT to "dosonly" mode and include the driver in there... the biggest problem with all that is that adb will NOT run in DOS only mode. I even tried to adb shell from within a Cygwin command prompt (that already has colors enabled) but all the ansi color codes were lost.
So.... Here's my dilemma... I want colors when I'm not coming in through the Windows command prompt and adb shell. However, I want to disable the colors when I'm coming in through adb shell. I would probably settle for a different way to shell in from Windows 7 than the ones listed above.
I think I remember from my freshman year of college when they tried to teach me Unix, that you can set "default" command line switches for applications. For example, if you always wanted ls to do -l, then someplace you could set that as a default. I read on another post (possibly another forum) that somebody suggested editing .profile to do an alias of a command... something like
Code:
alias dir='ls --color=never'
but the problem with that is there's no .profile and there's no home directory for root or shell.
I even read that the standard ls uses an environment variable LS_OPTIONS, but I don't think that the stock Android ls uses it, and I can't get busybox to use it - plus, it'd be a pain to type that in every time I do an adb shell.
Does anybody have any suggestions or tips or any way to do this? If the alias will work, I'd be happy with that. I could then set dir to no color and keep ls with color. I could maybe even remap a command to do a ls -l all the time.
Thanks in advance.
This was what I ended up doing under Windows 7: http://softkube.com/blog/ansi-command-line-colors-under-windows/
This works for me:
Code:
export LS_COLORS=none
ls

[Q] Shell, terminal emulator, how to...?!

Greetings to all!
Can You tell me how can i use shell in WF, what can i do in/with shell, is shell useful for working with, where can i find commands for android shell...?!
I'v installed it but when i type "Su" there is no action only "command not found" also when i type some other commands...
You must be rooted and have Superuser installed to allow terminal emulator to access SU.
Im rooted!
Have you got the Superuser App? Because, at the very least, atleast the "su" command should work on the terminal emulator, irrespective of others.
Anyway, some read through threads for shell and it's commands:
http://forum.xda-developers.com/showthread.php?t=718264
http://forum.xda-developers.com/showthread.php?t=826769
Yes, i have...Thats why is strange for me...
I rooted WF on my Linux Ubuntu 10.10...
You'll need the android development kit from google. Extra the tools to your personal user bin folder. (~/bin) add into your path statement. Open interval in you should not have adb working. In the terminal using adb issue adb shell. You will now be in a shell on your phone through your computer
Sent from my Incredible using Tapatalk
I know about Adb using phone shell with my Pc but i dont want that, i thought that shell can use only with phone without Pc...To bad...
Or i didnt understand you...!?

Pershoot Kernel question

Hi guys,
could anyone explain me please how to enable usb charging with Pershoot´s Kernel (boot-cm_2636.4_ux-oc-xtra-vfpv3-d16_fp-101811)?
I rly don´t get this:
adb shell echo 1 > /sys/class/power_supply/battery/force_usb_charging
Thank you very much.
Sure bud,
The script you posted is meant to be run in a command prompt using the tablet's ADB interface. To access this you need the Android SDK (that is the tool for app development) installed on your PC. You can look up how to do this all over the interweb.
To make your life easier though, download a terminal emulator app from the Market, there are plenty of free ones. Once you've done that open it and run the script as follows
su
echo 1 > /sys/class/power_supply/battery/force_usb_charging
The "su" command gives you root access just as "adb shell" would in command prompt.
The catch is the script is not persistent after reboot. So you will need to run it again if you reboot the tab. This doesn't really bother me cause I only use it for charging in the car and it takes like 30 seconds to type in the script.
Enjoy!
Thank you very much!
Now it´s working.
FillTheVoid said:
Sure bud,
The script you posted is meant to be run in a command prompt using the tablet's ADB interface. To access this you need the Android SDK (that is the tool for app development) installed on your PC. You can look up how to do this all over the interweb.
To make your life easier though, download a terminal emulator app from the Market, there are plenty of free ones. Once you've done that open it and run the script as follows
su
echo 1 > /sys/class/power_supply/battery/force_usb_charging
The "su" command gives you root access just as "adb shell" would in command prompt.
The catch is the script is not persistent after reboot. So you will need to run it again if you reboot the tab. This doesn't really bother me cause I only use it for charging in the car and it takes like 30 seconds to type in the script.
Enjoy!
Click to expand...
Click to collapse
how do you make it stick ?
I ask this question in another forum and the result was, it´s not possible (maybe wrong).
By the way, after I enable USB charge, my notebook can´t find my Tab anymore.
Mondfahrer said:
I ask this question in another forum and the result was, it´s not possible (maybe wrong).
By the way, after I enable USB charge, my notebook can´t find my Tab anymore.
Click to expand...
Click to collapse
I found a way to very easily get it running.
download terminal emulator.
Go to system preference of terminal emulator and there is an option to enter initial command to after you start terminal emulator.
so just type in:
su - root
echo 1 > /sys/class/power_supply/battery/force_usb_charging
Whenever you start teminal emulator, it will enable usb charging
I use this app to NTSF http://forum.xda-developers.com/showpost.php?p=13337600&postcount=6

ADB Pull Error

I am getting the following error when I try to pull a TWRP backup from my Nexus 4. Can anyone please help?
Code:
remote object '/sdcard/TWRP' does not exist
It doesn't exist there. /sdcard/ is really a symlink. The actual location is /data/media/0/TWRP, but try /storage/emulated/0/TWRP as well.
Next time type "adb shell" to go into the phone, then type:
find / -type d -iname twrp
this will search the entire phone for folders with the name TWRP and list their path.
/ is the root folder of the phone to search in
-type d means search for folders only, leave it out if you want to search for file names
-iname means to search for terms case insensitive
sent from xda premium app
Thanks for the help eksasol. I've tried to pull many different paths and they all return the same remote object does not exist error. I've even tried sudo adb pull, with the same result. I've tried this, find / -type d -iname twrp but, all I get is Permission denied. If anyone else has got some ideas I'd be happy to hear them. Thanks. :good:
If you are using Ubuntu or linux, typing 'find' only search what is in your PC. You get permission denied because you want to search in a root directly that required root permission.
To search for files in your phone, you need to log into your phone by typing "adb shell". TWRP give you root by default, then you can use the find command.
Since you have root by default in TWRP, you don't need to use sudo, also Android do not have "sudo" installed. The correct way to gain root privilege in linux (Android) is by typing: su -
To tell if you have are root, you should see # where your user name is in the command window.
Once you are done finding the path, you need to exit the adb shell in order to make contact with your PC, so just type exit. Only then you can start using "adb pull".
by the way, its "adb pull /data/media/0/TWRP/ \home\username\backup\"
Rememer in linux (Android), it's case sensitive.
OK, I see my mistakes now. I was not exiting adb shell when typing adb pull. Anyway, thanks to your help, everything is working correctly now. Thank you again, I really appreciate it. Now I can flash the 4.4 update safely.
eksasol said:
If you are using Ubuntu or linux, typing 'find' only search what is in your PC. You get permission denied because you want to search in a root directly that required root permission.
...
by the way, its "adb pull /data/media/0/TWRP/ \home\username\backup"
Rememer in linux (Android), it's case sensitive.
Click to expand...
Click to collapse
Thanks for helping me re-learn that linux (Android) is case sensitive

self-contained sideloading, adb stupid tricks version. no PC required.

(as dhayman11 pointed out, "unknown sources" is in security settings, not developer options. but no luck anyway, like most of the settings app, it also crashes if you try to set it.)
instead, here is an extremely stupid idea that just came to me.
1. turn on adb wifi debugging
2. sideload your favorite terminal, e.g.
http://jackpal.github.com/Android-Terminal-Emulator/downloads/Term.apk
(ok I lied. you will need your desktop/laptop/phone/whatever, exactly 1 time. step 2 will be skipped forever after that 1 time.)
3. fire up said terminal from the settings->applications menu.
4. (LOL!)
$ adb devices
4a. if the above command shows no devices,
$ adb connect localhost
and proceed to step 5.
4b. if the command shows exactly 1 device, e.g. "emulator-5554", proceed to step 5.
4c. if the command shows more than 1 device (wtf?!) then you will need to specify a device of your choice ("-s somedevice") in every subsequent adb command, e.g.
$ adb -s emulator-5554 <whatever>
$ adb -s localhost:5555 <whatever>
etc.
5. e.g.
$ adb install /sdcard/Download/foobar.apk
$ adb shell
$ adb uninstall -k com.something.somethingelse
etc. etc.
6. profit? profit!
ok here is a slightly-less incoherent form of the senior-moment-reply I posted earlier
several days ago it occurred to me to alternatively use sshd for terminal access, because:
-a) I feel a little unsafe leaving adb wifi enabled all the time (ok it's only a small thing to turn it on and off, but still) - and for security reasons there is no way to enable/disable it programmatically e.g. from a script/shell/terminal/app (well theoretically this is not exactly true, but practically it is)
-2) some people (i.e. me) would like to do shell/terminal remotely sometimes, rather than on the AFTV (and other people don't have/want a keyboard)
ssh access makes a great alternative to Term.apk, but the problem is:
- Term.apk and/or (pick your favorite android ssh server) don't have permission to run e.g. "pm install foo.apk" - it will fail. (btw 'pm' is a great command, take a look sometime at all the options. it shares a lot of functions as the adb command itself. 'am' is another fun command...)
- so, the hilarious workaround of enabling adb wifi, "adb connect", and then finally "adb shell" or "adb install" etc., is still required. (b/c the adb user is in the 'shell' group, among others - giving it permission to run /system/bin/pm) - oh well.
for random reference:
Code:
127|[email protected]:/ $ id
uid=2000(shell) gid=2000(shell) groups=1004(input),1007(log),1009(mount),1011(adb),1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats)
[email protected]:/ $ exit
[email protected]:/ $ id
uid=10009(app_9) gid=10009(app_9) groups=1015(sdcard_rw),1028,3003(inet),50009(app_40009)
(also note it appears the adb shell user might possibly have 'mount' abilities, but since the /dev/block/sd* nodes permissions' are really locked up, who knows...)

Categories

Resources