Loading services/core/java/com/android/server/TradeInModeService.java +14 −8 Original line number Original line Diff line number Diff line Loading @@ -140,8 +140,7 @@ public final class TradeInModeService extends SystemService { @Override @Override @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) public boolean start() { public boolean start() { mContext.enforceCallingOrSelfPermission("android.permission.ENTER_TRADE_IN_MODE", enforceEnterTradeInModePermission(); "Cannot enter trade-in mode foyer"); final int state = getTradeInModeState(); final int state = getTradeInModeState(); if (state == TIM_STATE_FOYER) { if (state == TIM_STATE_FOYER) { return true; return true; Loading Loading @@ -179,8 +178,7 @@ public final class TradeInModeService extends SystemService { @Override @Override @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) public boolean enterEvaluationMode() { public boolean enterEvaluationMode() { mContext.enforceCallingOrSelfPermission("android.permission.ENTER_TRADE_IN_MODE", enforceEnterTradeInModePermission(); "Cannot enter trade-in evaluation mode"); if (!checkEvaluationModePreconditions()) { if (!checkEvaluationModePreconditions()) { return false; return false; } } Loading @@ -204,8 +202,7 @@ public final class TradeInModeService extends SystemService { @Override @Override @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) public boolean isEvaluationModeAllowed() { public boolean isEvaluationModeAllowed() { mContext.enforceCallingOrSelfPermission("android.permission.ENTER_TRADE_IN_MODE", enforceEnterTradeInModePermission(); "Cannot test for trade-in evaluation mode allowed"); return checkEvaluationModePreconditions(); return checkEvaluationModePreconditions(); } } Loading Loading @@ -253,6 +250,7 @@ public final class TradeInModeService extends SystemService { @Override @Override @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) public int[] getScreenPartStatus() throws RemoteException { public int[] getScreenPartStatus() throws RemoteException { enforceEnterTradeInModePermission(); int[] statuses = new int[DisplayControl.getPhysicalDisplayIds().length]; int[] statuses = new int[DisplayControl.getPhysicalDisplayIds().length]; int index = 0; int index = 0; // loop through all displayId to find id of internal display // loop through all displayId to find id of internal display Loading @@ -268,6 +266,7 @@ public final class TradeInModeService extends SystemService { @Override @Override @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) public int getHingeCount() throws RemoteException { public int getHingeCount() throws RemoteException { enforceEnterTradeInModePermission(); android.hardware.health.HingeInfo[] info = getHealthService().getHingeInfo(); android.hardware.health.HingeInfo[] info = getHealthService().getHingeInfo(); return (info == null) ? 0 : info.length; return (info == null) ? 0 : info.length; } } Loading @@ -275,6 +274,7 @@ public final class TradeInModeService extends SystemService { @Override @Override @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) public int getFoldCount(int hingeId) throws RemoteException { public int getFoldCount(int hingeId) throws RemoteException { enforceEnterTradeInModePermission(); int hingeCount = getHingeCount(); int hingeCount = getHingeCount(); if (hingeId >= hingeCount) { if (hingeId >= hingeCount) { Slog.e(TAG, "Hinge " + hingeId + " is greater than hinge count: " + hingeCount); Slog.e(TAG, "Hinge " + hingeId + " is greater than hinge count: " + hingeCount); Loading @@ -286,6 +286,7 @@ public final class TradeInModeService extends SystemService { @Override @Override @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) public int getHingeLifeSpan(int hingeId) throws RemoteException { public int getHingeLifeSpan(int hingeId) throws RemoteException { enforceEnterTradeInModePermission(); int hingeCount = getHingeCount(); int hingeCount = getHingeCount(); if (hingeId >= hingeCount) { if (hingeId >= hingeCount) { Slog.e(TAG, "Hinge " + hingeId + " is greater than hinge count: " + hingeCount); Slog.e(TAG, "Hinge " + hingeId + " is greater than hinge count: " + hingeCount); Loading @@ -297,6 +298,7 @@ public final class TradeInModeService extends SystemService { @Override @Override @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) public int getMoistureIntrusionDetected(long timeoutMillis) throws RemoteException { public int getMoistureIntrusionDetected(long timeoutMillis) throws RemoteException { enforceEnterTradeInModePermission(); SensorManager m = (SensorManager) mContext.getSystemService(Context.SENSOR_SERVICE); SensorManager m = (SensorManager) mContext.getSystemService(Context.SENSOR_SERVICE); Sensor moistureDetectionSensor = m.getDefaultSensor(Sensor.TYPE_MOISTURE_INTRUSION); Sensor moistureDetectionSensor = m.getDefaultSensor(Sensor.TYPE_MOISTURE_INTRUSION); Loading Loading @@ -338,9 +340,13 @@ public final class TradeInModeService extends SystemService { } } } } private void enforceTestingPermissions() { private void enforceEnterTradeInModePermission() { mContext.enforceCallingOrSelfPermission("android.permission.ENTER_TRADE_IN_MODE", mContext.enforceCallingOrSelfPermission("android.permission.ENTER_TRADE_IN_MODE", "Caller must have ENTER_TRADE_IN_MODE permission"); "caller missing ENTER_TRADE_IN_MODE permission"); } private void enforceTestingPermissions() { enforceEnterTradeInModePermission(); if (!isDebuggable()) { if (!isDebuggable()) { throw new SecurityException("ro.debuggable must be set to 1"); throw new SecurityException("ro.debuggable must be set to 1"); } } Loading Loading
services/core/java/com/android/server/TradeInModeService.java +14 −8 Original line number Original line Diff line number Diff line Loading @@ -140,8 +140,7 @@ public final class TradeInModeService extends SystemService { @Override @Override @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) public boolean start() { public boolean start() { mContext.enforceCallingOrSelfPermission("android.permission.ENTER_TRADE_IN_MODE", enforceEnterTradeInModePermission(); "Cannot enter trade-in mode foyer"); final int state = getTradeInModeState(); final int state = getTradeInModeState(); if (state == TIM_STATE_FOYER) { if (state == TIM_STATE_FOYER) { return true; return true; Loading Loading @@ -179,8 +178,7 @@ public final class TradeInModeService extends SystemService { @Override @Override @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) public boolean enterEvaluationMode() { public boolean enterEvaluationMode() { mContext.enforceCallingOrSelfPermission("android.permission.ENTER_TRADE_IN_MODE", enforceEnterTradeInModePermission(); "Cannot enter trade-in evaluation mode"); if (!checkEvaluationModePreconditions()) { if (!checkEvaluationModePreconditions()) { return false; return false; } } Loading @@ -204,8 +202,7 @@ public final class TradeInModeService extends SystemService { @Override @Override @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) public boolean isEvaluationModeAllowed() { public boolean isEvaluationModeAllowed() { mContext.enforceCallingOrSelfPermission("android.permission.ENTER_TRADE_IN_MODE", enforceEnterTradeInModePermission(); "Cannot test for trade-in evaluation mode allowed"); return checkEvaluationModePreconditions(); return checkEvaluationModePreconditions(); } } Loading Loading @@ -253,6 +250,7 @@ public final class TradeInModeService extends SystemService { @Override @Override @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) public int[] getScreenPartStatus() throws RemoteException { public int[] getScreenPartStatus() throws RemoteException { enforceEnterTradeInModePermission(); int[] statuses = new int[DisplayControl.getPhysicalDisplayIds().length]; int[] statuses = new int[DisplayControl.getPhysicalDisplayIds().length]; int index = 0; int index = 0; // loop through all displayId to find id of internal display // loop through all displayId to find id of internal display Loading @@ -268,6 +266,7 @@ public final class TradeInModeService extends SystemService { @Override @Override @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) public int getHingeCount() throws RemoteException { public int getHingeCount() throws RemoteException { enforceEnterTradeInModePermission(); android.hardware.health.HingeInfo[] info = getHealthService().getHingeInfo(); android.hardware.health.HingeInfo[] info = getHealthService().getHingeInfo(); return (info == null) ? 0 : info.length; return (info == null) ? 0 : info.length; } } Loading @@ -275,6 +274,7 @@ public final class TradeInModeService extends SystemService { @Override @Override @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) public int getFoldCount(int hingeId) throws RemoteException { public int getFoldCount(int hingeId) throws RemoteException { enforceEnterTradeInModePermission(); int hingeCount = getHingeCount(); int hingeCount = getHingeCount(); if (hingeId >= hingeCount) { if (hingeId >= hingeCount) { Slog.e(TAG, "Hinge " + hingeId + " is greater than hinge count: " + hingeCount); Slog.e(TAG, "Hinge " + hingeId + " is greater than hinge count: " + hingeCount); Loading @@ -286,6 +286,7 @@ public final class TradeInModeService extends SystemService { @Override @Override @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) public int getHingeLifeSpan(int hingeId) throws RemoteException { public int getHingeLifeSpan(int hingeId) throws RemoteException { enforceEnterTradeInModePermission(); int hingeCount = getHingeCount(); int hingeCount = getHingeCount(); if (hingeId >= hingeCount) { if (hingeId >= hingeCount) { Slog.e(TAG, "Hinge " + hingeId + " is greater than hinge count: " + hingeCount); Slog.e(TAG, "Hinge " + hingeId + " is greater than hinge count: " + hingeCount); Loading @@ -297,6 +298,7 @@ public final class TradeInModeService extends SystemService { @Override @Override @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) @RequiresPermission(android.Manifest.permission.ENTER_TRADE_IN_MODE) public int getMoistureIntrusionDetected(long timeoutMillis) throws RemoteException { public int getMoistureIntrusionDetected(long timeoutMillis) throws RemoteException { enforceEnterTradeInModePermission(); SensorManager m = (SensorManager) mContext.getSystemService(Context.SENSOR_SERVICE); SensorManager m = (SensorManager) mContext.getSystemService(Context.SENSOR_SERVICE); Sensor moistureDetectionSensor = m.getDefaultSensor(Sensor.TYPE_MOISTURE_INTRUSION); Sensor moistureDetectionSensor = m.getDefaultSensor(Sensor.TYPE_MOISTURE_INTRUSION); Loading Loading @@ -338,9 +340,13 @@ public final class TradeInModeService extends SystemService { } } } } private void enforceTestingPermissions() { private void enforceEnterTradeInModePermission() { mContext.enforceCallingOrSelfPermission("android.permission.ENTER_TRADE_IN_MODE", mContext.enforceCallingOrSelfPermission("android.permission.ENTER_TRADE_IN_MODE", "Caller must have ENTER_TRADE_IN_MODE permission"); "caller missing ENTER_TRADE_IN_MODE permission"); } private void enforceTestingPermissions() { enforceEnterTradeInModePermission(); if (!isDebuggable()) { if (!isDebuggable()) { throw new SecurityException("ro.debuggable must be set to 1"); throw new SecurityException("ro.debuggable must be set to 1"); } } Loading