Remove MODIFY_PHONE_STATE permission from startVoiceRecognition
Multiple reason: 1. This API was wrongly annotated with the permission, looking at the symmetrical stopVoiceRecognition that is no enforcing the permission 2. Legacy code was only enforcing the permission if: * The device passed was null (impossible according to Fwk code) * the device passed was not the active device AND: * the previous active device is not disconnected but is null (impossible to be both null and not disconnected) * Or the flag for managing the sco by audio framework is off and there is ongoing leaudio on the previous device and the connectAudio on the new device failed so it try to call removeActive that in turn will call stopScoUsingVirtualVoiceCall that require the permission, but it's impossible since we only do this when mVirtualCallStarted is false and here it has to be true Since this permission was indicated on the API but never enforce, and it looks like it shouldn't be, removing the enforcement that was put in place with aosp/3160581 and updating the documentation of the API accordingly This CL is also updating the code to clarify some impossible path discover while looking at this issue: * startVoiceRecognition wants a non null device. if it's null it's a malicious binder call * setActiveDevice has a impossible situation in which a null device could be connected, I removed the null device Bug: 357736834 Fix: 357736834 Bug: 349682934 Test: m Bluetooth Flag: Exempt partial revert Change-Id: I0c9cef34776db20d732ab766c89206d4967a3971
Loading
Please register or sign in to comment