Android 8.0 默认允许ADB

Posted 王睿丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 8.0 默认允许ADB相关的知识,希望对你有一定的参考价值。

frameworks\\base\\packages\\SystemUI\\src\\com\\android\\systemui\\usb\\UsbDebuggingActivity.java

@Override
    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);

        if (SystemProperties.getInt("service.adb.tcp.port", 0) == 0) 
            mDisconnectedReceiver = new UsbDisconnectedReceiver(this);
        

        Intent intent = getIntent();
        String fingerprints = intent.getStringExtra("fingerprints");
        mKey = intent.getStringExtra("key");

        if (fingerprints == null || mKey == null) 
            finish();
            return;
        

        final AlertController.AlertParams ap = mAlertParams;
        ap.mTitle = getString(R.string.usb_debugging_title);
        ap.mMessage = getString(R.string.usb_debugging_message, fingerprints);
        ap.mPositiveButtonText = getString(android.R.string.ok);
        ap.mNegativeButtonText = getString(android.R.string.cancel);
        ap.mPositiveButtonListener = this;
        ap.mNegativeButtonListener = this;

        // add "always allow" checkbox
        LayoutInflater inflater = LayoutInflater.from(ap.mContext);
        View checkbox = inflater.inflate(com.android.internal.R.layout.always_use_checkbox, null);
        mAlwaysAllow = (CheckBox)checkbox.findViewById(com.android.internal.R.id.alwaysUse);
        mAlwaysAllow.setText(getString(R.string.usb_debugging_always));
        ap.mView = checkbox;


++ /*        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 = (View v, MotionEvent event) -> 
            // Filter obscured touches by consuming them.
            if (((event.getFlags() & MotionEvent.FLAG_WINDOW_IS_OBSCURED) != 0)
                    || ((event.getFlags() & MotionEvent.FLAG_WINDOW_IS_PARTIALLY_OBSCURED) != 0)) 
                if (event.getAction() == MotionEvent.ACTION_UP) 
                    EventLog.writeEvent(0x534e4554, "62187985"); // safety net logging
                    Toast.makeText(v.getContext(),
                            R.string.touch_filtered_warning,
                            Toast.LENGTH_SHORT).show();
                
                return true;
            
            return false;
        ;
        mAlert.getButton(BUTTON_POSITIVE).setOnTouchListener(filterTouchListener);
++  */
++          try 
++              IBinder b = ServiceManager.getService(USB_SERVICE);
++              IUsbManager service = IUsbManager.Stub.asInterface(b);
++              service.allowUsbDebugging(true, mKey);
++           catch (Exception e) 
++              Log.e(TAG, "Unable to notify Usb service", e);
 ++         
		
++          finish();

    

以上是关于Android 8.0 默认允许ADB的主要内容,如果未能解决你的问题,请参考以下文章

Android 8.0 adb shell dumpsys activity activities | findstr mFocusedActivity 获取当前的 activity 显示空的

Android 8.0 删除 MTP模式

Android系统-MTK6833_android12_user版本修改adb_root_&_apk_root

MTK6833_android12_user版本修改adb_root_&_apk_root

android默认开启adb调试方法分析

Android 6.0 M userdebug版本执行adb remount失败