七、AOSP-usb默认MTP+usb调试授权+usb默认信任

七、AOSP-usb默认MTP+usb调试授权+usb默认信任,第1张

七、AOSP-usb默认MTP+usb调试授权+usb默认信任 一、usb默认MTP模式 1、源码路径

/frameworks/base/services/usb/java/com/android/server/usb/UsbDeviceManager.java

方法名 -> handleMessage
修改1 -> MSG_UPDATE_STATE的时候授权
修改2 -> MSG_BOOT_COMPLETED的时候授权

2、源码
        @Override
        public void handleMessage(Message msg) {
            switch (msg.what) {
                case MSG_UPDATE_STATE:
                    mConnected = (msg.arg1 == 1);
                    mConfigured = (msg.arg2 == 1);

                    updateUsbNotification(false);
                    updateAdbNotification(false);
                    if (mBootCompleted) {
                        updateUsbStateBroadcastIfNeeded(false);
                    }
                    if (UsbManager.containsFunction(mCurrentFunctions,
                            UsbManager.USB_FUNCTION_ACCESSORY)) {
                        updateCurrentAccessory();
                    }
                    if (mBootCompleted) {
                        if (!mConnected) {
                            // restore defaults when USB is disconnected
                            setEnabledFunctions(null, !mAdbEnabled, false);
                        }
                        updateUsbFunctions();
                    } else {
                        mPendingBootBroadcast = true;
                    }
                    break;
            	//省略。。。
               case MSG_BOOT_COMPLETED:
                    mBootCompleted = true;
                    if (mPendingBootBroadcast) {
                        updateUsbStateBroadcastIfNeeded(false);
                        mPendingBootBroadcast = false;
                    }
					setEnabledFunctions(null, false, false);
                    if (mCurrentAccessory != null) {
                        getCurrentSettings().accessoryAttached(mCurrentAccessory);
                    }
                    if (mDebuggingManager != null) {
                        mDebuggingManager.setAdbEnabled(mAdbEnabled);
                    }
                    break;
            	//省略。。。
3、修改
        @Override
        public void handleMessage(Message msg) {
            switch (msg.what) {
                case MSG_UPDATE_STATE:
                    mConnected = (msg.arg1 == 1);
                    mConfigured = (msg.arg2 == 1);

                    updateUsbNotification(false);
                    updateAdbNotification(false);
                    if (mBootCompleted) {
                        updateUsbStateBroadcastIfNeeded(false);
                    }
                    if (UsbManager.containsFunction(mCurrentFunctions,
                            UsbManager.USB_FUNCTION_ACCESSORY)) {
                        updateCurrentAccessory();
                    }
                    if (mBootCompleted) {
                        if (!mConnected) {
                            // restore defaults when USB is disconnected
                            setEnabledFunctions(null, !mAdbEnabled, false);
                            //zjp update
			    			setEnabledFunctions(UsbManager.USB_FUNCTION_MTP, false, true);
                        }
                        updateUsbFunctions();
                    } else {
                        mPendingBootBroadcast = true;
                    }
                    break;
            	//省略。。。
               case MSG_BOOT_COMPLETED:
                    mBootCompleted = true;
                    if (mPendingBootBroadcast) {
                        updateUsbStateBroadcastIfNeeded(false);
                        mPendingBootBroadcast = false;
                    }
                    //zjp update
                    //setEnabledFunctions(null, false, false);
		    		setEnabledFunctions(UsbManager.USB_FUNCTION_MTP, false, true);
                    if (mCurrentAccessory != null) {
                        getCurrentSettings().accessoryAttached(mCurrentAccessory);
                    }
                    if (mDebuggingManager != null) {
                        mDebuggingManager.setAdbEnabled(mAdbEnabled);
                    }
                    break;
            	//省略。。。
二、usb调试默认授权 1、源码路径:

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

2、源码
		@Override
		public void onReceive(Context content, Intent intent) {
    		String action = intent.getAction();
    		if (!UsbManager.ACTION_USB_STATE.equals(action)) {
    		    return;
    		}
    		boolean connected = intent.getBooleanExtra(UsbManager.USB_CONNECTED, false);
    		if (!connected) {
        	mActivity.finish();
    		}
		}
3、修改
        @Override
        public void onReceive(Context content, Intent intent) {
            String action = intent.getAction();
            if (!UsbManager.ACTION_USB_STATE.equals(action)) {
                return;
            }
            //zjp update
            //boolean connected = intent.getBooleanExtra(UsbManager.USB_CONNECTED, false);
            boolean connected = false;
            if (!connected) {
                mActivity.finish();
            }
	    	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); 
	   		}
        }
三、usb默认信任

这个修改后,插入新的电脑,会d出信任框,1-2s后自动信任并消失

1、源码路径

/frameworks/base/packages/SystemUI/src/com/android/systemui/usb/UsbPermissionActivity.java

2、源码
        mAlwaysUse.setOnCheckedChangeListener(this);
        mClearDefaultHint = (TextView)ap.mView.findViewById(
                                                    com.android.internal.R.id.clearDefaultHint);
	    mClearDefaultHint.setVisibility(View.GONE);

	    setupalert();
3、修改
        mAlwaysUse.setOnCheckedChangeListener(this);
        mClearDefaultHint = (TextView)ap.mView.findViewById(
                                                    com.android.internal.R.id.clearDefaultHint);
        mClearDefaultHint.setVisibility(View.GONE);

        setupalert();
        //zjp update
		Log.d(TAG, "grant usb permission automatically");
		mPermissionGranted = true;
    	finish();

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5713283.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-18

发表评论

登录后才能评论

评论列表(0条)

    保存