SDCard权限设置

最近在做Android项目,发现之前能对sdcard卡进行读写操作突然不能了,细找之下,发现如下修改权限途径:
设置DDMS(File Explorer)目录下的sdcard目录的权限

1、打开cmd命令   
2、输入adb shell(成功后进入adb的root用户状态#) 
3、你可以用 ls 命令看下当前文件夹下目录,你会发现sdcard目录在这下面
4、修改sdcard权限,因为此时sdcard是only-read的状态,
5、修改目录命令:chmod 075 (不要直接用777,不能成功执行的) 
6、sdcard目录的读写权限修改完成。可在其中导入文件。

其它命令:
adb shell mount -o remount rw /
注意,/表示的是根目录,因此这个不仅仅是对sdcard,其他文件也可以读写。rw表示读写权限,mount重挂载文件系统

如图:



程序中访问SDCard,需要申请访问SDCard权限,在AndroidManifest.xml加入访问SDCard权限

如下:
<!-- 在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

得到当前SDCARD的位置
Environment.getExternalStorageDirectory()

这个是外部存储路径,比使用绝对路径好 。

在android模拟器中删除系统应用程序

首先启动android模拟器。
打开cmd命令行窗口。输入
adb -s emulator-5554 shell
此时可以管理系统文件夹了,再输入
ls
可以看到列出了文件夹和文件,输入
cd system/app
再输入
ls
可以看到系统自带的应用程序apk文件,删除你想要删除的,例如Phone.apk,输入
rm Phone.apk
此时会看到提示说
rm failed for Phone.apk, Read-only file system
那是因为这些是只读文件,我们没有权限删除它。
所以接下来要做的是获取权限,首先查看权限,输入
mount
可以看到
/dev/block/mtdblock0 /system yaffs2 ro 0 0
说明在system这个地方我们没有权限
那么接下来我们就来获取权限,输入
mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system
没有提示错误,再次查看权限,输入
mount
可以看到
/dev/block/mtdblock0 /system yaffs2 rw 0 0
说明我们已经获取到权限了
此时再输入
rm Phone.apk
就可以成功删除了
 
最后一点,就算你成功删除了,android模拟器每次启动时也会恢复回来。
那么如何永久删除呢,很简单,删除SdkSetup.apk,输入
rm SdkSetup.apk
还没完,找到avd目录(一般在我的文档),进入xxxx.avd目录,删除cache.img和userdata-qemu.img
还有还有,找到%SDK_HOME%/platforms/android-X/images/system.img,复制到上面的目录中。
最后最后,再重启模拟器,大功告成!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值