当前位置:编程学习 > wap >>

关于删除data/app下的apk的问题。

我写了一个方法,获取了所有已安装软件的apk文件的路径。得知大多数没移到SD的已安装软件的apk都是在data/app下,这个目录在没有Root权限的时候是不能扫描里面的文件,但可以用列举的方法,把所有data/app下的文件显示出来。。。。。。

下面说重点,我想通过File.delete()来删除data/app下的文件,例如data/app/XXX.apk,这个方法我在三部手机上全部测试可以执行,delete返回true,但这三部手机全Root过。在一部没有Root的手机上delete返回false,说明不能删。。。

若是因为Root的关系,我觉得即便是root的手机也要在应用中申请权限才能使用superuser的功能,但我没有申请,就能返回true。。。

另外,有一部小米,它可以手动管理Root权限,我把Root关掉了,就是说所有程序都无法获取Root权限了,手机就和没Root一样,这是我再delete,还是返回true,可以删除。。。

那我就纳闷了,在那部没Root的手机上返回false的原因是什么,我可以保证路径是存在的。。。

有没有高手遇到过这样的问题,指点我一下,不甚感激! --------------------编程问答-------------------- 。。。
捋捋啊
你有三部已获取root权限的手机(简称A),一部未获取root权限的手机(简称B),一部关掉root权限的小米(简称M);
你用A和M手机,返回的结果为true;用B手机返回的结果为false;
你现在问,为什么B手机返回结果为false? () 对吧;

我弱弱的想问下,为什么B手机不返回false?为什么M手机会返回true;而不是false呢? --------------------编程问答--------------------
引用 1 楼 fff32165 的回复:
。。。
捋捋啊
你有三部已获取root权限的手机(简称A),一部未获取root权限的手机(简称B),一部关掉root权限的小米(简称M);
你用A和M手机,返回的结果为true;用B手机返回的结果为false;
你现在问,为什么B手机返回结果为false? () 对吧;

我弱弱的想问下,为什么B手机不返回false?为什么M手机会返回true;而不是false呢?


小米就是三部root中间一部。。。就是小米不管关不关Root都返回true。。。你的意思是想删除这个路径,得要root是吗? --------------------编程问答-------------------- 那其它2部手机关root和不关root 返回值是一样的吗?
引用 2 楼 tmaccccc 的回复:
引用 1 楼 fff32165 的回复:

。。。
捋捋啊
你有三部已获取root权限的手机(简称A),一部未获取root权限的手机(简称B),一部关掉root权限的小米(简称M);
你用A和M手机,返回的结果为true;用B手机返回的结果为false;
你现在问,为什么B手机返回结果为false? () 对吧;

我弱弱的想问下,为什么B手机不返回false?为什么M手机会返回t……
--------------------编程问答-------------------- 问下应用程序的apk文件是不是放到/data/app下面就能直接用啦???
安装是怎样一个过程? --------------------编程问答--------------------
引用 4 楼 yuanjian1927322 的回复:
问下应用程序的apk文件是不是放到/data/app下面就能直接用啦???
安装是怎样一个过程?


不是的,必须执行install 过程才可以使用  --------------------编程问答--------------------
引用 4 楼 yuanjian1927322 的回复:
问下应用程序的apk文件是不是放到/data/app下面就能直接用啦???
安装是怎样一个过程?



不是的,必须执行install 过程才可以使用 --------------------编程问答--------------------
引用 4 楼 yuanjian1927322 的回复:
问下应用程序的apk文件是不是放到/data/app下面就能直接用啦???
安装是怎样一个过程?

其实install过程除了加个校验和发送广播比直接拷文件过去没多做什么事。

只要做系统的时候设置下data目录的权限 就可以左右应用apk是否可以删除里面的文件了 --------------------编程问答--------------------
引用 7 楼 wensefu 的回复:
引用 4 楼 yuanjian1927322 的回复:

问下应用程序的apk文件是不是放到/data/app下面就能直接用啦???
安装是怎样一个过程?

其实install过程除了加个校验和发送广播比直接拷文件过去没多做什么事。

只要做系统的时候设置下data目录的权限 就可以左右应用apk是否可以删除里面的文件了


谢谢你的回答,请问大多数手机是有这样的权限还是没有呢。这个和Root有关系吗? --------------------编程问答--------------------
引用 3 楼 fff32165 的回复:
那其它2部手机关root和不关root 返回值是一样的吗?
引用 2 楼 tmaccccc 的回复:
引用 1 楼 fff32165 的回复:

。。。
捋捋啊
你有三部已获取root权限的手机(简称A),一部未获取root权限的手机(简称B),一部关掉root权限的小米(简称M);
你用A和M手机,返回的结果为true;用B手机返回的结果为false;
你现在问,为什么B手机返……


现在那两部没在手边,但我想结果应该是一样的吧。 --------------------编程问答-------------------- 如果没有so文件,或者其它特殊的文件,直接拷贝过去就能用

引用 4 楼 yuanjian1927322 的回复:
问下应用程序的apk文件是不是放到/data/app下面就能直接用啦???
安装是怎样一个过程?
--------------------编程问答-------------------- 不排除有些手机image对/data/app权限做过修改
默认是644,也有可能是其它权限不一样所致

引用 9 楼 tmaccccc 的回复:
引用 3 楼 fff32165 的回复:

那其它2部手机关root和不关root 返回值是一样的吗?
引用 2 楼 tmaccccc 的回复:
引用 1 楼 fff32165 的回复:

。。。
捋捋啊
你有三部已获取root权限的手机(简称A),一部未获取root权限的手机(简称B),一部关掉root权限的小米(简称M);
你用A和M手机,返回的结果为true;用B手机返回的……
--------------------编程问答--------------------
引用 11 楼 yyhzpk 的回复:
不排除有些手机image对/data/app权限做过修改
默认是644,也有可能是其它权限不一样所致

引用 9 楼 tmaccccc 的回复:
引用 3 楼 fff32165 的回复:

那其它2部手机关root和不关root 返回值是一样的吗?
引用 2 楼 tmaccccc 的回复:
引用 1 楼 fff32165 的回复:

。。。
捋捋啊
你有三部已获取root……


谢谢你的回答,你所说的644权限是指的什么,对这方面我不大了解,能给个相关的介绍内容看一下吗?不甚感激 --------------------编程问答--------------------
去网上搜一下linux用户权限管理
rwx-rwx-rwx

引用 12 楼 tmaccccc 的回复:
引用 11 楼 yyhzpk 的回复:

不排除有些手机image对/data/app权限做过修改
默认是644,也有可能是其它权限不一样所致

引用 9 楼 tmaccccc 的回复:
引用 3 楼 fff32165 的回复:

那其它2部手机关root和不关root 返回值是一样的吗?
引用 2 楼 tmaccccc 的回复:
引用 1 楼 fff32165 的回复:

……
--------------------编程问答-------------------- 试试adb uninstall com.xxx.xxx(包名),如果是系统预装的AP,一般使用adb shell rm system/app/xxx.apk,通常下载的APK安装的时候是放在data/app目录下,其实和用adb install xxx.apk的效果一样
--------------------编程问答-------------------- 觉得有点乱! --------------------编程问答-------------------- 把不想被轻易删掉的程序注册为设备管理器 --------------------编程问答-------------------- 大家认真看一下我的问题好不好。。。不要回答一些不相关的呀。。。 --------------------编程问答--------------------
引用 楼主 tmaccccc 的回复:
我写了一个方法,获取了所有已安装软件的apk文件的路径。得知大多数没移到SD的已安装软件的apk都是在data/app下,这个目录在没有Root权限的时候是不能扫描里面的文件,但可以用列举的方法,把所有data/app下的文件显示出来。。。。。。

下面说重点,我想通过File.delete()来删除data/app下的文件,例如data/app/XXX.apk,这个方法我在三部手机上全部测试可以执行,delete返回true,但这三部手机全Root过。在一部没有Root的手机上delete返回false,说明不能删。。。

若是因为Root的关系,我觉得即便是root的手机也要在应用中申请权限才能使用superuser的功能,但我没有申请,就能返回true。。。

另外,有一部小米,它可以手动管理Root权限,我把Root关掉了,就是说所有程序都无法获取Root权限了,手机就和没Root一样,这是我再delete,还是返回true,可以删除。。。

那我就纳闷了,在那部没Root的手机上返回false的原因是什么,我可以保证路径是存在的。。。

有没有高手遇到过这样的问题,指点我一下,不甚感激!


请问楼主,我现在也在做这个,为什么我用File.Delete()方法就删除不了data/app下面的apk呢,我的手机也root了。。
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,