Merge "DO NOT MERGE Backporting potential usb tapjacking precaution." into lmp-mr1-dev
This commit is contained in:
@@ -916,4 +916,10 @@
|
|||||||
|
|
||||||
<!-- Hide quick settings tile confirmation button -->
|
<!-- Hide quick settings tile confirmation button -->
|
||||||
<string name="quick_settings_reset_confirmation_button">Hide</string>
|
<string name="quick_settings_reset_confirmation_button">Hide</string>
|
||||||
|
|
||||||
|
<!-- Warning shown when user input has been blocked due to another app overlaying screen
|
||||||
|
content. Since we don't know what the app is showing on top of the input target, we
|
||||||
|
can't verify user consent. [CHAR LIMIT=NONE] -->
|
||||||
|
<string name="touch_filtered_warning">Because an app is obscuring a permission request, Settings
|
||||||
|
can’t verify your response.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -31,8 +31,12 @@ import android.os.ServiceManager;
|
|||||||
import android.os.SystemProperties;
|
import android.os.SystemProperties;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.MotionEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
import android.view.Window;
|
||||||
|
import android.view.WindowManager;
|
||||||
import android.widget.CheckBox;
|
import android.widget.CheckBox;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
import com.android.internal.app.AlertActivity;
|
import com.android.internal.app.AlertActivity;
|
||||||
import com.android.internal.app.AlertController;
|
import com.android.internal.app.AlertController;
|
||||||
@@ -48,6 +52,10 @@ public class UsbDebuggingActivity extends AlertActivity
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle icicle) {
|
public void onCreate(Bundle icicle) {
|
||||||
|
Window window = getWindow();
|
||||||
|
window.addPrivateFlags(WindowManager.LayoutParams.PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
|
||||||
|
window.setType(WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG);
|
||||||
|
|
||||||
super.onCreate(icicle);
|
super.onCreate(icicle);
|
||||||
|
|
||||||
if (SystemProperties.getInt("service.adb.tcp.port", 0) == 0) {
|
if (SystemProperties.getInt("service.adb.tcp.port", 0) == 0) {
|
||||||
@@ -79,6 +87,25 @@ public class UsbDebuggingActivity extends AlertActivity
|
|||||||
ap.mView = checkbox;
|
ap.mView = checkbox;
|
||||||
|
|
||||||
setupAlert();
|
setupAlert();
|
||||||
|
|
||||||
|
// adding touch listener on affirmative button - checks if window is obscured
|
||||||
|
// if obscured, do not let user give permissions (could be tapjacking involved)
|
||||||
|
final View.OnTouchListener filterTouchListener = new View.OnTouchListener() {
|
||||||
|
|
||||||
|
public boolean onTouch(View v, MotionEvent event) {
|
||||||
|
// Filter obscured touches by consuming them.
|
||||||
|
if ((event.getFlags() & MotionEvent.FLAG_WINDOW_IS_OBSCURED) != 0) {
|
||||||
|
if (event.getAction() == MotionEvent.ACTION_UP) {
|
||||||
|
Toast.makeText(v.getContext(),
|
||||||
|
R.string.touch_filtered_warning,
|
||||||
|
Toast.LENGTH_SHORT).show();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
mAlert.getButton(BUTTON_POSITIVE).setOnTouchListener(filterTouchListener);
|
||||||
}
|
}
|
||||||
|
|
||||||
private class UsbDisconnectedReceiver extends BroadcastReceiver {
|
private class UsbDisconnectedReceiver extends BroadcastReceiver {
|
||||||
|
|||||||
Reference in New Issue
Block a user