I'm testing an android application on a virtual machine running android x86 (android_x86_64-userdebug 9 PI eng.lh.20200325.112926 test-keys
). In its current configuration, it does not trust user SSL certificates, and thus I cannot proxy the application traffic through a Burp proxy on the same network. (Visiting https://example.com through the proxy with Chrome works just fine).
I.e. I configure the device to proxy all traffic through my Burp proxy, but when the application attempts to connect to the remote server it fails. Reading the output of tcpdump
I see a message of TLSv1.2 Record Layer: Alert (Level: Fatal, Description: Certificate Unknown)
.
If I attempt to add the certificate to the Trusted root certificates in /system/etc/security/cacerts/<8bytesig>.0
, l get a notification from the OS telling me that a third party has added a certificate to my device. I can then move it being a User certificate, which doesn't help me.
My question is, given root access to an Android x86 device, how do I add a trusted root certificate such that it is actually trusted by the device as a root certificate instead of as a user certificate?