[Q] How does init.d write temporarily? - Samsung Epic 4G Touch

I have a few years experience with linux, commands and file structures, so my question about init.d is how does it use the command "echo" to write temporarily. With init.d if I create a script that issues the command
Code:
echo 'smartassV2' > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
1.) How does it write this to a RO mounted root? Is the whole system being run from RAM on every startup and the script modifies that?
2.) If the file exists already, how does the command echo not just add smartassv2 to on the next line as opposed to replacing the original value?
I'm getting ready to go back to school and I would like to dev some scripts once I have an understanding of how the system works. Can anyone point me to a resource on init.d?

Related

[Emulation] Linux/Ubuntu for android (compatible with cm7/miui)

Hello,
I am going to prensent you today how to install ubuntu on your android device. Some of you propably already tried ,and had problems
making it work (or not). I modified the tutorial to make it easier, and corrected things. I also modified some paths in the scripts so that it can work with
cm7, if you are not a cm7 user you can download the other scripts too.
I based myself on this tutorial:
http://androlinux.com/android-ubuntu-development/how-to-install-ubuntu-on-android/
So let's start !
First, download the following cm7-ubuntu.rar file (decompress and copy over the whole ubuntu directory to the exeternal SD card of your Android smartphone/tablet:
Download cm7-ubuntu.rar:
http://www.fileserve.com/file/KQWsbRG
If you are a miui user, download cm7-ubuntu.rar, and replace the scripts by these:
http://www.fileserve.com/file/Tu8WZP5
If you are a not a cm7 neither a miui user, download cm7-ubuntu.rar, and replace the scripts by these:
http://www.fileserve.com/file/tuVMB9h
1) Make sure your phone is rooted and that busybox installed (if you are on cm7 all is ok).
2) Download Terminal Emulator on the market. Open it and type “su” to enter super user mode, then type “cd /emmc” or "cd /sdcard/external_sd" if your are a miui user or "cd /sdcard" if you are not on cm7, and “cd ubuntu” to enter the ubuntu directory in your SD card of your Android device.
3) Next, type “sh ubuntu.sh” to run the script which will basically get your Ubuntu image ready to run on your Android smartphone/tablet.
If you get error messages, don’t worry and keep going.
4) Type “bootubuntu” to enter Ubuntu. (Next time you enter Ubuntu, you just need to type “bootubuntu” from your /emmc/ubuntu directory, no need to run ubuntu.sh again.
If you got “[email protected]” at this point, congratulations! This means your Android OS comes with loop device support and Ubuntu is now running “chrooted” on top of your Android OS!!!
However, if there is an error like : "losetup: /dev/block/loop2: No such file or directory", this propably means that app2sd is conflicting with your sdcard, so to solve that
move all your applications on your internal sdcard and try again. If this doesn't solve your problem, that means that your kernel doesn't support loop
devices in most of the case, try flashing other kernels.
If after that you still have problems post, and I will try to reply when I have time
5) How to Install Programs on your Ubuntu!
Once you’ve got Ubuntu running on your Android device, it’s time to install some Ubuntu packages(or programs).
Type “apt-get update” to update, this is the first thing you will need to do before installing any new programs.
6) How to Install OpenSSH-server on your Android Ubuntu!
Type “apt-get install openssh-server” to install OpenSSH-server. What is OpenSSH-server? If you want to connect to your Android Ubuntu via an IP address (and SSH into it), you will want to do this.
7) How to Install TightVNCServer on your Android Ubuntu!
If you want to access the GUI of your Android Ubuntu, you can install TightVNCServer, which allows you to access the Android Ubuntu via Android VNC app on your Android smartphone/tablet or even access it remotely from your desktop computer.
Type “apt-get install tightvncserver” to install.
8) How to Install LXDE!(optional)
Next, we will install LXDE (Lightweight X11 Desktop Environment). Although we can use Ubuntu’s default GNOME (and trust me I love that), LXDE takes up less memory so our GUI access will be faster.
If you like GNOME, you can skip this step though.
Type “apt-get install lxde”
How to setup xstartup file so that when TightVNCServer is started, the LXDE runs instead of GNOME:
Type:
export USER = root
vncserver
(here he will ask you for a password for vnc, then if you want a view-only password, this mean you connect to vnc and you cannot interact with ubuntu, say n if you don't want and y if you want)
cat > /root/.vnc/xstartup
#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
icewm &
lxsession
Then press Volume-down&D togethe.
9) How fix language and start vnc at each boot:
Type:
touch /root/.bashrc
cat > /root/.bashrc
export LANG=en_US.UTF-8
export USER=root
rm /tmp/.X1-lock
rm /tmp/.X11-unix/X1
vncserver -geometry 1024x800 <== Here, you can change the resolution settings 1024×800 to the resolution of your liking. (Do not write that !)
Then again press Volume-down&D together.
10) Now we are going to reboot ubuntu to apply changes:
Reboot your phone, open Terminal Emulator again and type:
su
bootubuntu
Now your TightVNCServer is ready to accept any incoming connections from your phone or computer. Just point to the correct IP address and use port number 5901 to connect.
On your Android smartphone, just download the free app “Android-VNC-Viewer” and set the IP address to “127.0.0.1″ , port number 5901 and insert the password you set before in password.
Then enjoy !
SHUT DOWN UBUNTU: Sorry you have to reboot the phone, if you try to boot other ubuntu your phone will start to lag
Extra:
If you want more space to install programs & stuff, you can extend your user space without loosing your data.
Requirements:
Linux (you can make a live CD) or just an environment like cygwin for windows
Procedure:
1. UnZip Android or your present ubuntu.img file to your Home Folder. Or a folder of your liking (or even on your memory card!), just remember to cd before you do the following:
2. Open Terminal and Copy&Paste (Ctrl+C, Ctrl+Shift+V) this:
Code:
dd if=/dev/zero bs=1M count=XXX >> ubuntu.img
where XXX is the amount, in MB, by which data.img should be increased by.
My filesize started out as 256MB and I wanted a total of 512MB. That would mean I needed a extra 256MB, so I executed this:
Code:
dd if=/dev/zero bs=1M count=256 >> ubuntu.img
3. Run a file system check and file system resizer
Code:
e2fsck -f ubuntu.img
resize2fs ubuntu.img
e2fsck -f ubuntu.img
if prompted, press "y" for "yes"
4. Copy all of the Android files onto your SD card, put it into your phone...
Source: http://forum.xda-developers.com/showthread.php?t=737826
Sorry for my bad english
If you liked this thread, don't forget there is a Thanks button !
I have a problem with miui chamaleon rc2 . after i type bootubuntu i cant get [email protected] . im thinking that talonmtd dont support loopdevice but i have tried also with plapytus with no luck . you know i kernel with loop support for my rom ?
thanks
Do you have adb ?
MIU is based on cm7, you should have loop support...
do you have the error losetup : /dev/block/loop2: No such file or directory ?
im restarting device and i will copy all the commands . one moment
edit : i get this :
# sh ubuntu.sh
sh ubuntu.sh
modprobe: chdir(/lib/modules): No such file or directory
←[H←[Jmkdir: can't create directory '/data/local/mnt': File exists
←[H←[Jcd: can't cd to /emmc/ubuntu
chmod: bootubuntu: Operation not permitted
chmod: fsrw: Operation not permitted
chmod: mountonly: Operation not permitted
chmod: ubuntu.img: Operation not permitted
chmod: ubuntu.sh: Operation not permitted
chmod: unionfs: Operation not permitted
←[H←[J
Ubuntu Chroot Bootloader v0.1
Ubuntu Bootloader is now installed!
This process does NOT damage Android OS!
Original Installer by Charan Singh
Modified for Ubuntu Chroot by Max Lee at AndroLinux.com ,G2Hacks.com and Ne
eHacks.net
To enter the Ubuntu Linux console just type 'bootubuntu'
# bootubuntu
bootubuntu
mknod: /dev/loop2: File exists
losetup: /dev/block/loop2: No such file or directory
mount: mounting /dev/block/loop2 on /data/local/ubuntu failed: Invalid argu
mount: mounting devpts on /data/local/ubuntu/dev/pts failed: No such file o
ectory
mount: mounting proc on /data/local/ubuntu/proc failed: No such file or dir
y
mount: mounting sysfs on /data/local/ubuntu/sys failed: No such file or dir
y
net.ipv4.ip_forward = 1
Setting /etc/resolv.conf to Google Open DNS 8.8.8.8 and 8.8.4.4
bootubuntu: cannot create /data/local/ubuntu/etc/resolv.conf: directory non
ent
bootubuntu: cannot create /data/local/ubuntu/etc/resolv.conf: directory non
ent
Setting localhost on /etc/hosts
bootubuntu: cannot create /data/local/ubuntu/etc/hosts: directory nonexiste
READY TO ROCK AND ROLL BABY!
Brought to you by NexusOneHacks.net and the open source community!
chroot: can't execute '/bin/bash': No such file or directory
Shutting down Ubuntu
umount: can't umount /data/local/ubuntu/dev/pts: No such file or directory
umount: can't umount /data/local/ubuntu/proc: No such file or directory
umount: can't umount /data/local/ubuntu/sys: No such file or directory
umount: can't umount /data/local/ubuntu: Invalid argument
losetup: /dev/loop2: No such device or address
No, verify you don't have applications on your external sd card, if there is, transfer them to the internal sd card
EDIT: Yes, verify you don't have applications on your sd card
i dont have application on sd card
Okay this is wierd !
2 possibilities :
1. busybox is not installed
2. Your phone do not support loop devices
Can you send me a file in your /proc/ directory named config.gz ? (sorry it is a pain in the ass...)
Oh sorry I forgot how is named your external sdcard ? emmc or sdcard ?
Rename it to *.gz . Xda dont accept gz extension . I looked to sh script and i think the problem is that in cm7 sdcard is /sdcard not /emmc .
my external card is named /sdcard/external_sd and is a 16 gb class 2 so is a bit slower
Okay I think if found, I going to post new scripts for you quickly, I just verify that you have loop support
EDIT: Yes you have loop support, it is scripts
Replace these scripts : http://www.fileserve.com/file/Tu8WZP5
AnonymeLex said:
Okay I think if found, I going to post new scripts for you quickly, I just verify that you have loop support
EDIT: Yes you have loop support, it is scripts
Replace these scripts : http://www.fileserve.com/file/Tu8WZP5
Click to expand...
Click to collapse
Dont worry , but please upload this to xda because i hate fileserve and i have to wait 1200 seconds to download another file . Thanks
Yes, I forgot it's quicker, but does it work finally ?
I think is better that you fix the first post with instruction for miui users
Ok works , thanks a lot
i maked an error .
after this cat > /root/.bashrc i typed :
export LANG=en_US.UTF-8
export USER=root
rm /tmp/.X1-lock
rm /tmp/.X11-unix/X1
vncserver -geometry 800x480
exit
so every time i run bootubuntu this shut down . XD what i have to do to fix that ?
Edit : im recopying all including new script and i will not do same error
I'm using Ubuntu since 2006, it's really nice to see that the interest in Linux is growing so fast!
thunderteaser said:
I'm using Ubuntu since 2006, it's really nice to see that the interest in Linux is growing so fast!
Click to expand...
Click to collapse
im using ubuntu since the first version of android XD . im using it in dual boot . but i have changed 5 pc since 2005 for too use . is in use 24h/7d also with overclock . super pc !!! super android !!
thunderteaser said:
I'm using Ubuntu since 2006, it's really nice to see that the interest in Linux is growing so fast!
Click to expand...
Click to collapse
We can't ignore linux
(
Alberto96 said:
i maked an error .
after this cat > /root/.bashrc i typed :
export LANG=en_US.UTF-8
export USER=root
rm /tmp/.X1-lock
rm /tmp/.X11-unix/X1
vncserver -geometry 800x480
exit
so every time i run bootubuntu this shut down . XD what i have to do to fix that ?
Edit : im recopying all including new script and i will not do same error
Click to expand...
Click to collapse
Oh never thinked we could be in such a situation
The .bashrc is inside ubuntu.img, I don't really see a solution appart redownloading...
Sorry
Wait, exit don't really close ubuntu I think, it juste close terminal you should still able to connect via vnc and modify .bashrc ! To shut it down do Ctrl+D

[Solved] Mount a blank.img formated to ext? to bypass permission limitations?

I was wondering if I could mount an empty.img file so that I could add executable into it and chmod 777 them or what ever the number is maybe 666.
Then I would add the location to my $PATH variable in the "/system/etc/mkshrc" file so I could execute those programs from any directory.
What say you?
Has this been done before?
It works!
Well, I wen ahead and tried it out, I figured "What the hell, its not like I have to format my sd card." It worked!
So what I did
1) I changed directories to Downloads. ("cd ~/Downloads")
2) I created a directory for my image in Downloads, and moved into it. (mkdir image && cd ./image)
3) I created an empty 4 gig image called apps.img using dd ("dd if=/dev/zero of=apps.img bs=1MB count=0 seek=4096")
4) I formated it to ext2 ("mke2fs -F apps.img")
5) I used adb to push it to my phone ("adb push ~/Downloads/image/apps.img /storage/sdcard0/Download/")
6) Then on my phone as su I mounted the image ("mount -o loop '/storage/sdcard0/Download/apps.img' '/data/local/mnt' ") {with single quotes around the directories, the double quotes wrap the whole actual command, you don't need them} [EDIT: I used bash on the phone to do this, ie I "su" [enter] ; "bash" [enter] ; "THE ABOVE COMMAND" [enter]
7) To test I used the python interpreter as my executable so I created a folder in /data/local/mnt called apps,(note* I should have made that folder on my pc before I pushed it to my phone to ensure that the foder was actually in the apps.img file.) I created two more folders "bin" and "lib" using "File Manager" on my phone. I then moved what I needed to run python into those folders (though you'll see I forgot something)
8) I added PYTHONHOME PYTHONPATH and added the bin folder I created to $PATH in the /system/etc/bash/bashrc file (Ask and I'll explain). If you don't have bash the mkshrc file is located "/system/etc/mkshrc" on your phone (if its Sprint SGSIII) adding environment variable there will accomplish the same thing, sorta.
9) I connected my phone to pc w/usb, opened up a teminal on pc, started an adb shell
10)........
Code:
[email protected]:~$ adb devices
List of devices attached
xxxxxxxx device
[email protected]:~$ adb shell
[email protected]:/ $ su
[email protected]:/ # bash
void endpwent()(3) is not implemented on Android
localhost / # which python
/data/local/mnt/apps/bin/python
localhost / # python
'import site' failed; use -v for traceback
Python 2.6.2 (r262:71600, Mar 20 2011, 16:54:21)
[GCC 4.4.3] on linux-armv7l
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> import sys
>>> import math
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named math
>>> import io
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/manuel/AptanaStudio3Workspace/python-for-android/python-build/output/usr/lib/python2.6/io.py", line 63, in <module>
ImportError: No module named _fileio
>>>
localhost / # exit
[email protected]:/ # ^D
[email protected]:/ $ ^D
[email protected]:~$
I'm thinking that if I can get my mkbootimg tools to work, I would mod an init script to mount the apps.img and then create links for each file in say '/mnt/apps/bin' create a link*in '/system/bin'. this should allow for phones with small or near full system partition install stuff like busybox or your own pprograms. More usefull for a developer.
I wanna try this with pythonforandroid, if I can make python and its modules. accessible during early init or just before the boot process finishes in general, and use it to run python, maybe python can handle boot in a different way, or maybe just one specific. function you might needs.
one big question I have. Does the pythonforandroid interpreter run ontop of the D VM?
Edge-Case said:
I'm thinking that if I can get my mkbootimg tools to work, I would mod an init script to mount the apps.img and then create links for each file in say '/mnt/apps/bin' create a link*in '/system/bin'. this should allow for phones with small or near full system partition install stuff like busybox or your own pprograms. More usefull for a developer.
I wanna try this with pythonforandroid, if I can make python and its modules. accessible during early init or just before the boot process finishes in general, and use it to run python, maybe python can handle boot in a different way, or maybe just one specific. function you might needs.
one big question I have. Does the pythonforandroid interpreter run ontop of the D VM?
Click to expand...
Click to collapse
I don't think so. All command-line programs I know of interface directly with the kernel.
Sent from my S3 on Sense 5 (you jelly?)
CNexus said:
I don't think so. All command-line programs I know of interface directly with the kernel.
Sent from my S3 on Sense 5 (you jelly?)
Click to expand...
Click to collapse
So getting an extended set of Linux (kernel) cli programs working with Android (kernel) is a matter of having the nessissary libraries, kernel prereq., and being compiled for the target processor?
From what I have read, the Android kernel has been cut back so far from the original Linux kernel that its difficult to port "Linux apps" to Android. Something about a slimmed down version of the GNU C/C++ libraries and the Android kernel being designed to run mostly Dalvik.
I haven't tried directly running any "Linux app" (already compiled for arm) on Android yet, but my game plan for that test was to load up an .img file with the nessissary execs, libs, config, etc files (as ext3 this time) and running some scripts that get the paths variables set up and then execute the script, I wrote a short Bash script that sets up python variables and adds others to PATH etc, and it worked, I had python on the img and the img mounted to /mnt/myside and python ran but with some errors, I need to get the variables right, its driving me mad, if its not this its that, last time it was the basic "help()" command not being declaired or something.
Well thats my plan, either these "Linux apps" run on Android without problem or I am going to A) write my own kernel to be compatible with Android/ cli Linux or I am going to get as much source code as I can and practice the art of compiling against Android and/or patching the code when/where nessissary.
We'll see what happens, I've done enough today/night.

[Q] How to run my script automatically after boot ? (Galaxy Tab S 8.4 lte SM-T705)

Hi to all.
Can someone explain how to run my script after boot ?
I can't find folder /system/etc/init.d here, but I found /init.rc that contain this line at the end:
Code:
on property:sys.boot_completed=1
write /sys/block/mmcblk0/queue/scheduler cfq
Can I just put new line below this ? Something like this:
Code:
on property:sys.boot_completed=1
write /sys/block/mmcblk0/queue/scheduler cfq
su -c "bash /path/to/script.sh"
Or I should create another file to prevent breaking system and put it somewhere ?
And the second question, where is the better place to put my script ?
Thanks

Malaysk 5.1.1 MTCB doesn't execute init.d scripts

Does anyone know how to run init.d scripts at boot?
I've tried adding the following rows to init.rc with no success...
Code:
service sysinit /system/bin/logwrapper /system/bin/busybox run-parts /system/etc/init.d
class main
user root
group shell
oneshot
All scripts have execute and read permission.
Thanks!

[Root] [Script] OTA Killer for LG K7 m1 and other devices

Disclaimer: I nor XDA nor anyone else is responsible for your lack of reading or comprehension skills, ignorance on your part or anyone else's nor just plain stupidity on your part or anyone else's, so if you don't know what you're doing and or don't know how to fix any bad things that could happen then just don't do it.
Root and Busybox required.
This is a more permanent solution to stop OTA updates from downloading on your rooted device that is designed to survive when you wipe /cache. I'm including the script which will work on any device that downloads it's OTA updates as update.zip to /cache without modification and a flashable zip, the flashable zip is for the LG K7 m1 Metro PCS variant rooted with Magisk ONLY (unless modified) and was fully tested, you're free to edit the script and or the updater-script in the flashable zip for your device (be sure you get the /system partition for your device right, the init process right if not rooted with Magisk and the proper location and file name for your OTA updates) and you may release it for others to use if you like but please give appropriate credit. The script can simply be dropped in your appropriate init folder (/data/adb/service.d/ for Magisk) and set chmod 0700 before rebooting your device.
Alternately you can use MacroDroid to run the script at boot.
Trigger > Device Events > Device Boot
Action > Applications > Shell Script (Paste script on line)
The rest should be self-explanatory.
Thanks to QuickNET Tech for coming up with this method. You can and should read about it HERE and follow up with part 3 from their post so you don't get the annoying notifications. Instructions for reversing this modification are also in that thread, in addition to those instructions you'll also need to delete the 22otakiller script from your init directory (default is /data/adb/service.d/).
QuickNET Tech said:
-Part 3. [Optional]
The annoying update notifications are actually Google Play Services fault. All you have to do is go to "Settings > Apps" and find Google play services and disable the apps ability to show you notifications.
Click to expand...
Click to collapse
What this script does:
The script (see bottom of this post) when ran either automatically on boot or manually will check for update.zip in /cache, if it exist but wasn't created by the script or using the same method with the appropriate attribute applied then it will delete it (regardless of size including an authentic update.zip file) and create the appropriate 0 byte update.zip file with the appropriate attribute and permissions, if it doesn't exist it will create the appropriate file with the appropriate attribute and permissions. It creates a 0 byte update.zip that can not be modified or deleted by anyone including the super user without removing the file attribute which can only be removed by the super user. The flashable zip for the LG K7 rooted with Magisk ONLY (unless edited for your device and or root method) will install the script to /data/adb/service.d/ and set it's permissions to 0700.
Please let me know and post your device information if the updater-script in the flashable zip works as-is with your device.
Enjoy!
Script (22otakiller):
Code:
#!/system/bin/sh
uzip="/cache/update.zip"
if [ -f "$uzip" ] && lsattr "$uzip" | cut -c 6 | fgrep -q 'i'
then
exit
elif [ -f "$uzip" ]
then
rm -f $uzip
touch $uzip
chmod 7400 $uzip
chattr +i $uzip
exit
else
touch $uzip
chmod 7400 $uzip
chattr +i $uzip
exit
fi
Been a long time since I've been on this site seeing as most every device after the K7 hasn't had any development. Glad to see people are still messing with this device. Good work man!

Categories

Resources