#1 楼
Titanium Backup等仅使用内置的Package Manager (pm)
冻结应用程序。 pm
具有一项功能,可以阻止应用程序运行并在启动器中显示。要使用它,Titanium Backup等请执行以下命令:pm disable {package_name}
您可以自己冻结应用程序而无需使用专用的冷冻机应用程序。只需在Terminal Emulator或
ADB Shell
中使用上述命令即可。例如,如果要冻结Stock Web Browser
,请打开Terminal Emulator
并使用su
命令切换到root用户。然后,执行# pm disable com.android.browser
。将返回
#Package com.android.browser new state: disabled
。完成!重新启动启动器(某些设备可能需要重新启动)才能看到应用程序图标。
要解冻应用程序,只需在命令中将
disable
替换为enable
。#2 楼
我发现了pm disable
的工作原理:如果运行
cat /system/bin/pm
,它会给出:从Java调用它-只是在没有用户应用程序可以直接访问的根上下文中。您可以使用
# Script to start "pm" on the device, which has a very rudimentary
# shell.
#
base=/system
export CLASSPATH=$base/framework/pm.jar
exec app_process $base/bin com.android.commands.pm.Pm "$@"
#3 楼
在Unix系统中,文件具有3个授权:读取,写入和执行。(适用于3类人员:文件的所有者(通常是文件的创建者),一组人以及其他所有人,但超出主题范围。)
如果删除文件的执行授权,则无法再启动(执行)该文件。
评论
你好dralpuop。 Android应用不是二进制文件,因此添加或删除可执行权限不会影响它们的执行。
–Firelord♦
19年11月22日在6:09
Android是System 5 Unix,其中(例如)shell脚本不是二进制文件,但是添加或删除可执行文件权限却有所不同。
– ftpo
19年11月22日在22:03
通过将shell脚本直接作为参数传递给解释器,可以在不设置可执行位的情况下执行shell脚本,因此对于shell脚本或应用程序没有任何区别。顺带一提,问题与Android应用有关,而不与Shell脚本有关。
–Firelord♦
19年11月22日在22:38
尝试使用此资源来了解应用程序如何在Android中运行。 github.com/dogriffiths/HeadFirstAndroid/wiki/…
–Firelord♦
19年11月22日在22:40
除此之外,应用程序在packages.xml中被标记为禁用,并且在dumpsys软件包中报告禁用状态。只需更改其文件权限就不会导致这种情况。
– Izzy♦
20-09-22在6:44
评论
这与此处描述的kill -STOP,kill -CONT命令相同吗? linuxpoison.blogspot.com/2007/11/…
– NoBugs
13年4月14日在20:16
@NoBugs重新启动设备。某些设备需要此功能才能完全禁用应用程序。是的,这不是杀死命令。
–user3303
13年4月15日在1:08
对。有时pm disable仅说“ killed”,然后该过程立即再次启动。 kill -STOP pid更好。您可以在ps输出中看到哪些已停止。
– NoBugs
13年5月2日在14:30