[MOD] Ad Blocking on Start-Up [Updated 11/09/2010] - G2 and Desire Z Android Development

update: This method is for use with Temp-Root with Visionary app. For permanent root, you can just use the adfree app, which is free in the market. Alternatively, you can still use the manual temp-root method with permanent root if you don't want an extra app. Just run the adblock-startup.sh file once, and then use the wget script whenever you want to do an update of the hosts file!
After trying out a few things to get ad free working on startup, I was able to get it going without actually using the app. I used the basic concept of the app, but basically am performing it in command lines.
For this, I used GScripts to run/edit scripts, and Visionary to do a temp-root.
If you want to skip all of this, and go to a completely automated script, see updates at bottom.
First, create a script, adblock-wget.sh, to download the latest hosts file which blocks certain sites. It pulls the file from a website that contains updated hosts files and stores it in /data/data/:
##adblock-wget.sh##
Code:
wget http://209.68.48.119/winhelp2002/hosts.txt -O /data/data/hosts
This can be done in GScripts, and run every couple days to get the latest copy. Make sure you have SU checked in the script.
Second, we need to make another script, adblock-startup.sh which removes the existing hosts file in /system/etc/ and then create a symlink to the hosts file we just obtained on the internet in /data/data/
##adblock-startup.sh##
Code:
mount -o remount,rw /dev/block/mmcblk0p25 /system
rm /etc/hosts
ln -s /data/data/hosts /system/etc/hosts
mount -o remount,ro /dev/block/mmcblk0p25 /system
finally, you'll need to add this script to visionary.sh. if you created it in gscripts, one easy method is to long press the script in the menu, and save to SD. it'll be placed in your /sdcard/gscript/ folder.
to place this newly created script in visionary.sh, open up your current visionary.sh file, and place this line in it:
##visionary.sh##
Code:
sh /sdcard/gscript/adblock-startup.sh #change to correct directory
busybox killall system_server #this hot reboot is optional
the last line in that script performs a quick reboot, which retains temp-root and hopefully clears the DNS caches if you are still seeing ads pop up.
- - - - -
[UPDATE 11/03/2010]
I added the scripts in a zip file attached.
[update 11/04/2010]
if you dont want to manually update, you can just add the wget function into the installation script shown below. This will download the latest ad block updates at start-up, so you will not need to manually update later.
## adblock.sh ##
Code:
wget http://209.68.48.119/winhelp2002/hosts.txt -O /data/data/hosts
mount -o remount,rw /dev/block/mmcblk0p25 /system
rm /etc/hosts
ln -s /data/data/hosts /system/etc/hosts
mount -o remount,ro /dev/block/mmcblk0p25 /system
for this method, just place the same info in visionary.sh:
##visionary.sh##
Code:
sh /sdcard/gscript/adblock.sh
busybox killall system_server
replace the location to where you end up putting adblock.sh.
working example files are attached.
- - - - -
please note that you can change some of these steps to fit what other items you have running at startup.
if you're able to find a better method to perform this, please let me know! I was unable to run these commands directly within visionary.sh, so i had to make these links.
Thanks!
credits go to "Microsoft MVPs" for maintaining the HOSTS ad blocking file, delta_foxtrot2 who discovered and made the AdFree app

Nice write up, I finally got it working using root explorer and doing the steps manually, but was too lazy to script it haha, good work though

Upload the script file for us
Sent from my T-Mobile G2 using XDA App

Dalamak said:
Upload the script file for us
Sent from my T-Mobile G2 using XDA App
Click to expand...
Click to collapse
done. check the first post.
you can also be sporty and use the wget function at startup too.

For those of you who have a problem with visonary.sh locking your phone up.
Here is a gscript version.
Code:
# Overclock the CPU
insmod /data/local/vision_oc.ko pll2_l_val=73
insmod /data/local/tun.ko
# No Ads thanks XDA
rm /data/data/hosts
wget http://209.68.48.119/winhelp2002/hosts.txt -O /data/data/hosts
mount -o remount,rw /dev/block/mmcblk0p25 /system
rm /etc/hosts
ln -s /data/data/hosts /system/etc/hosts
mount -o remount,ro /dev/block/mmcblk0p25 /system

Does this actually work? I've tried hot-rebooting the phone (retaining root), and I still get ads. How does this differ from using visionary, running ad free, and hot booting?
The problem I'm seeing is that it doesn't seem like a hot reboot clears the DNS cache.

dyndragon said:
Does this actually work? I've tried hot-rebooting the phone (retaining root), and I still get ads. How does this differ from using visionary, running ad free, and hot booting?
The problem I'm seeing is that it doesn't seem like a hot reboot clears the DNS cache.
Click to expand...
Click to collapse
it sometimes block ads, sometimes does not. one, you might have to clear the caches in the apps you use as well. and two, some ads (presumably newer) arent blocked in the hosts file either.
this is not different than using adfree at all. it uses the same hosts file and same symlink technique for htc phones. i just tried to make it work automated on startup.

works here.

update
updated original post with a newer "self-healing" start up script, which will automate the entire process after running visionary root.

How come in the script you delete /etc/hosts but symlink to /system/etc/hosts ? Excuse my ignorance

you cant symlink a file that already exists, so i had to delete it. You can also just copy /data/data/hosts to /system/etc (or /etc) but it doesnt always work for some reason even though its mounted rw... this method seems to be flawless, plus you can update /data without issues and always have the latest copy there.

So does this block ads in apps? If so, it doesn't seem to block the ads that take up an entire screen (where you have to click 'skip' to move on), but seems to block the smaller ads from my brief trial period with it so far.

sorry but where exactly is visionary.sh? do i have to create it myself or does it exist somewhere after a temp-root?

ajk1311 said:
sorry but where exactly is visionary.sh? do i have to create it myself or does it exist somewhere after a temp-root?
Click to expand...
Click to collapse
You create the visionary.sh script in /data/local/
It runs automatically when you use the visionary app (located in market). Those this app is now outdated since permaroot is out.

yes. this is unneccessary if you used the new root method. the adfree app is free and does the same thing.
Sent from my T-Mobile G2 using XDA App

minotauri said:
yes. this is unneccessary if you used the new root method. the adfree app is free and does the same thing.
Sent from my T-Mobile G2 using XDA App
Click to expand...
Click to collapse
Or you could say that app is useless since this does the same thing
Lol, either way I like this better and I thank you for providing it!

lol. ya. but the app came first. this is just an appfree version of adfree. it still works with perm root. you just need to do the symlink once and then run the wget command when you want to update a new hosts file which is updated weekly or so.
Sent from my T-Mobile G2 using XDA App

I have been unable to get adfree to work. Still get ads in all my apps. Anyone else having this issue?

yo
since now we have perm root can you make a permanent script rather than doing visionary and scripts?

adfree from market
Adfree from the market works great with perm root. D-load from market. Open the app. Click install at the top and reboot phone. Ad's should now be blocked from apps. Angry birds with no ads!! Sweetness!!!

Related

[GUIDE] Update CM without losing custom /system changes (ex Swype, keymap)

There's a really simple way to prevent CyanogenMod from overwriting your custom /system changes during an update. Create the file '/system/etc/custom_backup_list.txt' with a list of files within /system that you don't want to be overwritten.
For example, to prevent CM from wiping out Swype, open adb shell and type this:
Code:
mount -o remount,rw /system
cd /system/etc
echo lib/libSwypeCore.so >custom_backup_list.txt
echo app/Swype.apk >>custom_backup_list.txt
cd /
mount -o remount,ro /system
If you use teferi's custom keymap, do this:
Code:
mount -o remount,rw /system
cd /system/etc
echo lib/libSwypeCore.so >custom_backup_list.txt
echo app/Swype.apk >>custom_backup_list.txt
echo usr/keylayout/vision-keypad.kl >>custom_backup_list.txt
echo usr/keychars/vision-keypad.kcm.bin >>custom_backup_list.txt
cd /
mount -o remount,ro /system
Then the next time you flash CM, your changes to /system will still be there. If you want to see why this works, take a look at /system/bin/backuptool.sh
Hope this helps
Thanks! This is great; now I can easily keep my Email.apk that doesn't require me to enter a alphanumeric password every time I want to use the phone.
CM probably needs to overwrite build.prop but I've been changing the LCD density in this file. Is there a way to use a seperate file to override the lcd density so that i can let CM overwrite build.prop but still maintain lcd density after a flash?
Whatever commands you put in /data/local/userinit.sh will run at boot. So in adb shell, type this for a density of 215:
Code:
cd /data/local
echo setprop qemu.sf.lcd_density 215 >userinit.sh
awesome! thank you!
Don't suppose you would know how to get the CM update to not install/auto delete after installation apks like ADWLauncher and wifi calling?
Thank you!
This may be the long lost solution to my Swype and Cyan Problems. The new Release Candidates are destroying my swype and not liking it's return after installing the new Cyan. So, if this can basically help me update without losing much, it's a god send. Especially the LCD density.
You're a genius.
Thank you.
Hmm, seems the issue is still persistent. Thanks though.
Should userinit.sh and custom_backup_list.txt survive the upgrade or should they both be included in the backup list file?
Sent from my HTC Vision using XDA App
If you look at the actual script, it seems that it ignores the backuptool if .installscript exists, and in practice, I've noticed that nothing gets saved when flashing via ROM Manager. Is this, in fact, what's happening, and is there a way around it?
sundar2012 said:
awesome! thank you!
Don't suppose you would know how to get the CM update to not install/auto delete after installation apks like ADWLauncher and wifi calling?
Click to expand...
Click to collapse
You can put the following in /data/local/userinit.sh:
mount -o rw,remount /system
for apk in ADWLauncher.apk MS-HTCVISION-KNT20-02.apk
do
rm -f /system/app/$apk
done
for package in com.android.launcher
do
pm uninstall $package
done
mount -o ro,remount /system
exit 0
Click to expand...
Click to collapse
I haven't tried this for removing the Wifi Calling app, so ymmv. I remove a much larger set of apps myself (facebook, email, live wallpapers, amazon mp3 store, DSPManager, FileManager, Browser). http://wiki.cyanogenmod.com/index.php?title=Barebones has a list of apps that can be removed safely.
@cparekh -- what e-mail app is that? Or did you just use the pre-OTA's Email.apk app?
Rc4 has the trackpad wake fm radio and speaker led fixed its workng very smooth better than rc3
Sent from my HTC Vision using XDA App
sundar2012 said:
awesome! thank you!
Don't suppose you would know how to get the CM update to not install/auto delete after installation apks like ADWLauncher and wifi calling?
Click to expand...
Click to collapse
Just delete them from the cmupdate.zip before flashing. Cwm recovery doesn't require sig so u don't have to worry about resigning it.
OP: nice find, I'm sure ill use it at some point.
This is driving me crazy because I know I have used this command before but i cannot get it to work now... What is the deal?
Code:
$ mount -o remount,rw /system
Usage: mount [-r] [-w] [-o options] [-t type] device directory
Rooted using gfree on this phone. On my previous phone I used wpthis and did not have a problem. Anyone know what I need to do to mount rw?
cparekh said:
Thanks! This is great; now I can easily keep my Email.apk that doesn't require me to enter a alphanumeric password every time I want to use the phone.
Click to expand...
Click to collapse
I need that apk
Sent from my HTC Vision using XDA App
Used this method to when going from stock to CM 6.1.1 and could not get it to work. I had to push/install manually from ADB.
Anyone had any luck? I did what the OP said then flashed. Was I supposed to do anything after flashing wiping and then flashing (CM & gapps)?
rraxda said:
This is driving me crazy because I know I have used this command before but i cannot get it to work now... What is the deal?
Code:
$ mount -o remount,rw /system
Usage: mount [-r] [-w] [-o options] [-t type] device directory
Rooted using gfree on this phone. On my previous phone I used wpthis and did not have a problem. Anyone know what I need to do to mount rw?
Click to expand...
Click to collapse
Make sure you have root in the shell by typing su.
cparekh said:
Thanks! This is great; now I can easily keep my Email.apk that doesn't require me to enter a alphanumeric password every time I want to use the phone.
Click to expand...
Click to collapse
IConrad01 said:
@cparekh -- what e-mail app is that? Or did you just use the pre-OTA's Email.apk app?
Click to expand...
Click to collapse
chubb16 said:
I need that apk
Sent from my HTC Vision using XDA App
Click to expand...
Click to collapse
I am also interested in that apk
How can I backup progress on Angry Birds? Drives me nuts starting back over when I reflash CM
Titanium backup. You can use it to restore the app and the data. Usually i just restore the data to a fresh install.

Help needed. Rooting Desire Z

Ok, after using my phone for a while i decided to root it. Since I have the stock Gingerbread rom i followed the guide to downgrade to the stock froyo rom. http://forum.xda-developers.com/showthread.php?t=1178912
I reached the part Temp-Rooting to Backup However, when i run titanium backup it says Error: Sorry, I could not acquire root privileges. This application will *not* work.
What am I supposed to do? I followed the guide to the letter and everything up till that point was exactly as the guide said.
My phone's details are
Android version 2.3.3
Baseband version 12.56.60.25U_26.10.04.03_M
Kernel version 2.6.35.10-g7b95729
Software number 2.42.415.17
Here is what i did in adb
http://pastebin.com/jkxE55Yh
For some reason, new users are not allowed to post links in their replies. Nipqer, i redid all my steps and did what you told me.
here is the link of all what i did:
http://pastebin.com/Fze9uB33
First, thank you so much for linking a pastebin of what you've done, makes it so much easier to try help.
However I'd really like to see if there was any output after running 'adb shell /data/local/
tmp/fixsu.sh' so if you can get that ouput and post it, would be much appreciated.
You might have to run it from inside shell:
adb shell
cd /data/local/tmp
./fixsu.sh
-Nipqer
Thanks Nipqer and sorry for the late reply.
I did what you told me and this is what i got
C:\Program Files (x86)\Android\android-sdk\platform-tools>adb shell
adb server is out of date. killing...
* daemon started successfully *
# cd /data/local/tmp
cd /data/local/tmp
# ./fixsu.sh
./fixsu.sh
#
though i don't know if it helps with anything.
I just got confused because in the guide it says to install Titanium backup and backup my data. I have already done a manual backup myself but i figured doing a backup using Titanium backup will not hurt. I have used other programs like Root Checker Basic and it tells me that i don't have proper root access.
Can I just ignore this issue and go ahead with the downgrade? Or will there be some problems?
Thanks again in advance!
Hmm, it should give you root permissions after running fixsu.sh.
The lack of output shows it should've worked.
That part of the guide is entirely optional anyway, so If you already have what you want backed up, go ahead and downgrade.
-Nipqer
Nipqer said:
Hmm, it should give you root permissions after running fixsu.sh.
The lack of output shows it should've worked.
Click to expand...
Click to collapse
Well. fixsu.sh returned no error for me, too. But Titanium backup did not get root and trying to call "su", I got I/O error. And looking to dmesg, I seen corrupted file system.
After a bit of research I got the reason: rw remount succeeds, Linux thinks, that data are written to flash, but no data are written for real. Once data leave cache, they are lost and system "returns" to intact state.
I wrote a different fixsu.sh, which does not have this problem, but I am still failing to get root privileges, even with the latest Superuser+su. I got only a pop-up about refused root access. (But "su number_of_any_existing_uid" and then "su" in adb shell says says about permitted access.)
Here is my preliminary fixsu.sh:
Code:
#!/system/bin/sh
chmod 755 /data/local/tmp/busybox
chmod 4755 /data/local/tmp/su
/data/local/tmp/busybox cp -a /system/xbin /data/local/tmp/
mount -o bind /data/local/tmp/xbin /system/xbin
/data/local/tmp/busybox --install -s /system/xbin/
/system/bin/rm /system/xbin/su 2>/dev/null
/data/local/tmp/busybox cp -a /data/local/tmp/su /system/xbin/
/data/local/tmp/busybox cp -a /system/bin /data/local/tmp/
mount -o bind /data/local/tmp/bin /system/bin
/data/local/tmp/busybox cp -a /data/local/tmp/su /system/bin/
# /etc/* changes are needed only for some busybox utils, not for Superuser's su
/data/local/tmp/busybox cp -a /system/etc /data/local/tmp/
mount -o bind /data/local/tmp/etc /system/etc
/data/local/tmp/busybox echo "root::0:0:root:/data/local:/system/bin/sh" > /system/etc/passwd
chmod 0666 /system/etc/passwd
/data/local/tmp/busybox echo "root::0:0:root:/data/local:/system/bin/sh" > /system/etc/passwd
/data/local/tmp/busybox echo "root::0:" > /system/etc/group
chmod 0666 /system/etc/group
# Optional:
ln /data/local/tmp/busybox /data/local/tmp/xbin/busybox
And here is the code to recover "writable" state after reboot:
Code:
#!/system/bin/sh
mount -o bind /data/local/tmp/xbin /system/xbin
mount -o bind /data/local/tmp/bin /system/bin
mount -o bind /data/local/tmp/etc /system/etc
Unfortunately I can't tell you why it won't work. Might just be your partitions are too corrupted or something.
Have you tried a full power cycle (turn phone off, pull battery), it's helped other phones work in the past.
Otherwise I'd say just use adb to pull your entire /data dir, so you have everything saved and can mess round with trying to put it back in later.
-Nipqer
Nipqer said:
Unfortunately I can't tell you why it won't work. Might just be your partitions are too corrupted or something.
Have you tried a full power cycle (turn phone off, pull battery), it's helped other phones work in the past.
Click to expand...
Click to collapse
I tried to reboot without battery removal. Partition was "corrupted" before reboot and intact after reboot. I tried to write again. I again got corruption. And ffter reboot it was again byte-equal to the original system.img. It means, that not write actually happens. Linux kernel just assumes that data are written, but they are lost after leaving kernel cache.
Hopefully, Android mount command supports -o bind, so one can bind mount directories from /data and /system is seemingly writable then.
Nipqer said:
Otherwise I'd say just use adb to pull your entire /data dir, so you have everything saved and can mess round with trying to put it back in later.
Click to expand...
Click to collapse
I saved all mmcblk0p* before starting my experiments. It should be the most complete way to backup, but it does not easily allow partial restore.
utx said:
I saved all mmcblk0p* before starting my experiments. It should be the most complete way to backup, but it does not easily allow partial restore.
Click to expand...
Click to collapse
If you saved the data from the partitions, restoring would just be placing the apk in /data/app/ and then placing the data files back into /data/data/ - if you do it this way, you must run fix_permissions whether you saved it with or without preserving the permissions (owner, read/write/execute, et cetera). The app, when you put it on the different rom, will have a different UID (more than likely) than it did before and the data files permissions would be incorrectly set. Running fix_permissions should resolve that issue.
*EDIT*
I may of misunderstood what you meant by saving mmcblk0p*. How did you do this? At first I was thinking you just meant you did a tar backup of each partition, but after re-reading sounds more like you something like
Code:
# dd if=/dev/block/mmcblk0p# of=/sdcard/mmcblk0p#.img
Is that what you did? If so, are you trying to restore it by the same method?
Code:
# dd if=/sdcard/mmcblk0p#.img of=/dev/block/mmcblk0p#
If so, I'm not sure that would work properly… You might have to extract the data from it then copy it over to the partition...
I've had that problem after geting temp root. Titanium would say no root premissions. So I redid the steps after reboot...but I found the problem was that if you open titanium back up be for u root it will throw yu that msg so if yu have did that that's why so go back after you root in to applications and force close titanium and then reopen app then it shuld give you root premssions at least it worked for me but I still wasn't able to down grade and another thing are u using the gfree method kus that didn't work for me to get root... I had to use the freevo method to get temp root as gfree kept giving me errors after doing the adb coommands
sent from my Tmobile G2 Rush Vision
And if that dosnt work yu can use sdcard maid to back up your system apps n such or delete them ....
sent from my Tmobile G2 Rush Vision
Setherio said:
If you saved the data from the partitions, restoring would just be placing the apk in /data/app/ and then placing the data files back into /data/data/ - if you do it this way, you must run fix_permissions whether you saved it with or without preserving the permissions (owner, read/write/execute, et cetera). The app, when you put it on the different rom, will have a different UID (more than likely) than it did before and the data files permissions would be incorrectly set. Running fix_permissions should resolve that issue.
Click to expand...
Click to collapse
I am aware of this problem. But if one returns exactly equal /system as it was there before, the /data will need no change.
Setherio said:
I may of misunderstood what you meant by saving mmcblk0p*. How did you do this? At first I was thinking you just meant you did a tar backup of each partition, but after re-reading sounds more like you something like
Code:
# dd if=/dev/block/mmcblk0p# of=/sdcard/mmcblk0p#.img
Is that what you did? If so, are you trying to restore it by the same method?
Code:
# dd if=/sdcard/mmcblk0p#.img of=/dev/block/mmcblk0p#
If so, I'm not sure that would work properly… You might have to extract the data from it then copy it over to the partition...
Click to expand...
Click to collapse
It was just an abbreviation:
Code:
cd /dev/block
for PARTITION in mmcblk0p* ; do
dd if=/dev/block/$PARTITION of=/sdcard/$PARTITION.img
done
I guess, that the most straightforward way to restore that /data would be: First run
Code:
fsck mmcblk0p26.img
(on Linux machine) on that /data image (when you don't have root and custom recovery yet, you cannot backup /data in read-only mode, so the image is corrupted a bit for sure; if the fsck puts something to /lost+found, you can delete it after finishing of the rooting process). Then rename mmcblk0p26.img to userdata.img and add it to the PC10IMG.zip that restores stock system. Otherwise you will again fight with "partition in use" problem when trying to restore.
I did not test this method, as I did not understand the partition layout that deeply before I root. But there is no reason why it would not work.
Hello everybody,
for quite a while i am reading several guide for rooting my desire z (android 2.3.3, not branded, USB debugging activated, Fast boot deactivated). In Germany most of the guides refer to Setherio's guide. So working with the source is as usual the best.
Unfortunately - even after 3 tries, with factory resets, rebooting, removing the battery, etc. - I cannot gain a temporary root. neither titanium backup nor MyBackUp Root gain access for making a backup. So I ended up here. I am not sure, if Sayedamir had the same problem. Nevertheless, I appreciate every help.
This is what I have done so far:
http://pastebin.com/NKD6D7Av
Furthermore, referring to Nipquer's 1st post, I executed fixsu as described with following results:
http://pastebin.com/0EQS0UnF
I am not sure, if I should proceed with the downgrading without having a backup and I guess, when the backup isn't working (lack of temporary root), the downgrading would not work anyway?!
Hi Vince683,
Yes I had exactly the same problem. I too followed Setherio's guide and after 2 attempts I still couldnt get temp root. I ended up not being able to back up any of my apps.
However i suggest you back up your messages and contact as that was the only stuff I could back up. there are alot of apps in the market that do that and i guess they dont need root.
If backing up your app data is that not important you can proceed with the downgrade. It worked in my case. I guess the only nuisance would be that you have to manually install and configure all yours apps again.
Tell us how it goes.
Perfect, it worked. Thank you for encouraging me
And Cyanogenmod 7.2 works fine.
Vince683 said:
Perfect, it worked. Thank you for encouraging me
And Cyanogenmod 7.2 works fine.
Click to expand...
Click to collapse
You're welcome

Square Enix Chaos Rings (Force Close Root Workaround)

Hey, just in case anyone else shelled out the money for SE's new Android release, Chaos Rings and couldn't play due to being rooted...
All you need to do to be able to play is rename your SuperSU.apk/superuser.apk in the /system/app folder (I just added, ".bak" to the filename) and the force close will end. Of course, you will probably want to rename the apk back to normal once finished
EDIT:
Cooldoud has a script on post #5 which, with Script Manager, should offer a widgetable solution to quickly renaming the superuser/supersu apk
rmikulus said:
Hey, just in case anyone else shelled out the money for SE's new Android release, Chaos Rings and couldn't play due to being rooted...
All you need to do to be able to play is rename your SuperSU.apk/superuser.apk in the /system/app folder (I just added, ".bak" to the filename) and the force close will end. Of course, you will probably want to rename the apk back to normal once finished
Click to expand...
Click to collapse
Sounds like a job for a bash script and Anycut. Would hate to have to do that manually all of the time...
garwynn said:
Sounds like a job for a bash script and Anycut. Would hate to have to do that manually all of the time...
Click to expand...
Click to collapse
OOH how difficult is it to do? Would be nice to automate
rmikulus said:
OOH how difficult is it to do? Would be nice to automate
Click to expand...
Click to collapse
Renaming is easy - busybox mv <source> <dest>
It's calling the app that I'm not certain about.
Yep found that out too... Really can't figure out why they went through the hassle of implementing such a lame system... Anyway, I wrote the below script for my gnote, it will toggle supersu so you can use the same widget to enable and disable supers.
After that install script manager, and set the script to be executed as root. You can then just create a widget to easily access the script
Code:
mount -o remount,rw /system
if [ $? -ne 0 ]; then
echo "Failed to remount /system as rw"
exit
fi
if [ -f "/system/app/Superuser.apk" ]; then
echo "Disabling Superuser App..."
mv /system/app/Superuser.apk /system/app/Superuser.bak
mount -o remount,ro /system
echo "All Done"
else
echo "Enabling Superuser App..."
mv /system/app/Superuser.bak /system/app/Superuser.apk
mount -o remount,ro /system
echo "All Done"
fi
I tried making it into a .sh and running it on script manager but it didnt work. kept saying line errors.
Metalshadowx2 said:
I tried making it into a .sh and running it on script manager but it didnt work. kept saying line errors.
Click to expand...
Click to collapse
You must make sure you convert your newline characters to Unix format. Wondows-style newline will cause the error you're getting (well if we're talking about the same error )
You can use notepad++ or Google dos2unix for a command line tool.
Sent from my GT-N7000 using xda app-developers app
Shouldn't this be in the apps section?
Sent from my SPH-D710 using xda premium
Probably yes, might also want to take it out of the Epic 4G section and move it to general Android as this is going to affect all devices
That's what I was just thinking...
Sent from my SPH-D710 using xda premium
cooldoud said:
Yep found that out too... Really can't figure out why they went through the hassle of implementing such a lame system... Anyway, I wrote the below script for my gnote, it will toggle supersu so you can use the same widget to enable and disable supers.
After that install script manager, and set the script to be executed as root. You can then just create a widget to easily access the script
Code:
mount -o remount,rw /system
if [ $? -ne 0 ]; then
echo "Failed to remount /system as rw"
exit
fi
if [ -f "/system/app/Superuser.apk" ]; then
echo "Disabling Superuser App..."
mv /system/app/Superuser.apk /system/app/Superuser.bak
mount -o remount,ro /system
echo "All Done"
else
echo "Enabling Superuser App..."
mv /system/app/Superuser.bak /system/app/Superuser.apk
mount -o remount,ro /system
echo "All Done"
fi
Click to expand...
Click to collapse
Anyway, big ups to cooldaud, your script works great for me! Had to change "Superuser" to "SuperSU" but everything is great! SMWidget ftw as well
Well so ironic SE would punish rooted android users and not GAF on ffxi hackers still -.- Meh I only speed hack moderately anyway...have you tried traveling otherwise? Soooo slow >.<
Sent from my SPH-D710 using XDA
Hi, tried this script on galaxy note 10.1, all went well and tablet acts like non rooted, but still supersu app in the app drawer and the game crashes as usually
cooldoud said:
You must make sure you convert your newline characters to Unix format. Wondows-style newline will cause the error you're getting (well if we're talking about the same error )
You can use notepad++ or Google dos2unix for a command line tool.
Sent from my GT-N7000 using xda app-developers app
Click to expand...
Click to collapse
ok i did and now i get this error
Looks like you're not using the busybox binaries. Maybe try replacing "mount" by "busybox mount"? Problem is I don't know what shell you'd be using so that might still not be working. Are you using the international Note? What ROM?
Also double check whether you're using SuperSU.apk or Superuser.apk as your root configuration tool.
I have no idea how all these scripts work, so I just tried to change the name of my superuser.apk, but for the life of me I can't figure out how to do that. My phone insists that I have insufficient privileges to rename it...
It seems that they finally added "*This game cannot be played on rooted devices." to the app description, it was not there yesterday
Well, I went and researched scripts. Got this script to work. (Had to add "busybox" before "mount")
Checked that the app does get renamed to .bak, and yet I still get a force close when i press start. I guess I'll just have wait for SE's patch.
It's important to check that the application is not appearing in your app drawer anymore (if your launcher can detect the app, so can SE... ) . Go there and check, if the app is still appearing it means it is still accessible (not sure whether you then need a reboot for it to disappear or something?), if it's not there... it means SE is also checking some other stuff to determine whether you're rooted, but I have no idea what that would be.
Ah yes, that's it. It still shows in my app drawer. Reboot didn't help. Trying searching the issue, came up with nothing. I guess I'm not meant to play this game just yet lol. Thank for trying to help!

[Q] Why can't I mount 'System' on Nexus 7 (2013) ?

Hi,
A few days ago, I did unlock and root my N7 (2013) using "Nexus Root Toolkit (v.1.6.8)" by WugFresh. I followed the instructions to the letter and everything went OK, it seemed. My N7 (JSS15J) is unlocked and I have root access, as confirmed by "Titanium Backup" and "Root Checker Pro" app.
However, my N7 cannot mount "System" - which is why I cannot delete any system app bloatware (also confirmed by "System App Remover" & Root Checker Pro app). When rooting my N7 (2012) and my SGS3, everything worked just perfectly and I never had these kind of issues...
I did factory-reset a number of times, went through the unlock/root process again, rooted again via UPDATE-SuperSU-v1.51.zip etc etc. - no dice. TWRP v2.6.0.0 is installed and working. I also installed & updated BusyBox, and I wiped of Dalvik - but still no root access to "System", or "mount".
As I just found out, "Root Checker Pro" actually explains why I can't mount "System" and/or don't have root access... I just don't know what to do about it:
Congratulations! You have root access!
Super User Application Status:
SuperSU application - version 1.51 - is installed!
System File Properties for Root Access:
Standard Location
Check Command: ls -l /system/bin/su:
Result: /system/bin/su: No such file or directory
Analysis: File /system/bin/su does not exist.
Standard Location
Check Command: ls -l /system/xbin/su:
Result: -rwsr-sr-x root root 112164 2008-08-01 07:00 su
Analysis: Setuid attribute is present and root user ownership is present. Root access is correctly configured for this file! Executing this file can grant root access!
Alternative Location
Check Command: ls -l /sbin/su:
Result: /sbin/su: Permission denied
Analysis: File system permissions restricted and denied access.
Alternative Location
Check Command: ls -l /system/xbin/sudo:
Result: /system/xbin/sudo: No such file or directory
Analysis: File /system/xbin/sudo does not exist.
Root User ID and Group ID Status:
Root user id:
uid=0(root)
Root group id:
gid=0(root)
System Environment PATH: /sbin /vendor/bin /system/sbin /system/bin /system/xbin
ADB Shell Default User:
ADB shell setting for standard access, stored in default.prop, is configured as: shell (non root) user - ro.secure=1
Results provided on your Nexus 7 device by Root Checker Pro version 1.3.4 from joeykrim in the Android Market - http://goo.gl/NcnHn
What did I miss?
Can someone please help me to install whatever is needed to gain root access to "System"? "System App Remover" app shows that "System" is not mounted but downloading a separate "mount app" did not do the trick either...
Thanks for your help & suggestions, guys!
System is already mounted or you wouldn't be running android.
What you probably want to do is "remount"
mount -o remount,rw /system /system
But if all you want is to remove apps, perhaps it is easier if you just use Titanium to freeze them first and once you are sure you don't need them you can delete them, but I would just leave them frozen.
sfhub said:
System is already mounted or you wouldn't be running android.
What you probably want to do is "remount"
mount -o remount,rw /system /system
But if all you want is to remove apps, perhaps it is easier if you just use Titanium to freeze them first and once you are sure you don't need them you can delete them, but I would just leave them frozen.
Click to expand...
Click to collapse
Thanks, sfhub... I'll give that a try!
Doesn't look good, I'm afraid:
C:\platform-tools>mount -o remount,rw /system /system
'mount' is not recognized as an internal or external command,
operable program or batch file.
Click to expand...
Click to collapse
Any further suggestions, please?
androidarmin said:
Doesn't look good, I'm afraid:
Click to expand...
Click to collapse
Seems like I tried in the wrong place... I'll give it another try; sorry
Well... downloaded a Terminal Emulator from Google Play..
But now I'm getting a "mount: Operation not permitted" error...
Googled a ton and found a lot of good advice... and even figured things out using ADB (hint: adb shell) - but nothing worked in the end.
Seems like my "SU" may be the culprit, but I'll figure things out when I have more time... meaning, on the weekend. Probably go back to stock and then start over. Seems to be the simplest way right now.
Thanks so far, guys!
androidarmin said:
Well... downloaded a Terminal Emulator from Google Play..
But now I'm getting a "mount: Operation not permitted" error...
Click to expand...
Click to collapse
In adb, you need to type su first to give yourself root privileges before you can mount /system
You need to mount system as read/write in order to remove apps from it.
Sent from my Nexus 7 (2013)
Thanks, sfhub & Muikkuman... I know/I did. Still doesn't work.
Sent from my GT-I9300 using Tapatalk 4
androidarmin said:
Thanks, sfhub & Muikkuman... I know/I did. Still doesn't work.
Click to expand...
Click to collapse
what happens if you do in a command prompt in your adb directory
adb shell
su
Yes this seem strange.
Sent from my Nexus 7 (2013)
My suggestion would be to update TWRP, back-up important data, format data in recovery, look for decent rom, flash rom/gapps/latest supersu.
Then go to 'advanced' in recovery and fix permissions. Reboot recovery and tick 'mount' 'system', respectively install root file explorer of your liking.
No quick solution but should do the trick..
My suggestion is DO NOT delete anything, period. Nurse disable from settings or use pm disable.
Deleting stuff is completely pointless and WILL cause you problems in the future.
androidarmin said:
Thanks, sfhub & Muikkuman... I know/I did. Still doesn't work.
Sent from my GT-I9300 using Tapatalk 4
Click to expand...
Click to collapse
Dont know if you got this sorted. i was having the same problem with my son's Nexus 7 and came across this tutorial for Total Commander
http://www.androidpolice.com/2011/0...ns-remount-rw-in-total-commander-for-android/
Great little short cut to get the job done and can now get Total Commander free on Google Play.

Tasker/Secure Settings on Systemless Root

So i'm trying to create a profile in tasker to enable/disable airplane whenever i'm connected to Wifi and it seems SecureSettings isn't allowing root actions even though it has root privileges. Anyone know an app that works with tasker that can allow me to enable/disable airplane mode?
Thanks!
metpage said:
So i'm trying to create a profile in tasker to enable/disable airplane whenever i'm connected to Wifi and it seems SecureSettings isn't allowing root actions even though it has root privileges. Anyone know an app that works with tasker that can allow me to enable/disable airplane mode?
Thanks!
Click to expand...
Click to collapse
Is there any particular reason you are using systemless root?
Sent from my Nexus 5X using Tapatalk
Mainly for Android Pay to work but I'm not married to systemless root if system root makes this work. However I may have found a workaround using Locale instead.
Sent from my Nexus 5X using Tapatalk
In either a terminal on your phone, or via adb shell from the computer, enter these commands:
Code:
mount -o remount,rw /system
touch /sbin/su /system/bin/su /system/xbin/su
mount -o remount,ro /system
I can't remember if you need to reboot or not, but might as well, just in case. Afterward, run your task and allow Secure Settings root access.
After doing this, Tasker and Secure Settings works for me. If this doesn't fix your problem, I don't know.
Thanks I'll give this a shot if Locale doesn't work
Sent from my Nexus 5X using Tapatalk
lightningdude said:
In either a terminal on your phone, or via adb shell from the computer, enter these commands:
Code:
mount -o remount,rw /system
touch /sbin/su /system/bin/su /system/xbin/su
mount -o remount,ro /system
I can't remember if you need to reboot or not, but might as well, just in case. Afterward, run your task and allow Secure Settings root access.
After doing this, Tasker and Secure Settings works for me. If this doesn't fix your problem, I don't know.
Click to expand...
Click to collapse
I have the same problem, running CF-Autoroot on my S7 edge. I would like to try your trick but am not sure how to exactly . Could you please explain a little bit more in detail how this is done?
EDIT: nevermind, i solved it my self using THIS method.
Thanks in advance.
Works for Secure settings, but it's broken Titanium backup
When I try to implement this in adb I get the following:
mount: '/dev/block/platform/soc.0/f9824900.sdhci/by-name/system'->'/system': Device or resource busy
Can anyone help? Would greatly appreciate it. Thanks!
facted said:
When I try to implement this in adb I get the following:
mount: '/dev/block/platform/soc.0/f9824900.sdhci/by-name/system'->'/system': Device or resource busy
Can anyone help? Would greatly appreciate it. Thanks!
Click to expand...
Click to collapse
Try using this command instead:
mount -o rw,remount /system
It worked for me
PiousInquisitor said:
Is there any particular reason you are using systemless root?
Sent from my Nexus 5X using Tapatalk
Click to expand...
Click to collapse
is there system root for 7.0 or is this thread about 6.0.1?
niklus101 said:
is there system root for 7.0 or is this thread about 6.0.1?
Click to expand...
Click to collapse
There are unofficial versions in in the super su section here.
LSI said:
Works for Secure settings, but it's broken Titanium backup
Click to expand...
Click to collapse
Yeh, unfortunately, it does, same with AdAway.
Does it have to do with Android N or is it about the fact that touch /sbun/su fails due to sbin being read only?
If someone knows a solution, that would be great.
LSI said:
Works for Secure settings, but it's broken Titanium backup
Click to expand...
Click to collapse
I have the same problem with this too. It would be great to have a solution, or at least knowing how to reverse it would be great.
lightningdude said:
In either a terminal on your phone, or via adb shell from the computer, enter these commands:
Code:
mount -o remount,rw /system
touch /sbin/su /system/bin/su /system/xbin/su
mount -o remount,ro /system
I can't remember if you need to reboot or not, but might as well, just in case. Afterward, run your task and allow Secure Settings root access.
After doing this, Tasker and Secure Settings works for me. If this doesn't fix your problem, I don't know.
Click to expand...
Click to collapse
Do you hit enter at each line?
I'm doing this exact thing with Tasker and Magisk. I just had to add a quick edit to my build.prop, and then Tasker could recognize root with Magisk, and it worked fine.
Fit some reason I'm getting this error when dropping the commands
That's because it's mount -o not -0.
I just got secure settings and tried these commands in terminal. However they don't work. I get device or resource busy.
I'm on PureNexus 7.1.1 root via supersu on my Nexus 5x IF that matters in any way.
Edit: never mind. Solved it by replacing 0 with o. *Facepalm*
I've encountered the same problem in Android 7.1.2 and the above solution didn't work out for me. Secure Settings system+ is unavailable.
Any other solutions?
The first command
mount -o remount,rw /system
gave me the following result:
mount: '/dev/block/platform/msm_sdcc.1/by-name/system' not user mountable in fstab
1|jfltexx:/ $
It seems like an error.
akran said:
I've encountered the same problem in Android 7.1.2 and the above solution didn't work out for me. Secure Settings system+ is unavailable.
Any other solutions?
The first command
mount -o remount,rw /system
gave me the following result:
mount: '/dev/block/platform/msm_sdcc.1/by-name/system' not user mountable in fstab
1|jfltexx:/ $
It seems like an error.
Click to expand...
Click to collapse
Try this:
Code:
mount -o rw,remount /system
touch /sbin/su /system/bin/su /system/xbin/su
mount -o ro,remount /system
I'll share how I fixed this problem, which might be a LOT easier for some people.
Install a file manager that has root access (ie Root Explorer).
Navigate to /system/bin
Click whatever button to mount /system as rw.
Create a directory (or file) and call it su
Reboot phone
Open Secure settings and enable root.
At this point (and with above solutions, Android Pay is broken. If you want it back.
Open file manager again.
navigate to /system/bin
mount rw
delete the su folder (or file) you created earlier.
reboot.
Secure Settings only checks for su file the first time. Once it's been granted access, it no longer looks for su, it just tells the system it needs root access. So it will work the way its supposed to, even though it no longer can find the su file in expected location.
Also, for those that don't know, "touch" creates a file. So if you want to pass SafetyNet still, go back and delete the 3 files created from the touch command. And note that you only need to do 1 of them, not all 3, for Secure Settings to work.

Categories

Resources