[Q] permission denied while adb push file /mnt/extSdCard/ - Android Q&A, Help & Troubleshooting

Hi
I am a little bit confused about the mount points in ICS.
While trying to push some files to the external sdcard I got a "Permission denied".
Permissions look like this
Code:
drwxrwxr-x system media_rw
chmod or chown did have no effect.
Die I get something wrong?
Regards Marc

after a long time of searching I found this article which shows the cause of the problem. But no solution for the adb problem ...
Seems I have to copy files via ssh or mtp etc.
link:
chainfire.eu/articles/113/Is_Google_blocking_apps_writing_to_SD_cards_/

for mounting an ICS device as usb storage I found a pretty nice working solution wi
thout installing an extra app:
Code:
setprop persist.sys.usb.config mass_storage,adb
echo /dev/block/vold/179:17 > /sys/devices/platform/s3c-usbgadget/gadget/lun0/file
switching back to mtp mode:
Code:
setprop persist.sys.usb.config mtp,adb
echo /dev/block/vold/179:17 > /sys/devices/platform/s3c-usbgadget/gadget/lun0/file

Code:
su
busybox umount /mnt/extSdCard
busybox mount -t vfat -o atime,exec /dev/block/mmcblk1p1 /mnt/extSdCard
I'm not sure if the sdcard is the same block device on most ICS dists but you can find your device by running:
Code:
mount
if the above alone doesn't work try
Code:
chown 777 /mnt/extSdCard
before remounting. Hope this works, as it works for me!

Related

[Q] adb can't push to /system/app

My S2 is on LA2 with the corresponding CF-ROOT. Since I upgraded to LA2, adb is unable to push a file to /system/app. In this case, I need to push Widgetsoid to /system/app or else I lose all widgets after a reboot. Before LA2, I pushed with adb just fine, but now my push command returns the error "failed to copy: no space left on device." I'm able to push to /mnt/sdcard and my device has plenty of room. I assume, then, that adb is failing to mount the directory for writing. But my adb command "mount -o rw,remount /system" returns with no error. Any suggestions how to re-enable push access to /system/app with current CF-ROOT?
My full procedure for pushing is this:
Code:
> adb shell
> su
# mount -o rw,remount /system
# chmod 777 /system
# chmod 777 /system/app
# exit
> exit
> adb push ApkFileName.apk /system/app/
> adb shell
> su
# chmod 755 /system
# chmod 755 /system/app
# exit
> exit
> adb reboot
Emm /system space is different from phone space.
You need to delete some apps in system b4.
Like zinio.apk etc
Red_Vex said:
Emm /system space is different from phone space.
Click to expand...
Click to collapse
I didn't know that. that fixed it

[Q] Simple File Copy Script

Hello everyone, I'm trying to figure out how to write a script to copy three .mp3 files from three different locations all to /system/media/audio/ringtones. So far, I'm in a bit over my head and I was wondering if anyone here could help me please?
Thanks in advance!
Mac of York said:
Hello everyone, I'm trying to figure out how to write a script to copy three .mp3 files from three different locations all to /system/media/audio/ringtones. So far, I'm in a bit over my head and I was wondering if anyone here could help me please?
Thanks in advance!
Click to expand...
Click to collapse
Well bud, honestly, it's not even worth all the writing it would take to compile a script for such an easy task via and file explorer that supports root functions. Simply copy n paste all into one folder, mount your /system -r/w and then the good ol multi-select button, copy to clipboard, browse up to /system/media/ringtones or /system/audio (whichever your phone model stores your system sounds/ui crap in), then after pasted to destination folder simply remount -r/o, reboot phone, voila!
jtmarich1985 said:
Well bud, honestly, it's not even worth all the writing it would take to compile a script for such an easy task via and file explorer that supports root functions. Simply copy n paste all into one folder, mount your /system -r/w and then the good ol multi-select button, copy to clipboard, browse up to /system/media/ringtones or /system/audio (whichever your phone model stores your system sounds/ui crap in), then after pasted to destination folder simply remount -r/o, reboot phone, voila!
Click to expand...
Click to collapse
Haha, thanks -- that's what I usually do but if it's too complicated it's not worth it.
Open a new text file, and write this:
Code:
#!/system/bin/sh
mount -o rw,remount /system
cp location1/file.mp3 /system/media/audio/ringtones/file.mp3
cp location2/file2.mp3 /system/media/audio/ringtones/file2.mp3
cp location3/file3.mp3 /system/media/audio/ringtones/file3.mp3
mount -o ro,remount /system
Save it (the extension doesn't matter) and that's it. You can run it using script manager, or the terminal emulator (in this case you need to get root permissions first, using the su command).
Also you can add some messages (to get a nicer script, you know ), this way:
Code:
#!/system/bin/sh
echo "Mounting /system as RW..."
mount -o rw,remount /system
echo "Copying files..."
cp location1/file.mp3 /system/media/audio/ringtones/file.mp3
cp location2/file2.mp3 /system/media/audio/ringtones/file2.mp3
cp location3/file3.mp3 /system/media/audio/ringtones/file3.mp3
echo "Done. Mounting /system as RO again..."
mount -o ro,remount /system
echo "All done. Have a nice day =)"
Please be careful while using scripts, otherwise you'll brick some devices :silly:
RoberGalarga said:
Open a new text file, and write this:
Code:
#!/system/bin/sh
mount -o rw,remount /system
cp location1/file.mp3 /system/media/audio/ringtones/file.mp3
cp location2/file2.mp3 /system/media/audio/ringtones/file2.mp3
cp location3/file3.mp3 /system/media/audio/ringtones/file3.mp3
mount -o ro,remount /system
Save it (the extension doesn't matter) and that's it. You can run it using script manager, or the terminal emulator (in this case you need to get root permissions first, using the su command).
Also you can add some messages (to get a nicer script, you know ), this way:
Code:
#!/system/bin/sh
echo "Mounting /system as RW..."
mount -o rw,remount /system
echo "Copying files..."
cp location1/file.mp3 /system/media/audio/ringtones/file.mp3
cp location2/file2.mp3 /system/media/audio/ringtones/file2.mp3
cp location3/file3.mp3 /system/media/audio/ringtones/file3.mp3
echo "Done. Mounting /system as RO again..."
mount -o ro,remount /system
echo "All done. Have a nice day =)"
Please be careful while using scripts, otherwise you'll brick some devices :silly:
Click to expand...
Click to collapse
Awesome, thanks. I'd give you a thanks but I'm all thanked out today.
RoberGalarga said:
Open a new text file, and write this:
Code:
#!/system/bin/sh
mount -o rw,remount /system
cp location1/file.mp3 /system/media/audio/ringtones/file.mp3
cp location2/file2.mp3 /system/media/audio/ringtones/file2.mp3
cp location3/file3.mp3 /system/media/audio/ringtones/file3.mp3
mount -o ro,remount /system
Save it (the extension doesn't matter) and that's it. You can run it using script manager, or the terminal emulator (in this case you need to get root permissions first, using the su command).
Also you can add some messages (to get a nicer script, you know ), this way:
Code:
#!/system/bin/sh
echo "Mounting /system as RW..."
mount -o rw,remount /system
echo "Copying files..."
cp location1/file.mp3 /system/media/audio/ringtones/file.mp3
cp location2/file2.mp3 /system/media/audio/ringtones/file2.mp3
cp location3/file3.mp3 /system/media/audio/ringtones/file3.mp3
echo "Done. Mounting /system as RO again..."
mount -o ro,remount /system
echo "All done. Have a nice day =)"
Please be careful while using scripts, otherwise you'll brick some devices :silly:
Click to expand...
Click to collapse
This is exactly what I wanted and it works beautifully! Thank you so much!
If I put script like thisone (classic copy-paste) in /system/etc/init.d, is it possible to configure that runing on ewery boot? And how?
Thanks.
Haven't tried this yet for fear of bricking, can someone help to see it this will work? I'm just trying to have a script to be placed on the homescreen so I can easily disable/enable the mediascanner/screenshot function. By the way, cp copies files, and cp -r actually moves (cut-paste) files, right?
#!/system/bin/sh
echo "Mounting /system as RW..."
mount -o rw,remount /system
echo "Movingfiles..."
cp -r /system/prv-app/MediaProvider.apk /system/prv-app/newfolder/MediaProvider.apk
echo "Done. Mounting /system as RO again..."
mount -o ro,remount /system
#!/system/bin/sh
echo "Mounting /system as RW..."
mount -o rw,remount /system
echo "Moving files..."
cp -r /system/prv-app/newfolder/MediaProvider.apk /system/prv-app/MediaProvider.apk
echo "Done. Mounting /system as RO again..."
mount -o ro,remount /system
Is it possible to do the same but with a folder+ content and not just a file?
Best thought to testing scripts, would be to add an android emulator to your computer. The one I use is nox. Its great for testing scripts and a variety of other things as well. Nox is an android based application, made jjust like a phone. All the features and extensions that your normal everyday android has, this emulator has as well.

Mounting CIFS or NFS shares on Android Marshmallow?

Hello,
does somebody know, how to mount network shares on a phone running Android 6? Its rooted using SuperSU, Busybox installed and the Kernel supports CIFS, its listed in /proc/filesystems. Methods that seemed to work on Lollipop are failing with the error "mounting //192.168.x.x/xxx on /mnt/nas failed: Invalid argument"
Maybe someone knows a solution.
Thanks,
Witti
CyanogenMod 13.0 (cm-13.0-20160712-NIGHTLY-acclaim.zip)
su
setenforce 0
or
echo 0 > /sys/fs/selinux/enforce
getenforce
>Permissive
After that I mounted with success:
busybox mount -o rw,nolock,hard,intr,vers=3 -t nfs 192.168.1.1:/nfs4_share /storage/emulated/0/cifs/nfs4_share
But folder is empty in file managers.
"busybox mount" show two mounting points:
192.168.1.1:/nfs4_share on /storage/emulated/0/cifs/nfs4_share type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,nolock,proto=tcp,port=2049,timeo=70,retrans=3,sec=sys,local_lock=all,addr=192.168.1.1)
192.168.1.1:/nfs4_share on /mnt/runtime/default/emulated/0/cifs/nfs4_share type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,nolock,proto=tcp,port=2049,timeo=70,retrans=3,sec=sys,local_lock=all,addr=192.168.1.1)
"adb logcat" show:
07-13 09:37:23.461 458 458 I Binder_1: type=1400 audit(0.0:1119): avc: denied { ioctl } for path="socket:[43380]" dev="sockfs" ino=43380 ioctlcmd=7704 scontext=u:r:system_server:s0 tcontext=u:r:system_server:s0 tclass=unix_stream_socket permissive=1
I changed mounting point to /mnt/media_rw/nfs4_share, and now I have one line in "busybox mount":
192.168.1.1:/nfs4_share on /mnt/media_rw/nfs4_share type nfs (rw,relatime,vers=3,rsize=32768,wsize=32768,namlen=255,hard,nolock,proto=udp,port=2049,timeo=70,retrans=3,sec=sys,local_lock=all,addr=192.168.1.1)
And when I executed mount command over "adb shell && su", files became accessible. But I have wrong user:group on Android /mnt/media_rw/nfs4_share (uid:gid of user on PC), so some programs can't read files. But I think this must be fixed on server side in /etc/exports.
Look like root rights required to access this mount folder, can't figure out where and how properly mount it.
Same problem when I trying to mount /storage/media:
/dev/block/mmcblk0p10
/dev/block/platform/omap/omap_hsmmc.1/by-name/media
So this is more general problem with proper mounting.
Dirty hack.
mount -o remount,rw /
mkdir -p /emmc; chown -R sdcard_r:everybody /emmc
mount -o remount,ro /
busybox mount -o rw,nolock,hard,intr,vers=3,rsize=32768,wsize=32768,proto=udp,timeo=70 -t nfs 192.168.1.1:/nfs4_share /emmc
For "media" disk (/dev/block/mmcblk0p10) mounting to /emmc working too:
busybox mount -t vfat /dev/block/platform/omap/omap_hsmmc.1/by-name/media /emmc -o rw,seclabel,nosuid,nodev,noatime
Files accessible by manages and payers without root access.
On another device with CM 11 I made additional steps:
Load nfs module on Android:
modprobe nfs
Executed on "server" (my PC), to match user:group on client "sdcard_r:media_rw":
chown -R 1028:1015 /nfs4_share
And for test only:
chmod -R 0777 /nfs4_share
And what is more important executed command over SuperSu with "--mount-master" argument:
su --mount-master -c "busybox mount -o rw,nolock,hard,intr,vers=3,rsize=32768,wsize=32768,proto=udp,timeo=70 -t nfs 192.168..1:/nfs4_share /emmc"
Details: http://forum.xda-developers.com/showthread.php?t=718719&page=6
So now on this devise all programs can see files in this share too.

Huawei T1-701u /system write protection

Hi guys,
I am using a Huawei T1-701u. I can consistently get root using iovyroot. I have added all the firmwares I can find and created a pull request.
There seems to be some sort of protection on the system partition however. This manifests in two ways. Firstly changes to the partition are magically reverted on reboot. Secondly, I sometimes get an error when mounting /system as rw saying it is readonly.
I have some scripts up on GitHub: /chrisfraser/HuaweiRoot (Sorry you have to search. This is my first post). This eventually works, but it is indeterminate. Sometimes it works first time. Other times it can take 20 tries. Below is the important remount code.
Code:
install_perm() {
cat $1 > $2
chown 0.0 $2
chmod 755 $2
}
echo '[*] Starting root install'
mount -o rw,remount /system
setenforce 0
install_perm $BIN/su /system/xbin/su
install_perm $BIN/su /system/xbin/daemonsu
install_perm $BIN/install-recovery.sh /system/etc/install-recovery.sh
ln -s /system/etc/install-recovery.sh /system/bin/install-recovery.sh
mount -o ro,remount /system
sync
echo '[*] Root install complete, rebooting'
sleep 5
reboot
Thanks in advance

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