[Q] System changes are cancelled when I restart - Android Q&A, Help & Troubleshooting

Hello
I try to use Link2SD on my HTC Desire 610 (rooted and with unlocked bootloader), but the app is not able to mount the SD card partition because the init.d is not present on the stock ROM.
So, I have installed busy-box and tried the term-init script of Ryuinferno. The script seems to works well (no error), but I noticed it had no effect on the system files.
So I tried some manipulations with adb, and I managed to create the init.d file with these commands:
Code:
>adb kill-server
>adb shell
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
[email protected]_a3qhdul:/ $ su
su
[email protected]_a3qhdul:/ # mount -o remount,rw -t auto /system
mount -o remount,rw -t auto /system
[email protected]_a3qhdul:/ # mkdir /system/etc/init.d
mkdir /system/etc/init.d
[email protected]_a3qhdul:/ # cd /system/etc/init.d
cd /system/etc/init.d
[email protected]_a3qhdul:/system/etc/init.d # cd /
cd /
[email protected]_a3qhdul:/ # mount -o remount,ro -t auto /system
mount -o remount,ro -t auto /system
[email protected]_a3qhdul:/ # reboot
reboot
>
After the phone restarts, I tested these commands:
Code:
>adb kill-server
>adb shell
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
[email protected]_a3qhdul:/ $ su
su
[email protected]_a3qhdul:/ # cd /system/etc/init.d
cd /system/etc/init.d
tmp-mksh: cd: /system/etc/init.d: No such file or directory
2|[email protected]_a3qhdul:/ #
I tried to create files in the system folder, but they are deleted after every reboot.
Have you ever encountered this problem?
I am a novice regarding the linux operating systems, so I have no idea what could cause this.
Hoping you will find a solution, and sorry for my bad english..
EDIT :
After long search on the forum, I found what I needed for solve my problem
The problem was due to the HTC's system write protection (see here).
For the HTC Desire 610, it seems that the protection allow you to add files in the /system directory but cancels all modifications after a reboot.
To disable this protection, I installed the Jmz's A3UL Kernel V1 and it works fine !
Now the Term-init script works, and I was able to install Link2SD and configure it for mount the ext2 partition on my sd card at boot.
Thank you to the community of xda-developers !

Related

how to replace framewrok-res.apk?

how to replace? by using metamorph? i did with root explorer and ended up with bricked x10 mini.
It's probably best to do it via ADB.
yes adb / shell is my favourite method
I use Root expl. only to rw mount /system partition.
How to do via adb?
Sent from my E10i using XDA App
from: http://forum.xda-developers.com/showthread.php?t=759320
0. Root !
1. adb push framework-res.apk /sdcard/fr-black.apk
2. adb shell
3. su
4. mount -o remount,rw -t yaffs2 /dev/block/mtdblock2 /system
5. mv /system/framework/framework-res.apk /sdcard/framework-resORIG.apk
6. cat /sdcard/fr-black.apk > /system/framework/framework-res.apk
7. chmod 755 /system/framework/framework-res.apk
8. sync
9. reboot
why cat and not mv/cp ? Because the file is created with "root" user and group and not "sdcard" group.
Means the framework file is first placed on sd card which i want to replace? Asking noob questions cause dnt want to install whole software again
Sent from my E10i using XDA App
abhi98228 said:
Means the framework file is first placed on sd card which i want to replace? Asking noob questions cause dnt want to install whole software again
Click to expand...
Click to collapse
Here, I'll try to explain what happens
1. adb push framework-res.apk /sdcard/fr-black.apk
-copies "frarework-res.apk" from ADB's folder and moves it to the phone's SD card, names it "fr-black.apk"
2. adb shell
-opens the linux shell on the phone
3. su
-goes into superuser mode, i.e. runs apps as admin if you're familiar with windows terms
4. mount -o remount,rw -t yaffs2 /dev/block/mtdblock2 /system
-remounts the /system folder on the phone so that it is read-write, allowing you to mess with the system files
5. mv /system/framework/framework-res.apk /sdcard/framework-resORIG.apk
-backs up the default framework-res.apk from the phone by moving it to the SD card
6. cat /sdcard/fr-black.apk > /system/framework/framework-res.apk
-copies the fr-black.apk from the SD card and puts it in the old framework-res' place
7. chmod 755 /system/framework/framework-res.apk
-changes the user permissions for the new file
Eseb0 said:
Here, I'll try to explain what happens
1. adb push framework-res.apk /sdcard/fr-black.apk
-copies "frarework-res.apk" from ADB's folder and moves it to the phone's SD card, names it "fr-black.apk"
2. adb shell
-opens the linux shell on the phone
3. su
-goes into superuser mode, i.e. runs apps as admin if you're familiar with windows terms
4. mount -o remount,rw -t yaffs2 /dev/block/mtdblock2 /system
-remounts the /system folder on the phone so that it is read-write, allowing you to mess with the system files
5. mv /system/framework/framework-res.apk /sdcard/framework-resORIG.apk
-backs up the default framework-res.apk from the phone by moving it to the SD card
6. cat /sdcard/fr-black.apk > /system/framework/framework-res.apk
-copies the fr-black.apk from the SD card and puts it in the old framework-res' place
7. chmod 755 /system/framework/framework-res.apk
-changes the user permissions for the new file
Click to expand...
Click to collapse
hehe ty bro
Hi
I need some help pls, when i wanna replace the framework-res.apk i get this:
C:\exploid_x10mini>adb push framework-res.apk /sdcard/fr-black.apk
* daemon not running. starting it now *
* daemon started successfully *
1523 KB/s (7108054 bytes in 4.557s)
C:\exploid_x10mini>adb shell
$ su
su
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock2 /system
mount -o remount,rw -t yaffs2 /dev/block/mtdblock2 /system
# mv /system/framework/framework-res.apk /sdcard/framework-resORIG.apk
mv /system/framework/framework-res.apk /sdcard/framework-resORIG.apk
failed on '/system/framework/framework-res.apk' - Cross-device link
Please help
try
mount -o rw,remount /dev/block/mtdblock0 /system
and check first-after with mount bash command the mountpoint
oversim said:
try
mount -o rw,remount /dev/block/mtdblock0 /system
and check first-after with mount bash command the mountpoint
Click to expand...
Click to collapse
I still get the same:
C:\exploid_x10mini>adb shell
$ su
su
# mount -o rw,remount /dev/block/mtdblock0 /system
mount -o rw,remount /dev/block/mtdblock0 /system
# mv /system/framework/framework-res.apk /sdcard/framework-resORIG.apk
mv /system/framework/framework-res.apk /sdcard/framework-resORIG.apk
failed on '/system/framework/framework-res.apk' - Cross-device link
#
Can you explain .. " and check first-after with mount bash command the mountpoint" .. please
Skip mv step instade backup by root expkorer.
Sent from my E10i using XDA App
Thank you my mini is now black
kimb0 said:
Hi
I need some help pls, when i wanna replace the framework-res.apk i get this:
C:\exploid_x10mini>adb push framework-res.apk /sdcard/fr-black.apk
* daemon not running. starting it now *
* daemon started successfully *
1523 KB/s (7108054 bytes in 4.557s)
C:\exploid_x10mini>adb shell
$ su
su
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock2 /system
mount -o remount,rw -t yaffs2 /dev/block/mtdblock2 /system
# mv /system/framework/framework-res.apk /sdcard/framework-resORIG.apk
mv /system/framework/framework-res.apk /sdcard/framework-resORIG.apk
failed on '/system/framework/framework-res.apk' - Cross-device link
Please help
Click to expand...
Click to collapse
you can use cat /system/framework/framework-res.apk > /sdcard/framework-resORIG.a
as a work around
It help me

WORK AROUND - Scripting help for Android and my DX2!

All right... I guess it's time to "ask the experts". My linux background has not been very much help here... ARGH!
Okay, I have two script that I have written that are supposed to mount /system as RO and RW respectively. Very simple:
To mount rw:
Code:
#!/system/bin/sh
mount -o rw,remount -t ext3 /dev/block/mmcblk1p21 /system
To mount ro:
Code:
#!/system/bin/sh
mount -o ro,remount -t ext3 /dev/block/mmcblk1p21 /system
I manually ran the mount -o rw,remount -t ext3 /dev/block/mmcblk1p21 /system command and adb pushed them to /system/xbin as mountro and mountrw and chmod both to 755.
In ADB I try to execute:
Code:
/system/xbin/mountrw
and get an error stating:
Code:
/system/xbin/mountrw: not found
I even try:
Code:
/system/bin/sh /system/xbin/mountrw
and I get this error:
Code:
mount: No such file or directory
Okay, so I figured out that it is having a problem trying to find the mount command, so I modify the script to:
Code:
#!/system/bin/sh
/system/bin/mount -o rw,remount -t ext3 /dev/block/mmcblk1p21 /system
I then re-run this:
Code:
/system/bin/sh /system/xbin/mountrw
and I'm still getting this friggin' error message!
Code:
mount: No such file or directory
When I run it through Script Manager I get the same error:
Code:
mount: No such file or directory
This should just friggin' work damn it! (Sorry, very frustrated.)
Also, it would be nice NOT to have to type the path to the script. I can run ZepplinRox V6_SuperCharger script from the ADB command line just by typing from the directory I have it in:
Code:
sh V6_SuperCharger_for_Android-update9_RC3.2.sh
No absolute path, no ./ path... WTF? ARGH!
Okay, I KNOW this is friggin' possible just by the fact that I can run Zep's script in ADB...
So, any takers? Thanks in advanced...
Friggin' Ciao.
[EDIT]
Okay, I figured out a work around for this... I probably should not work on this after working at work all day... But, that is another story...
I have heavily modified the script files I have created. They are still called mountrw and mountro and the contents are as follows:
mountrw:
Code:
#!/system/bin/sh
# This mounts the /system file system as Read Write in order to modify or add
# files to the /system file system.
busybox mount -o remount,rw / 2>/dev/null
busybox mount -o remount,rw rootfs 2>/dev/null
busybox mount -o remount,rw /system 2>/dev/null
mountro:
Code:
#!/system/bin/sh
# This mounts the /system file system as Read Only which is the default when
# Android is booted.
busybox mount -o remount,ro / 2>/dev/null
busybox mount -o remount,ro rootfs 2>/dev/null
busybox mount -o remount,ro /system 2>/dev/null
So, after poking around in ZepplinRox's V6_SuperCharger script, I found those values repeated several times, so that helped point me in the right direction. The next problem I had was getting the scripts to "run from anywhere". I still haven't figured that one out yet, and the VERY MESSY solution to that is to put the two scripts in /. I know, I know, I know... that is the most dangerous place to put it.
So, when I first log into the ADB shell all I have to type is
Code:
sh mountrw
and when I'm done, type
Code:
sh mountro
So, As the work around, this works. I really don't recommend anyone else doing this because of the data security risks that you open your phone up to... Yes, I'm aware of them and that is why I am asking now for some help in having the ability to run a script globally, from anywhere in the android file structure. I don't mind typing the "sh" in front of the script since I sometimes must do that in linux. I have noticed that the $PATH of Android doesn't allow scripts to be executed unless you type the absolute path to the script, or are in the same directory as the script.
Okay, so again to ask: Is there any way to execute a script without having to type the absolute path to it? Thanks!
Ciao! (MUCH calmer now then when I first wrote this post...)
[/EDIT]
I don't use adb much at all.
Usually I move stuff around with root explorer and use terminal emulator a lot.
I assume you ran everything as superuser as I sometimes forget to type su first
Maybe the sh command work on the supercharger script because it has the .sh extention.
You can try typing "bash mountrw" since that works when I install the script to /system/xbin/V6
But after reading your post I looked and saw I forgot about permissions so I did chmod 755 and now this works...
su
V6
heh..
I don't have tp type "bash V6" anymore
zeppelinrox said:
I don't use adb much at all.
Usually I move stuff around with root explorer and use terminal emulator a lot.
I assume you ran everything as superuser as I sometimes forget to type su first
Maybe the sh command work on the supercharger script because it has the .sh extention.
You can try typing "bash mountrw" since that works when I install the script to /system/xbin/V6
But after reading your post I looked and saw I forgot about permissions so I did chmod 755 and now this works...
su
V6
heh..
I don't have tp type "bash V6" anymore
Click to expand...
Click to collapse
Yes, I ran everything as su. (I'm a linux admin guy, so su and sudo is next to natural for me...)
Okay, so you put the mountrw script in /system/xbin/V6/ ??
Also, it is an sh script. I identify that in the first line of
Code:
#!/system/bin/sh
I have changed it to bash and same problem. Oh well. I think I can live with the scripts at /
Thanks though!
Ciao!

please help me edit bstid file (bluestack 0.8.5)

hi , im using rooted bluestack 0.8.5 .
and i need edit file /proc/bstid to change BS serial .
im tried to edit by using root explore ( i gave rw permission) but it say cant save .
then i try to use adb to write/copy file , but it still say :
Code:
adb push C:\bstid /proc/
failed to copy 'C:\bstid' to '/proc//bstid': Read-only file system
Code:
adb remount
* daemon not running. starting it now *
* daemon started successfully *
remount succeeded
adb push C:\bstid /proc/
failed to copy 'C:\bstid' to '/proc//bstid': I/O error
Code:
C:\Users\Judas\Downloads\Compressed\ADB>adb shell
[email protected]:/ # su
su
[email protected]:/ # mount -o rw,remount /proc/bstid /system
mount -o rw,remount /proc/bstid /system
[email protected]:/ # echo "xxxxxxxxxxxxxxxxxxxxxxxx" > /proc/bstid
echo "xxxxxxxxxxxxxxxxxxxxxxxx" > /proc/bstid
but nothing change .
could anyone please help me, how to edit bstid file ?
or please tell me a way to fake bluestack 0.8 serial
dechut said:
hi , im using rooted bluestack 0.8.5 .
and i need edit file /proc/bstid to change BS serial .
im tried to edit by using root explore ( i gave rw permission) but it say cant save .
then i try to use adb to write/copy file , but it still say :
Code:
adb push C:\bstid /proc/
failed to copy 'C:\bstid' to '/proc//bstid': Read-only file system
Code:
adb remount
* daemon not running. starting it now *
* daemon started successfully *
remount succeeded
adb push C:\bstid /proc/
failed to copy 'C:\bstid' to '/proc//bstid': I/O error
Code:
C:\Users\Judas\Downloads\Compressed\ADB>adb shell
[email protected]:/ # su
su
[email protected]:/ # mount -o rw,remount /proc/bstid /system
mount -o rw,remount /proc/bstid /system
[email protected]:/ # echo "xxxxxxxxxxxxxxxxxxxxxxxx" > /proc/bstid
echo "xxxxxxxxxxxxxxxxxxxxxxxx" > /proc/bstid
but nothing change .
could anyone please help me, how to edit bstid file ?
or please tell me a way to fake bluestack 0.8 serial
Click to expand...
Click to collapse
any one can help?>
I got the same problem
Please help me
amcetoi said:
any one can help?>
I got the same problem
Click to expand...
Click to collapse
Please help me

urgent help required please help

Please help guys stuck here....
I've tried to delete malwarebytes apk from the /system folder (why it was in there is beyond me but.. it was) successfully un-mounted /system folder and deleted the .apk but i am unable to remount the /system folder again.
I checked it was not running before deleting although it would not working crash back to home screen run hence reason for deleting it in the first place and because of location I was unable to just uninstall or update it normally. now trying to remount the system folder It keeps saying mount: Device or resource busy
output from putty:-
login as: root
SSHD Server
[email protected]'s password:
[email protected]:/storage/emulated/legacy # mount -o remount,rw /system
[email protected]:/storage/emulated/legacy # mount -o remount,ro /system
mount: Device or resource busy
255|[email protected]:/storage/emulated/legacy # su
[email protected]:/storage/emulated/legacy # mount -o remount,ro /system
mount: Device or resource busy
tried:
login as: root
SSHD Server
[email protected]'s password:
[email protected]:/storage/emulated/legacy # adb remount
* daemon not running. starting it now on port 5038 *
* daemon started successfully *
remount failed: Permission denied
[email protected]:/storage/emulated/legacy #
also tried from pc command line adb root and adb mount get same error/permission denied
any command I can run to force it or any command to find out whats stopping it, don't mind reflashing it after just don't want to brick the dam thing
I know that as soon as I reboot the box it will brick it, so I am desperate to try and force mount it if possible or anything at this stage
hopefully you guys can help me as I am not really an expert with androids and about run out of ideas how to fix this problem
thanks
Sorted now thanks anyway..

Broken cache (17mb or less) fix script (samsung I9000)

Hi all,
I've been looking around to solve my /cache problem of it being only 17MB.
Found a temporary fix but that needed to be implemented or executed every boot up.
And since I am to lazy or stupid to remember that every boot I search for another solution ...
Combined a script from someone else with some stuf I found somewhere else...
Descriptions are in the code....
This code works on my samsung I9000 with Full Advance Rom final 6.0.1:good::good:
Code:
#!/system/bin/sh
# stratosk - 27/07/2011
# Modified by Dutchpatriot 26/06/2017
# Works on Full advance Rom with I9000
# Change params
# Check your partitions name /cache
# Need to be root via ADB or root via device
# with the command : mount
# This fix is only needed when /cache has arround 17mb!!!
# run this command as root in ADB shell as root
# To be able to execute this you need to change file system from read-only to rewritable
# as root exec this command: mount -o rw,remount /system
# Paste this text in a file called cachefix.sh
# command : vi cachefix.sh
# If you like me, and arn't that good with vi
# I will attach a cachefix.sh to this post as
# cachefix.txt rename it to cachefix.sh
# give the cachefix.sh the right permissions
# chmod 777 cachefix.sh
# Run this once!
# sh /LOCATION_OF_SCRIPT/cachefix.sh
# or
# ./LOCATION_OF_SCRIPT/cachefix.sh
#
# when ran once the /data/local
# and all went well has a
# cache.img file
# This is now mounted as /cache
# command to see or verfy: mount
# /cache is now as big as you made it under
# CREATE A FILE 500mb
# Every time you reboot the 99Tcachefix script in /etc/init.d/ will be executed!
#
# adb root
# adb shell
# remount / and /system writable
mount -o rw,remount /
mount -o rw,remount /system
# EDIT the right old cache partitio /dev/block/mtdblock3 to fit yours!!!
# Makes script in /etc/init.d named 99Tcachefix so it will be executed on boot
echo "#!/system/bin/sh \n umount /dev/block/mtdblock3 \n losetup /dev/block/loop7 /data/local/cache.img \n mount -t ext4 /dev/block/loop7 /cache \n chown system.cache /cache \n chmod 770 /cache" >> /system/etc/init.d/99Tcachefix
# assign the right permissions to be executed as root but not edited
#There is a very neat trick in every Linux which will allow you to do so. It is called the SetUI bit.
#Keep in mind that you will need to have the permissions locked down tight in this file for this to be secure.
#Make the file owned by root and group root:
#sudo chown root.root <my script>
#Now set the SetUID bit, make it executable for all and writable only by root:
#sudo chmod 4755 <my script>
# Keep in mind if this script will allow any input or editing of files, this will also be done as root.
# source https://askubuntu.com/questions/167847/how-to-run-bash-script-as-root-with-no-password
# Leave as is!
chown root.root /system/etc/init.d/99Tcachefix
chmod 4755 /system/etc/init.d/99Tcachefix
# Check if dir is there else Create Dir LEAVE AS IS
if [ -d "/data/local" ]; then
echo "directory /data/local already there!"
echo "Showing dir /data/local"
sleep 3
ls "/data/local"
sleep 2
else
# create dir
mkdir /data/local
echo "Directory /data/local created"
fi
# create a file 500mb (change if you like count=XXXXXX)
dd if=/dev/zero of=/data/local/cache.img bs=1024 count=500000
# create ext4 filesystem LEAVE AS IS!!
mke2fs -F -T ext4 /data/local/cache.img
# my cache partition is called /dev/block/mtdblock3 see whats yours is called and
# change this to yours!!!
umount /dev/block/mtdblock3
# mount LEAVE AS IS!!!
losetup /dev/block/loop7 /data/local/cache.img
mount -t ext4 /dev/block/loop7 /cache
chown system.cache /cache
chmod 770 /cache
# Remount / and /system as read-only again
mount -o ro,remount /system
mount -o ro,remount /
sleep 3
echo "Now after reboot this (cache) partition will be back!"
sleep 10
echo "All done, if there where no errors you can now delete cachefix.sh"
echo "If your new /cache partition is mounted with the given size than all is good"
echo "These are the configurations now"
# exec df command to show config now
df
sleep 10
exit
With this your /cache will be changed to whatever values you give in the code...
For safety remove the cachefix.sh afterwards...
Added cachefix.txt, download and rename to cachefix.sh
Greets,
Dutchpatriot

Categories

Resources