[Q&A] terminal emulator initialization - Eee Pad Transformer Q&A, Help & Troubleshooting

Q&A for terminal emulator initialization
Some developers prefer that questions remain separate from their main development thread to help keep things organized. Placing your question within this thread will increase its chances of being answered by a member of the community or by the developer.
Before posting, please use the forum search and read through the discussion thread for terminal emulator initialization. If you can't find an answer, post it here, being sure to give as much information as possible (firmware version, steps to reproduce, logcat if available) so that you can get help.
Thanks for understanding and for helping to keep XDA neat and tidy!

terminal emulator initialization
I wanted to have a few custom aliases loaded into the terminal automatically every time it started
so I searched google for some help and found this thread. You helped me on my path. Thank You!
This is what I came up with...
You need root access to do any of this.
mkshrc file is located here:
/system/etc
/etc
is just a link to the /system/etc directory.
I added this code to the mkshrc file at the bottom just above the line where it indicated to add any additional code:
Code:
[ -f /system/etc/.aliases ] && . /system/etc/.aliases
save and exit.
(Code means: Test if file /system/etc/.aliases exists, and only if it does, source that file.)
(.aliases is just a file name I chose, you can use any file name)
I then created the empty file .aliases in the /system/etc directory and set it's permissions to rw-r--r--
Code:
touch /system/etc/.aliases && chmod 644 /system/etc/.aliases
Placed my aliases in the .aliases file saved and reboot.
Code:
c='clear'
xx='exit'
All works.
The file you source can be a sh script with a shabang up top as well.
I have another file I source for custom functions that get auto loaded.
Pretty cool.
Thanks a lot, took me a while to even figure out the file I was looking for was the mkshrc file.
(Most system config options and settings are placed in the etc folder on a unix based system.)
Mission success!
(Make custom script to do all this automatically first time when installing new ROMS. Nice.)

Thank You!
Worked like a charm, Just what I was looking for works perfectly on my I9505.
mkshrc found in /etc/
Thanks again!

Related

Busybox installation via terminal emulator

Hello devs, i have searched google and this forum on how to install busybox via terminal emulator. Ive downloaded the bin, made the data/busybox directory. The instructions that i read said to " cat /sdcard/busybox > data/busybox/ " after that i get halted by a message that says " cannot create data/busybox is a directory.
All other instructions are via adb through pc which i wont have access too for a while. Can anyone direct me to, or reply with the terminal emulator steps to successfully install busybox? Thanks in advance devs
bbbblack said:
Hello devs, i have searched google and this forum on how to install busybox via terminal emulator. Ive downloaded the bin, made the data/busybox directory. The instructions that i read said to " cat /sdcard/busybox > data/busybox/ " after that i get halted by a message that says " cannot create data/busybox is a directory.
All other instructions are via adb through pc which i wont have access too for a while. Can anyone direct me to, or reply with the terminal emulator steps to successfully install busybox? Thanks in advance devs
Click to expand...
Click to collapse
Try:
Code:
cat /sdcard/busybox > /data/busybox/busybox
chmod 755 /data/busybox/busybox
chown root.shell /data/busybox/busybox
Still didnt work. I have the file on my sdcard titled busybox.bin
Am i supposed to remove the file extension? Or do i have to create a directory titled busybox
And drop busybox.bin inside?
Jus for reference, this is the link to the instructions i stumbled upon. Anything wrong in the code?
http://www.androidfanatic.com/cms/community-forums.html?func=view&id=228&catid=9
Still didnt work. I have the file on my sdcard titled busybox.bin
Am i supposed to remove the file extension? Or do i have to create a directory titled busybox
And drop busybox.bin inside?
Jus for reference, this is the link to the instructions i stumbled upon. Anything wrong in the code?
http://www.androidfanatic.com/cms/community-forums.html?func=view&id=228&catid=9
bbbblack said:
Still didnt work. I have the file on my sdcard titled busybox.bin
Am i supposed to remove the file extension? Or do i have to create a directory titled busybox
And drop busybox.bin inside?
Jus for reference, this is the link to the instructions i stumbled upon. Anything wrong in the code?
http://www.androidfanatic.com/cms/community-forums.html?func=view&id=228&catid=9
Click to expand...
Click to collapse
Code:
cat /sdcard/busybox.bin > /data/busybox/busybox
chmod 755 /data/busybox/busybox
chown root.shell /data/busybox/busybox
Start asking your questions in the right sub-forum (Q&A) (Theme) or even in (General), or simply search.......Final result will be a ban for you up too 3 days.
Thanks
Thread Trashed!!

Newbie Question about simple script

Hi guys, I was hoping someone could help me write a simple script that I can execute in terminal. What I would like the script to do is copy all the files from one directory to another directory on my sdcard (to cut down what i need to type in terminal each time).
For example
cp /sdcard/dir1/*.* /sdcard/dir2
I've tried to just put that command line in a unix txt file from Crimson Editor, saved it as copy.sh. I did
chmod +x copy.sh
Then tried to type in terminal
sh /sdcard/copy.sh
I didnt get any errors, but I don't think it worked. Any help or suggestions are appreciated.
My phone is a N1 with the latest Cyanogen build. Thanks in advance.
** EDIT **
I fixed the issue by using a program called GScript from the market... I made a new script in the GScript window and can now just open gscript and click the script to run it instead of typing the terminal commands. Don't know if this will help anybody else with similar newbie scripting issues, but it worked for what I wanted to get done. I'm editing post instead of deleting because I don't see the delete post button.
** EDIT **

[Q] ADB doesn't work on Mac

When I CD to the platform-tools folder and type
Code:
adb devices
it says "adb: command not found" If anyone could help me that would be wonderful. I am on the Inspire/DesireHD running AOSP Gingerbread. Thanks!
You have two choices. You can either run the command prefixed with ./ (dot slash), which allows for executing an executable in the current directory:
Code:
./adb devices
Or, the other choice (which will be better if you intend to use adb a lot) is to add the platform-tools folder to your path by editing or creating the file .bashrc in your home folder (~/.bashrc).
Let's suppose your platform tools folder is: ~/.android-sdk/platform-tools
Then, you would want to add something along the lines of the following to your bashrc:
Code:
export PATH="$PATH:$HOME/.android-sdk/platform-tools"
Save the file, the run this or log out/in:
Code:
source ~/.bashrc
Et voila, you should now be able to run adb from any folder without issue.
Explanation: adding the new path (folder) to your PATH environment variable tells BASH to include that folder in its search for an executable. The reason $PATH is added at the beginning of the new string is so that your default path does not get overwritten. $HOME will simply expand to /home/your_user_name when BASH interprets it.
GENIUS! IT WORKED! Thank you! Now, one more question- how do I get superuser privileges using ADB? (device is rooted, of course)
No problem.
On my G1 you were root as soon as you adb'd in. Just tested on my Defy and '$' - shocking. So once you have run adb shell, just run 'su' (without quotes of course) and accept the permission on your phone screen as usual for root programs and you should be good to go.
Sorry to keep asking questions, but when I typed
Code:
su
into adb, it asked for a password. No popup on device screen. I do have superuser installed on the device.
That is odd. I'm not sure why that would be. I'll see if I can think of something though. Hopefully someone else can make a suggestion.
Thanks! You have been very helpful.
Don't think I can hit the thanks button from the app, sorry
Sent from my Inspire 4G using XDA App

[How To][Linux] Optware + ssh + samba + transmission + flexget

Yep, you read that correctly. I have optware, ssh, samba, transmission, and flexget working on my Minix X5 Mini. This should work for any rooted device which has an adb connection enabled. This will work on the original ROM. In fact, I use the stock ROM. For those not using a Minix device this should work on any ARM device. Sorry but all the binaries are built on ARM.
JUST AS EVERY OTHER DEVELOPER: I AM NOT RESPONSIBLE IF YOU BRICK YOUR DEVICE! MAKE A BACKUP!
Requirements:
Linux box with adb (don't ask me about windows, I don't support bad habits)
clockworkmod (for a backup)
root
internet connection
Process:
Make a backup of your ROM!
Download files (gitHub)
You have two options here:
Download the zip via https://github.com/erichlf/AndroidSeedBox/archive/master.zip and unzip it.
Clone the repo using git via 'git clone [email protected]:erichlf/AndroidSeedBox.git'
Make script executable
chmod +x optware-etc.sh
Obtain adb connection to device (covered in another thread)
Gain root access on local machine (adb seemed to require this for things to work)
sudo su
Run script and follow directions
./optware-etc.sh
Use SManager to run /opt/home/root/sysinit at every restart.
Notes:
The script can be modified to change the various programs that I install. You could exchange transmission for deluge for example.
Transmission can be accessed from the minix through localhost:9091 or from some other machine using your ip-address and the port 9091. If that doesn't work you should edit the config file located at /opt/home/root/.config/transmission-daemon/settings.json
username: root
password: you provided this in the install script
Without SManager nothing will start automatically. However, if you have a ROM which has init.d support you can move the scripts in /opt/etc/init.d to /etc/init.d I would suggest maybe linking the two instead of just moving the scripts or possibly adding a script to /etc/init.d which runs the items in /opt/etc/init.d The reason is because when installing things using ipkg the startup scripts will be placed in /opt/etc/init.d and not /etc/init.d However, it is extremely important that optware is started, and this is partly what sysinit accomplishes.
To list available packages
ipkg list
To install a new package use the command
ipkg install <new package>
To remove a package use the command
ipkg remove <package to remove>
cron is weird and I couldn't get it to work like it should, but I got it to work
While on the Android device (ssh or terminal emulator)
Create a .crond file in the home directory of your device (/opt/home/root/) with some schedule in it. Remember to leave a blank line at the end of the file.
Tell cron about the .crond file
crontab -u root /opt/home/root/.crond
Make sure cron sees the cron file
crontab -l
If you want to edit your cronfile use a text editor and edit the file directly and then tell cron about the file again.
Many things are installed in what seem like strange places, so use
which <binary you are looking for>
Feel free to help develop the code. I think what would be best is an update.zip or a CWM flashable zip. Right now I don't know how to do this, but once I get more time I will look into it. So, any help on this front is welcomed.
Enjoy!
I really wish you would have kept the repo up. It seems kind of pointless to go through all that trouble just to delete the repo and leave people wondering what you did.
I have been busy and didn't update this particular post, since there had been no activity on it.
git clone [email protected]:erichlf/androidseedbox.git
https://bitbucket.org/erichlf/androidseedbox/get/master.zip
Sorry, I didn't need to be rude. I was just excited to find this and then sad when it was gone. Thanks for pointing me in the right direction!

[TOOL][LOG] Easy-to-share log and report for developers and users

Hello XDA comunity!
I want to share you a very useful tool that I have created, its name is: "kielyd".
What's keilyd?
Keilyd is a BASH daemon that constantly dumps the system's logs, warnings and other useful info in a easy-to-share "ZIP" with the main purpose to create a very informative and useful bug report.
keilyd is expansible and configurable. It's very easy to add new features because BASH interacts directly with the Linux/BSD commands in the Android System.
How does it works?
Keilyd is launched at device boot, with the "init.d support" and as root (see requeriments below). After launched, keilyd relaunches itself in a "daemon mode", that runs in the background, then, it dumps several information in the /sdcard and compress it in a single zip, so, the user can send that zip (in fact, are 2 zip's or more if you use the "snapshot" feature) to the developer of their ROM, to a forum or send it to a 3rd party developer and report a bug with all the system logs included.
Keilyd stores 2 zips: the first one is the current log (the "very last file") and the second one is the last log before keilyd were launched again.
If you won't enable de daemon, you can create a single zip when you use the "snapshot" feature, if you take two or more snapshots in the same minute, the ZIP will be the same, otherwise, one script per different minute will be created. The Snapshot feature can create as much zips as needed.
What info is collected?
That's a good question!
The info that is collected is (this applies ONLY for a vanilla copy of keilyd):
Kernel log (aka "dmesg") and other kernel info
Logcat (aka "logcat")
List of process running and memory statics
A copy of all tweaks in init.d (including keilyd itself)
A copy of build.prop and sysctl.conf
A copy of /proc/config.gz (if exists)
Some cpuinfo
Mounted filesystems and usage
How does this "daemon" can help me?
Developer:
Have you had the need to get some system log from a user?
Probably the answer is "yes", but, the user may have no idea how to do that, so, you have to give them a "step-by-step" guide of "how to get a system log in the terminal".
This simplifies the process, so, the user can report a bug with logs with no terminal (if the daemon is enabled) or with a single command that looks like
Code:
keilyd --snap
User:
Well, the complement of the developer... You can share "golden" information just by sending 2 zips files to the dev. Minimal Android knowledge is the only prerequisite if the daemon is working as spected.
This daemon is not a demon, but it can be very bad if not implemented as spected. Please, ensure that ALL THE COMMANDS ARE KNOWN and that THERE IS NO PORPRIETARY interference.
Why BASH?
A good idea is to create a daemon in C/C++ and share it as a "binary", BUT, as we are recolecting information from the device, the user must have to be concient of what are the script recollecting, if the user can't read bash, it can ask to a 3rd developer. You can feel safer because it's under the GPLv3 licence!
In addition, BASH run in (almost) any UNIX based OS, including but not limited to Apple OS X, GNU/Linux, Android, iPhone OS, etc...
This prevent a "blind trust" from the user, and give them facility of enable-disable the script, add features and so on.
Requeriments
- A rooted device
- Busybox (or run-parts)
- init.d support
- BASH 4.3.x ONLY SUPPORTED by the moment.
- Terminal emulator/HIDE]
How can I include it in my ROM?
Take a look of my repo in GitHub, it contains the last version of keilyd and the implementation during compilation in the Makefile.
If you are a ROM modder, download the latest version from above, include init.d and bash support in you ROM.
Or you can create a CWM/TWRP/Philz... flashable zip (it would be great!)
Users: how to use
When something goes weird, open the terminal emulator and write:
Code:
keilyd --snap
and send to the developer all zips in
Code:
/sdcard/keilyd/out
type
Code:
keilyd --help
and a helpful message will be printed.
If something goes wrong and you need to reboot the device (or the device reboots itself), just send both zips to the developer or the forum where you are asking help (This feature only works if the daemon is enabled).
Developers: how to use
You can add/remove things in order to fit your needs, the only thing that we ask you is that you write the whole script in BASH, without "blobs" that may private the user from know what is exacly logged and stored.
If some user sends you the zip, you will notice that the files are plain-text, and you can view it in any text editor.
TODO:
List all apps installed (system and user)
Secure "user-modificable" settings (Allmost DONE)
A graphical interface (an app) to manage the daemon
A flashable ZIP
Aports and sugestions are WELLCOME, please, coment in the box below
Install redistributable package:
If the avobe requeriments are meet...
1. Open this GItHub URL
Click in the "Download ZIP" icon in the right.
2. Put the zip in your phone
3. Unzip it.
4. If you want to use the script... A; otherwise, B.
A.
a. Open the terminal emulator.
b. cd to the folder that contains
Code:
install.sh
c. As root, type "
Code:
sh install.sh
" in the terminal.
B.
a. Open ES File Explorer
b. Enable root explorer and mount /system as rw
c. Copy
Code:
daemon/18keily
to
Code:
/etc/init.d
d. Tap and hold the
Code:
18keily
file and open the poperties
e. Change te permisions to
Code:
rwx r-x r-x
f. Copy the
Code:
redistrib/bash
file to
Code:
/system/xbin/bash
g. Change the permisions as above.
h. Symlink /etc/init.d/18keily to /system/xbin/keilyd
i. Reboot
NOTE:
Keilyd can be used in 2 ways:
1. As a daemon that does it job without human interaction, that constatantely and automaticaly creates 2 zips in the output directory.
2. As a Script that only needs to be called with the '--snap' parameter, but it requieres human interaction and does not constantely repeat the process.
Use the first one if you are a beta tester, or if you know that you ROM can hang sudently. Recomended for Unstable ROM'S.
Use the Last One if your ROM is stable or official, but you want to do a bug report.
You can allways use the second option if you use the first one.
By default, the daemon is disabled. You can enable if you change the "ENABLED" variable to "Y". I personally recommend values for "MINS" between 5 and 15.
BUGS REPORTS in the GITHUB REPOSITORY
Reserved
Hi there,
This looks like what I need, did you close the repo? Can you share a link to the script? I have a few devices, and I want to have some forensic information for troubleshooting (I.E. log all the warnings, errors and critical logs, + a snapshot every n minutes about the system usage). Right now I have to go where the device is, connect it with ADB and query the logs (most of the time, the logs were overwrited)... Thanks in advance.

Categories

Resources