Ho risolto il problema. Bisogna settare keystore e truststore a livello di codice usando i SocketFactory, l'ho fatto seguendo la documentazione su java e ssl di IBM. Poi il problema stava nel fatto che Android non supporta i keystore JKS (quelli utilizzati di default dal metodo getInstance() ) creati con keytool, quindi bisogna creare i keystore BKS utilizzando sempre keytool ma appoggiandosi alla libreria apposita che si scarica dal sito BouncyCastle. A questo punto tutto va bene, ma poi mi si è presentato un nuovo problema nel mio caso più grave. Il mio obiettivo è utilizzare SSL per autenticare il client, e di defualt viene autenticato solo il server, quando setto ServerSocket.setNeedClientAuth(true) ottengo una SSLHandshakeException: null cert chain e non riesco ad autenticare il client, cosa che invece funziona benissimo se lo stesso codice lo eseguo in una normale applicazione java. Qualcuno può aiutarmi? Grazie!