shell@android:/sdcard/SW # ls -l
-rw-rw-r-- root sdcard_rw 128 2012-09-22 11:42 usb0config.sh
shell@android:/sdcard/SW # chmod 777 usb0config.sh
shell@android:/sdcard/SW # ls -l
-rw-rw-r-- root sdcard_rw 128 2012-09-22 11:42 usb0config.sh
shell@android:/sdcard/SW #
Warum kann ich einer Datei auf der SD-Karte keine Ausführungsberechtigungen zuweisen?
$ adb shell su -c mount |grep -si sdcard
/dev/block/vold/179:97 /mnt/ext_sdcard vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
tmpfs /mnt/ext_sdcard/.android_secure tmpfs ro,relatime,size=0k,mode=000 0 0
/dev/fuse /mnt/sdcard fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
$ adb shell su -c "mount -t vfat -o umask=0000 /dev/fuse /mnt/sdcard"
mount: Block device required
Jetzt scheint es erfolgreich zu remounten.
$ adb shell su -c "mount -t vfat -o remount,umask=0000 /dev/fuse /mnt/sdcard"
aber der Datei kann noch kein 777-Modus zugewiesen werden.
shell@android:/sdcard/Sw # ls -l
-rw-rw-r-- root sdcard_rw 128 2012-09-22 11:42 usb0config.sh
shell@android:/sdcard/Sw # chmod 777 usb0config.sh
shell@android:/sdcard/Sw # ls -l
-rw-rw-r-- root sdcard_rw 128 2012-09-22 11:42 usb0config.sh
Die Mount-Info ändert sich im Vergleich zu vor dem Remount nicht.
$ adb shell su -c mount |grep -si sdcard
/dev/block/vold/179:97 /mnt/ext_sdcard vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
tmpfs /mnt/ext_sdcard/.android_secure tmpfs ro,relatime,size=0k,mode=000 0 0
/dev/fuse /mnt/sdcard fuse rw,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
Sofern Sie nichts Ungewöhnliches mit Ihrem Gerät gemacht haben, wird die SD-Karte als FAT-Dateisystem formatiert, das keine *nix-Dateiberechtigungen unterstützt. Dieser Linux-FAQ -Eintrag von einem der MIT-Professoren erklärt es ein wenig und erklärt auch, wie Sie möglicherweise Mount-Optionen verwenden können, um den Berechtigungsmodus des Geräts zu ändern (dies würde jedoch Root erfordern und alle Dateien/Ordner auf dem Gerät betreffen). . Außerdem wird die SD-Karte in Android standardmäßig mit dem -noexec
Flag gemountet.
Für das exec-Bit möchten Sie wahrscheinlich mit einer umask von neu einhängen 0000
, da die umask im Wesentlichen ein binäres NICHT der gewünschten Berechtigungen ist (umask 0000
sagt also, dass Sie keine Berechtigungen ausblenden, sondern alle zulassen). Ungetestet, aber es vorübergehend zu tun, wäre etwas in der Art von:
mount -t vfat -o umask=0000 /dev/your/sdcard/device /mnt/sdcard
Je nach Gerät muss der Einhängepunkt möglicherweise /mnt/sdcard
in etwas anderes geändert werden. Ich glaube mount
jedoch, dass Sie dafür Root-Berechtigungen haben müssen.
Viktor S
Viktor S
Eldarerathis
sh usb0config.sh
.