In order to realize the function of SPICE over SSL, these two weeks, first I get familiar with freeaSPICE-3.7.7-final.apk, to have an idea how to connect ovirt’s SPICE Console.
After I can connect ovirt’s SPICE Console successfully by freeaSPICE, I got the necessary parameter that connect ovirt’s SPICE Console. And then I begin to check bVNC’s source code ( the freeaSPICE mentioned before is the author modified bVNC source and compile and got it). Also I test it, and find freeaSPICE do not support passing parameters(SPORT，SUBJECT，CA_FILE) in URL.
I tried to contact the author but didn’t get any feedback, and then I modify bVNC according the method that author offered how to modify bVNC into aSPICE. But I have no idea how to compile libspice.so and libgstreamer_android.so, so I copy lib document of freeaSPICE-3.7.7-final.apk, and compile aSPICE successfully.Howerve it only works while I rename the package name of aSPICE APP as the same name of the package of freeaSPICE-3.7.7-final.apk.
The following interface show successfully compiled aSPICE:
After compile aSPICE successfully, I Extend aSPICE’s URI parameters supported by RemoteCanvasActivity(added support for
TlsPort, CaCertPath and CertSubject parameter) .
And then modify movirt, first got and save TlsPort and CertSubject these two parameters, which got from REST API through movirt, and then check whether it already download CA file before calling aSPICE, if not remind user download CA file. Finally, add TlsPort, CaCertPath and CertSubject these three parameters in calling aSPICE’s URL.
Calling aSPICE to connect SPICE Console successfully is showed as below: