读书人

怎么让自己的应用不能被kill掉

发布时间: 2012-04-11 17:42:33 作者: rapoo

如何让自己的应用不能被kill掉?
我目前做的一个应用为了保护用户隐私,不允许在setting中将service停掉,也不允许通过第三方应用将应用kill掉,如果说service被停掉,或是应用被kill掉,则立即重启service,请问有什么方法或是思路实现么?

ps:如果在杀掉应用 或是停掉service的时候,能截获到这个操作么?

[解决办法]
你可以在frameworks\base\services\java\com\android\server\am\ActivityManagerService.java这个类的forceStopPackage中加一个条件

Java code
public void forceStopPackage(final String packageName) {        if (checkCallingPermission(android.Manifest.permission.FORCE_STOP_PACKAGES)                != PackageManager.PERMISSION_GRANTED) {            String msg = "Permission Denial: forceStopPackage() from pid="                    + Binder.getCallingPid()                    + ", uid=" + Binder.getCallingUid()                    + " requires " + android.Manifest.permission.FORCE_STOP_PACKAGES;            Slog.w(TAG, msg);            throw new SecurityException(msg);        }                long callingId = Binder.clearCallingIdentity();        try {            IPackageManager pm = ActivityThread.getPackageManager();            int pkgUid = -1;            synchronized(this) {                try {                    pkgUid = pm.getPackageUid(packageName);                } catch (RemoteException e) {                }                if (pkgUid == -1) {                    Slog.w(TAG, "Invalid packageName: " + packageName);                    return;                }                //begin:加入一个判断条件                if (packageName.equals("你的进程名")) {                    return;                }                //end: 加入一个判断条件                                forceStopPackageLocked(packageName, pkgUid);            }        } finally {            Binder.restoreCallingIdentity(callingId);        }    }
[解决办法]
探讨

引用:

你可以在frameworks\base\services\java\com\android\server\am\ActivityManagerService.java这个类的forceStopPackage中加一个条件
Java code
public void forceStopPackage(final String packageName……

[解决办法]
探讨

引用:

你可以在frameworks\base\services\java\com\android\server\am\ActivityManagerService.java这个类的forceStopPackage中加一个条件
Java code
public void forceStopPackage(final String packageName……

读书人网 >Android

热点推荐