There's nothing that Fiddler's HOSTS feature does that can't be done via scripting-- I merely wanted to verify that this feature was working correctly to help point you in the right direction.
How is your Android client sending its traffic to Fiddler? Did you change the proxy settings on the device itself, or did you have to use IPTables or another approach?
To ensure that Fiddler generates the expected certificate, you can put this block in your script
if (oS.HTTPMethodIs("CONNECT")
{
// If it's an HTTPS tunnel, override the certificate
if (oS.HTTPMethodIs("CONNECT") && (null != oS["OriginalHost"]))
{
oS["x-overrideCertCN"] = oS["OriginalHost"];
oS["X-IgnoreCertCNMismatch"] = "Server's hostname may not match what we're expecting...";
}
oS.bypassGateway = true;