Loading cmds/am/src/com/android/commands/am/Am.java +4 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.commands.am; import android.app.ActivityManager; import android.app.ActivityManagerNative; import android.app.IActivityController; import android.app.IActivityManager; Loading Loading @@ -794,7 +795,9 @@ public class Am { String packageName = nextArgRequired(); do { try { mAm.setPackageScreenCompatMode(packageName, enabled); mAm.setPackageScreenCompatMode(packageName, enabled ? ActivityManager.COMPAT_MODE_ENABLED : ActivityManager.COMPAT_MODE_DISABLED); } catch (RemoteException e) { } packageName = nextArg(); Loading cmds/pm/src/com/android/commands/pm/Pm.java +15 −4 Original line number Diff line number Diff line Loading @@ -193,6 +193,7 @@ public final class Pm { private void runListPackages(boolean showApplicationPackage) { int getFlags = 0; boolean listDisabled = false, listEnabled = false; boolean listSystem = false, listThirdParty = false; try { String opt; while ((opt=nextOption()) != null) { Loading @@ -206,6 +207,10 @@ public final class Pm { listDisabled = true; } else if (opt.equals("-e")) { listEnabled = true; } else if (opt.equals("-s")) { listSystem = true; } else if (opt.equals("-3")) { listThirdParty = true; } else if (opt.equals("-u")) { getFlags |= PackageManager.GET_UNINSTALLED_PACKAGES; } else { Loading @@ -231,8 +236,12 @@ public final class Pm { if (filter != null && !info.packageName.contains(filter)) { continue; } final boolean isSystem = (info.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM) != 0; if ((!listDisabled || !info.applicationInfo.enabled) && (!listEnabled || info.applicationInfo.enabled)) { (!listEnabled || info.applicationInfo.enabled) && (!listSystem || isSystem) && (!listThirdParty || !isSystem)) { System.out.print("package:"); if (showApplicationPackage) { System.out.print(info.applicationInfo.sourceDir); Loading Loading @@ -993,7 +1002,7 @@ public final class Pm { private static void showUsage() { System.err.println("usage: pm [list|path|install|uninstall]"); System.err.println(" pm list packages [-f] [-d] [-e] [-u] [FILTER]"); System.err.println(" pm list packages [-f] [-d] [-e] [-s] [-e] [-u] [FILTER]"); System.err.println(" pm list permission-groups"); System.err.println(" pm list permissions [-g] [-f] [-d] [-u] [GROUP]"); System.err.println(" pm list instrumentation [-f] [TARGET-PACKAGE]"); Loading @@ -1010,8 +1019,10 @@ public final class Pm { System.err.println("The list packages command prints all packages, optionally only"); System.err.println("those whose package name contains the text in FILTER. Options:"); System.err.println(" -f: see their associated file."); System.err.println(" -d: filter to include disbled packages."); System.err.println(" -e: filter to include enabled packages."); System.err.println(" -d: filter to only show disbled packages."); System.err.println(" -e: filter to only show enabled packages."); System.err.println(" -s: filter to only show system packages."); System.err.println(" -3: filter to only show third party packages."); System.err.println(" -u: also include uninstalled packages."); System.err.println(""); System.err.println("The list permission-groups command prints all known"); Loading core/java/android/app/ActivityManager.java +76 −0 Original line number Diff line number Diff line Loading @@ -58,6 +58,82 @@ public class ActivityManager { mHandler = handler; } /** * Screen compatibility mode: the application most always run in * compatibility mode. * @hide */ public static final int COMPAT_MODE_ALWAYS = -1; /** * Screen compatibility mode: the application can never run in * compatibility mode. * @hide */ public static final int COMPAT_MODE_NEVER = -2; /** * Screen compatibility mode: unknown. * @hide */ public static final int COMPAT_MODE_UNKNOWN = -3; /** * Screen compatibility mode: the application currently has compatibility * mode disabled. * @hide */ public static final int COMPAT_MODE_DISABLED = 0; /** * Screen compatibility mode: the application currently has compatibility * mode enabled. * @hide */ public static final int COMPAT_MODE_ENABLED = 1; /** * Screen compatibility mode: request to toggle the application's * compatibility mode. * @hide */ public static final int COMPAT_MODE_TOGGLE = 2; /** @hide */ public int getFrontActivityScreenCompatMode() { try { return ActivityManagerNative.getDefault().getFrontActivityScreenCompatMode(); } catch (RemoteException e) { // System dead, we will be dead too soon! return 0; } } public void setFrontActivityScreenCompatMode(int mode) { try { ActivityManagerNative.getDefault().setFrontActivityScreenCompatMode(mode); } catch (RemoteException e) { // System dead, we will be dead too soon! } } public int getPackageScreenCompatMode(String packageName) { try { return ActivityManagerNative.getDefault().getPackageScreenCompatMode(packageName); } catch (RemoteException e) { // System dead, we will be dead too soon! return 0; } } public void setPackageScreenCompatMode(String packageName, int mode) { try { ActivityManagerNative.getDefault().setPackageScreenCompatMode(packageName, mode); } catch (RemoteException e) { // System dead, we will be dead too soon! } } /** * Return the approximate per-application memory class of the current * device. This gives you an idea of how hard a memory limit you should Loading core/java/android/app/ActivityManagerNative.java +68 −4 Original line number Diff line number Diff line Loading @@ -1398,12 +1398,41 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM return true; } case GET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); int mode = getFrontActivityScreenCompatMode(); reply.writeNoException(); reply.writeInt(mode); return true; } case SET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); int mode = data.readInt(); setFrontActivityScreenCompatMode(mode); reply.writeNoException(); reply.writeInt(mode); return true; } case GET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); String pkg = data.readString(); int mode = getPackageScreenCompatMode(pkg); reply.writeNoException(); reply.writeInt(mode); return true; } case SET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); String pkg = data.readString(); boolean enabled = data.readInt() != 0; setPackageScreenCompatMode(pkg, enabled); int mode = data.readInt(); setPackageScreenCompatMode(pkg, mode); reply.writeNoException(); return true; } Loading Loading @@ -3152,13 +3181,48 @@ class ActivityManagerProxy implements IActivityManager return result; } public void setPackageScreenCompatMode(String packageName, boolean compatEnabled) public int getFrontActivityScreenCompatMode() throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); data.writeInterfaceToken(IActivityManager.descriptor); mRemote.transact(GET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION, data, reply, 0); reply.readException(); int mode = reply.readInt(); reply.recycle(); data.recycle(); return mode; } public void setFrontActivityScreenCompatMode(int mode) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); data.writeInterfaceToken(IActivityManager.descriptor); data.writeInt(mode); mRemote.transact(SET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION, data, reply, 0); reply.readException(); reply.recycle(); data.recycle(); } public int getPackageScreenCompatMode(String packageName) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); data.writeInterfaceToken(IActivityManager.descriptor); mRemote.transact(SET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION, data, reply, 0); reply.readException(); int mode = reply.readInt(); reply.recycle(); data.recycle(); return mode; } public void setPackageScreenCompatMode(String packageName, int mode) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); data.writeInterfaceToken(IActivityManager.descriptor); data.writeString(packageName); data.writeInt(compatEnabled ? 1 : 0); data.writeInt(mode); mRemote.transact(SET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION, data, reply, 0); reply.readException(); reply.recycle(); Loading core/java/android/app/IActivityManager.java +8 −2 Original line number Diff line number Diff line Loading @@ -342,7 +342,10 @@ public interface IActivityManager extends IInterface { public int startActivitiesInPackage(int uid, Intent[] intents, String[] resolvedTypes, IBinder resultTo) throws RemoteException; public void setPackageScreenCompatMode(String packageName, boolean compatEnabled) public int getFrontActivityScreenCompatMode() throws RemoteException; public void setFrontActivityScreenCompatMode(int mode) throws RemoteException; public int getPackageScreenCompatMode(String packageName) throws RemoteException; public void setPackageScreenCompatMode(String packageName, int mode) throws RemoteException; /* Loading Loading @@ -560,5 +563,8 @@ public interface IActivityManager extends IInterface { int START_ACTIVITIES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+120; int START_ACTIVITIES_IN_PACKAGE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+121; int ACTIVITY_SLEPT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+122; int SET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+123; int GET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+123; int SET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+124; int GET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+125; int SET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+126; } Loading
cmds/am/src/com/android/commands/am/Am.java +4 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.commands.am; import android.app.ActivityManager; import android.app.ActivityManagerNative; import android.app.IActivityController; import android.app.IActivityManager; Loading Loading @@ -794,7 +795,9 @@ public class Am { String packageName = nextArgRequired(); do { try { mAm.setPackageScreenCompatMode(packageName, enabled); mAm.setPackageScreenCompatMode(packageName, enabled ? ActivityManager.COMPAT_MODE_ENABLED : ActivityManager.COMPAT_MODE_DISABLED); } catch (RemoteException e) { } packageName = nextArg(); Loading
cmds/pm/src/com/android/commands/pm/Pm.java +15 −4 Original line number Diff line number Diff line Loading @@ -193,6 +193,7 @@ public final class Pm { private void runListPackages(boolean showApplicationPackage) { int getFlags = 0; boolean listDisabled = false, listEnabled = false; boolean listSystem = false, listThirdParty = false; try { String opt; while ((opt=nextOption()) != null) { Loading @@ -206,6 +207,10 @@ public final class Pm { listDisabled = true; } else if (opt.equals("-e")) { listEnabled = true; } else if (opt.equals("-s")) { listSystem = true; } else if (opt.equals("-3")) { listThirdParty = true; } else if (opt.equals("-u")) { getFlags |= PackageManager.GET_UNINSTALLED_PACKAGES; } else { Loading @@ -231,8 +236,12 @@ public final class Pm { if (filter != null && !info.packageName.contains(filter)) { continue; } final boolean isSystem = (info.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM) != 0; if ((!listDisabled || !info.applicationInfo.enabled) && (!listEnabled || info.applicationInfo.enabled)) { (!listEnabled || info.applicationInfo.enabled) && (!listSystem || isSystem) && (!listThirdParty || !isSystem)) { System.out.print("package:"); if (showApplicationPackage) { System.out.print(info.applicationInfo.sourceDir); Loading Loading @@ -993,7 +1002,7 @@ public final class Pm { private static void showUsage() { System.err.println("usage: pm [list|path|install|uninstall]"); System.err.println(" pm list packages [-f] [-d] [-e] [-u] [FILTER]"); System.err.println(" pm list packages [-f] [-d] [-e] [-s] [-e] [-u] [FILTER]"); System.err.println(" pm list permission-groups"); System.err.println(" pm list permissions [-g] [-f] [-d] [-u] [GROUP]"); System.err.println(" pm list instrumentation [-f] [TARGET-PACKAGE]"); Loading @@ -1010,8 +1019,10 @@ public final class Pm { System.err.println("The list packages command prints all packages, optionally only"); System.err.println("those whose package name contains the text in FILTER. Options:"); System.err.println(" -f: see their associated file."); System.err.println(" -d: filter to include disbled packages."); System.err.println(" -e: filter to include enabled packages."); System.err.println(" -d: filter to only show disbled packages."); System.err.println(" -e: filter to only show enabled packages."); System.err.println(" -s: filter to only show system packages."); System.err.println(" -3: filter to only show third party packages."); System.err.println(" -u: also include uninstalled packages."); System.err.println(""); System.err.println("The list permission-groups command prints all known"); Loading
core/java/android/app/ActivityManager.java +76 −0 Original line number Diff line number Diff line Loading @@ -58,6 +58,82 @@ public class ActivityManager { mHandler = handler; } /** * Screen compatibility mode: the application most always run in * compatibility mode. * @hide */ public static final int COMPAT_MODE_ALWAYS = -1; /** * Screen compatibility mode: the application can never run in * compatibility mode. * @hide */ public static final int COMPAT_MODE_NEVER = -2; /** * Screen compatibility mode: unknown. * @hide */ public static final int COMPAT_MODE_UNKNOWN = -3; /** * Screen compatibility mode: the application currently has compatibility * mode disabled. * @hide */ public static final int COMPAT_MODE_DISABLED = 0; /** * Screen compatibility mode: the application currently has compatibility * mode enabled. * @hide */ public static final int COMPAT_MODE_ENABLED = 1; /** * Screen compatibility mode: request to toggle the application's * compatibility mode. * @hide */ public static final int COMPAT_MODE_TOGGLE = 2; /** @hide */ public int getFrontActivityScreenCompatMode() { try { return ActivityManagerNative.getDefault().getFrontActivityScreenCompatMode(); } catch (RemoteException e) { // System dead, we will be dead too soon! return 0; } } public void setFrontActivityScreenCompatMode(int mode) { try { ActivityManagerNative.getDefault().setFrontActivityScreenCompatMode(mode); } catch (RemoteException e) { // System dead, we will be dead too soon! } } public int getPackageScreenCompatMode(String packageName) { try { return ActivityManagerNative.getDefault().getPackageScreenCompatMode(packageName); } catch (RemoteException e) { // System dead, we will be dead too soon! return 0; } } public void setPackageScreenCompatMode(String packageName, int mode) { try { ActivityManagerNative.getDefault().setPackageScreenCompatMode(packageName, mode); } catch (RemoteException e) { // System dead, we will be dead too soon! } } /** * Return the approximate per-application memory class of the current * device. This gives you an idea of how hard a memory limit you should Loading
core/java/android/app/ActivityManagerNative.java +68 −4 Original line number Diff line number Diff line Loading @@ -1398,12 +1398,41 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM return true; } case GET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); int mode = getFrontActivityScreenCompatMode(); reply.writeNoException(); reply.writeInt(mode); return true; } case SET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); int mode = data.readInt(); setFrontActivityScreenCompatMode(mode); reply.writeNoException(); reply.writeInt(mode); return true; } case GET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); String pkg = data.readString(); int mode = getPackageScreenCompatMode(pkg); reply.writeNoException(); reply.writeInt(mode); return true; } case SET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); String pkg = data.readString(); boolean enabled = data.readInt() != 0; setPackageScreenCompatMode(pkg, enabled); int mode = data.readInt(); setPackageScreenCompatMode(pkg, mode); reply.writeNoException(); return true; } Loading Loading @@ -3152,13 +3181,48 @@ class ActivityManagerProxy implements IActivityManager return result; } public void setPackageScreenCompatMode(String packageName, boolean compatEnabled) public int getFrontActivityScreenCompatMode() throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); data.writeInterfaceToken(IActivityManager.descriptor); mRemote.transact(GET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION, data, reply, 0); reply.readException(); int mode = reply.readInt(); reply.recycle(); data.recycle(); return mode; } public void setFrontActivityScreenCompatMode(int mode) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); data.writeInterfaceToken(IActivityManager.descriptor); data.writeInt(mode); mRemote.transact(SET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION, data, reply, 0); reply.readException(); reply.recycle(); data.recycle(); } public int getPackageScreenCompatMode(String packageName) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); data.writeInterfaceToken(IActivityManager.descriptor); mRemote.transact(SET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION, data, reply, 0); reply.readException(); int mode = reply.readInt(); reply.recycle(); data.recycle(); return mode; } public void setPackageScreenCompatMode(String packageName, int mode) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); data.writeInterfaceToken(IActivityManager.descriptor); data.writeString(packageName); data.writeInt(compatEnabled ? 1 : 0); data.writeInt(mode); mRemote.transact(SET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION, data, reply, 0); reply.readException(); reply.recycle(); Loading
core/java/android/app/IActivityManager.java +8 −2 Original line number Diff line number Diff line Loading @@ -342,7 +342,10 @@ public interface IActivityManager extends IInterface { public int startActivitiesInPackage(int uid, Intent[] intents, String[] resolvedTypes, IBinder resultTo) throws RemoteException; public void setPackageScreenCompatMode(String packageName, boolean compatEnabled) public int getFrontActivityScreenCompatMode() throws RemoteException; public void setFrontActivityScreenCompatMode(int mode) throws RemoteException; public int getPackageScreenCompatMode(String packageName) throws RemoteException; public void setPackageScreenCompatMode(String packageName, int mode) throws RemoteException; /* Loading Loading @@ -560,5 +563,8 @@ public interface IActivityManager extends IInterface { int START_ACTIVITIES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+120; int START_ACTIVITIES_IN_PACKAGE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+121; int ACTIVITY_SLEPT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+122; int SET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+123; int GET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+123; int SET_FRONT_ACTIVITY_SCREEN_COMPAT_MODE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+124; int GET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+125; int SET_PACKAGE_SCREEN_COMPAT_MODE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+126; }