2017-09-12 1 views
3

Je fais une petite application Android, actuellement l'apk a 382KB, et j'utilise OkHttp, regardant dans l'apk, l'Okhttp insère un fichier publicsuffixes.gz qui a 33Ko (8 ~ 9% de taille totale d'apk).Comprendre OkHttp publicsuffixes.gz

Si j'exclue le fichier avec le code suivant l'application se bloque, donc il est évidemment nécessaire, ma question est, quelle est la fonction de ce fichier et est-il possible de remplacer ou de modifier pour réduire la taille?

Le Code ne comprennent pas:

android { 
    ... 
    packagingOptions { 
     exclude "publicsuffixes.gz" 
    } 
} 
+2

voir ici pour plus d'informations https://publicsuffix.org/list/ il peut être utilisé pour bloquer les cookies pour l'un de ces domaines. – Henry

Répondre

4

Tout d'abord, cela ne devrait pas échouer si vous ne configurez pas votre client pour soutenir les cookies. Pouvez-vous fournir un stacktrace échouant?

Si vous avez besoin des cookies, mais ne je soupçonne que vous pouvez pirater se soucient pas de la sécurité (YOLO!) Quelque chose en modifiant https://github.com/square/okhttp/blob/9bfe575960af8e7bb164642f2f513b5ccb39ff4f/okhttp/src/test/java/okhttp3/internal/publicsuffix/PublicSuffixListGenerator.java

Pour avoir un fichier essentiellement vide. Cela semble être une mauvaise idée, mais caveat emptor. Vous allez briser la sécurité autour de la gestion des cookies, ce qui peut ou peut ne pas être acceptable pour vous.

+3

Sans cela, un site malveillant comme 'www.evil.co.uk' pourrait créer un cookie pour' www.bank.co.uk'. C'est parce que le fichier de suffixes publics est ce qui dit à OkHttp que 'co.uk' n'est pas un domaine privé. –

+0

Mes connaissances sur le réseau sont limitées, mon utilisation de okhttp est juste accéder à une API rien de plus, ne me semble pas dangereux de supprimer une fois que je n'ouvre pas les sites ou quelque chose comme ça, voyez-vous un problème évident en le supprimant? – ademar111190

+0

Si vous ne vous souciez pas des cookies et que vous avez par défaut CookieJar.NO_COOKIES, cela ne devrait pas être un échec. Alors peut-être commencer par cela, et inclure une trace de la pile de l'endroit où il échoue. –