"Storage Scopes", la nouvelle fonctionnalité de GrapheneOS
Plongée dans le fonctionnement du stockage des applications sur Android. Nous découvrirons des solutions mises en oeuvre par AOSP et GrapheneOS pour prévenir des accès invasifs à l'ensemble de vos fichiers.
Bien que j'écrive régulièrement à propos de GrapheneOS, je ne prends pas forcément la peine de le faire à n'importe quel ajout (même s'ils peuvent être intéressants). Mais ce dernier ajout, Storage Scopes, en vaut particulièrement la peine. Pour mieux comprendre de quoi il s'agit, il faut d'abord s'intéresser au modèle de permissions d'Android. Nous l'avons mentionné à plusieurs reprises déjà : les permissions sur Android régissent évidemment les accès des fichiers aux applications.
Un schéma récapitulatif des premières parties est présent plus bas dans l'article, n'hésitez pas à l'ouvrir dans une autre fenêtre pour mieux suivre si besoin est.
Le stockage interne des applications
Sur une version moderne d'Android, une application dispose de son propre stockage avec ses fichiers spécifiques. L'application n'a pas besoin de demander une permission pour cela. Ce stockage est entre autres un bac à sable pour l'application qui n'est visible et accessible que par ladite application. Il peut être de deux différentes natures :
- Un stockage isolé dans la mémoire dite "interne" (dans
/data/data
en lecture seule et/data/user
). C'est un endroit strictement réservé à l'application, d'habitude utilisé pour des fichiers essentiels au bon fonctionnement de l'application. Les données de cette dernière sont supprimées lorsqu'elle est désinstallée. - Un stockage à portée restreinte dans la mémoire dite "externe" (partie visible par l'utilisateur) dans le répertoire
Android/data
. Chaque application est autorisée par défaut à avoir son répertoire dansAndroid/data
, et sa visibilité sera limitée à ce répertoire.
Notez par ailleurs que Android/data
est inaccessible par des explorateurs de fichiers par exemple en dehors de ceux autorisés par l'OS. C'est le cas de l'explorateur par défaut (AOSP) sur GrapheneOS.
C'est depuis Android 10 que les applications (niveau d'API 29+) disposent de leur propre répertoire par défaut dans la mémoire externe sans qu'ils aient la possibilité de voir le reste des données de l'utilisateur. Ils disposent également de la possibilité de créer certains types de fichiers à certains endroits standardisés sans aucune permission également. Depuis Android 11, les applications (niveau d'API 30+) doivent composer avec cette gestion qui porte le nom de scoped storage.
Il va de soi que ce fut une avancée majeure pour la vie privée, et c'est un paradigme radicalement différent du modèle des OS traditionnels où chaque application partage le même ensemble de données de l'utilisateur.
Et la productivité ?
Certaines applications ont pourtant besoin d'avoir accès à certains fichiers de l'utilisateur, d'autres applications, etc. Ces fichiers sont persistants et destinés à être partagés entre plusieurs applications. On dit qu'ils sont présents dans la mémoire externe dans un "stockage partagé" (ou plus simplement l'ensemble de vos données personnelles). L'accès à ce stockage est régulé sur Android avec son modèle de permissions, qui se porte garant de la confidentialité des données de l'utilisateur final.
Il existe bien évidemment des approches modernes pour permettre la productivité dans un contexte d'applications à visibilité restreinte :
- L'API
MediaProvider
est utilisée par les applications pour contribuer (sans permission) et accéder (avec permission) à une collection de types de fichiers comme des images, sons et vidéos de l'utilisateur (mais aussi documents et téléchargements). - Storage Access Framework (qui existe depuis Android 4.4) permet aux applications d'accéder à n'importe quel type de fichier. L'OS présente une fenêtre de sélection à l'utilisateur, qui donnera explicitement la permission d'accès à un fichier/dossier pour l'application en question.
Il faut aussi savoir qu'Android marque les fichiers créés avec des attributs. Un de ces attributs permet à Android de savoir quelle application a créé (et "possède" donc) tel fichier. Des mécanismes très similaires existent chez iOS.
API MediaProvider
Aujourd'hui, l'API MediaProvider
est ce qui permet aux applications de manipuler et partager des fichiers extrêmement communs comme des images, des sons ou des vidéos. Cette API permet aussi de manipuler documents et téléchargements (tout type de fichier), dans leurs dossiers standards respectifs.
Un fichier "média" est indexé dans des collections par Android s'il est présent dans un dossier standard ( DCIM/
, Music/
, etc.) et/ou que ce dossier ne contient pas de fichier .nomedia
. Les applications peuvent également contribuer directement à ces collections.
Par défaut (sans aucune permission), MediaProvider
permet en effet à l'application de contribuer aux différentes collections. Cependant, l'application n'a pas de visibilité sur les autres éléments qu'elle n'a pas contribués elle-même, sauf si la permission d'accès à la mémoire READ_EXTERNAL_STORAGE
"Media seulement" est octroyée.
Note : si l'application veut pouvoir renommer et supprimer ces fichiers d'autres applications, elle doit en plus demander la permission MANAGE_MEDIA
. L'utilisateur devra autoriser un accès spécial.
Avant Android 10, avec les permissions READ_EXTERNAL_STORAGE
et WRITE_EXTERNAL_STORAGE
, MediaProvider
donnait l'accès à quasiment tous les fichiers de l'utilisateur sur la mémoire externe. C'est pour cela que des applications antérieures à ces changements (ciblant un niveau d'API inférieur à 29) demandent la permission "Files & Media", tandis que les applications modernes ne pourront demander que la permission "Media seulement" (il existe des cas particuliers que nous verrons ci-dessous).
Exemples pour mieux comprendre comment fonctionne l'API :
- Avez-vous déjà remarqué des applications peuvent télécharger dans votre dossier "Téléchargements" sans que vous ne lui aviez donné la permission ? C'est parce que l'application a par défaut le droit de contribuer à la collection
MediaStore.Downloads
(ce qui je pense est assez explicite). - Une application "Camera" n'a en réalité aucunement besoin d'une permission d'accès quelle qu'elle soit pour fonctionner. Elle peut contribuer à la collection
MediaStore.Images
et accéder uniquement à ses propres fichiers pour fonctionner (Google Camera est un mauvais élève pour une raison que j'ignore, mais GrapheneOS Camera implémente MediaProvider, et SAF pour les endroits personnalisés). - Maintenant, si une application "Galerie" doit accéder à ces fichiers, qui ont donc été produits par une application différente, il sera naturellement nécessaire qu'elle dispose de la permission
READ_EXTERNAL_STORAGE
("Media seulement" sur Android 10+).
Les différentes collections sont visibles dans l'explorateur de fichiers AOSP :
Images, Videos, Audio, Documents et Downloads sont des collections de fichiers indexés avec leur type respectif. Si je touche "Pixel 6", j'accède simplement à mon répertoire utilisateur sur la mémoire externe.
Chaque collection ne correspond pas vraiment à un dossier unique (bien que certains soient standardisés), mais l'ensemble des fichiers indexés correspondants.
Storage Access Framework ♥ Scoped Storage
Storage Access Framework (que je vais abréger par SAF pour la suite) combiné à Scoped Storage est naturellement la façon moderne de permettre la productivité dans un contexte soucieux de la vie privée. SAF fonctionne avec tout type de fichier/dossier présent dans le répertoire utilisateur sur la mémoire externe (à certaines exceptions près).
Ici, vous n'octroyez que des permissions précises aux fichiers ou dossiers dont vous avez besoin pour une application donnée. Pour ce faire, l'OS vous présente avec une fenêtre fournie par votre explorateur de fichiers. Vous l'avez forcément déjà utilisée !
Exemple : si je veux mettre en ligne une image sur mon navigateur sans que ce dernier ait accès à tous mes autres fichiers, ce navigateur doit implémenter SAF.
Note : l'OS vous interdit de choisir entièrement votre répertoire utilisateur, pour éviter des fausses manipulations. Sinon cela reviendrait à donner une permission classique et invasive.
Malheureusement, l'approche traditionnelle qui était largement utilisée était pour les applications de demander une visibilité voire un contrôle presque total sur le répertoire de l'utilisateur dans la mémoire externe. Cette approche est en réalité encore possible pour des applications modernes. De deux façons, en fait :
- Elles peuvent explicitement désactiver la fonctionnalité scoped storage, pour revenir à la gestion "classique" pré-Android 10. Ensuite, elles peuvent déclarer
WRITE_EXTERNAL_STORAGE
ouREAD_EXTERNAL_STORAGE
pour demander un accès en lecture/écriture à la mémoire externe pour tout type de fichier. C'est en général une mauvaise pratique qui doit être assidûment justifiée par l'application. - Une permission
MANAGE_EXTERNAL_STORAGE
a été ajoutée pour les applications depuis Android 11. C'est une permission réservée aux applications qui en ont un besoin vital comme les explorateurs de fichiers. L'autorisation explicite de l'utilisateur est toujours requise, mais sa représentation de haut niveau est devenue un accès spécial ("All files access"). Pour éviter les dérives, Play Store restreint la publication d'applications déclarant cette permission.
Les applications peuvent également décider de ne pas cibler un niveau d'API supérieur ou égal à 29 pour ne pas à avoir à désactiver explicitement Scoped Storage, mais cette approche n'est pas désirable à long terme (Play Store ayant notamment son mot à dire). Cela dit, vous utilisez peut-être (par choix ou contrainte, peu importe) encore des applications ciblant un niveau d'API relativement ancien.
Voici un schéma récapitulatif du fonctionnement d'une application moderne. Je ne peux malheureusement pas faire figurer tous les cas particuliers mais cela devrait vous donner une bonne idée de la situation !
Les problèmes...
Pour récapituler sans se prendre la tête avec des concepts de bas niveau, une application peut demander un accès étendu au répertoire utilisateur de la mémoire externe de 3 façons :
- La permission "Files & Media" (applications anciennes, ou modernes désactivant la gestion moderne de la mémoire) : accès presque total à la mémoire externe.
- La permission "Media seulement" (applications modernes) : accès au contenu des différentes collections
MediaStore
, y compris le contenu de l'utilisateur et d'autres applications (fichiers médias indexés seulement). - L'accès spécial "All files access" (applications modernes) : accès presque total à la mémoire externe.
Par "presque total" j'entends quelques exceptions comme naturellement les cheminsAndroid/data
etAndroid/obb
.
Et là, en fait, on se heurte au bon vouloir des développeurs d'applications. Certaines applications refusent de fonctionner si on ne leur donne pas un accès absolu à la mémoire externe, ou alors des fonctionnalités basiques comme la mise en ligne d'images ne fonctionnera pas sans cet accès invasif. Ces applications demandent une méthode invasive d'accès à vos fichiers et n'implémetent généralement pas SAF.
L'application Discord est un bon exemple : pour envoyer des images, elle a une galerie interne qui demande d'accéder à la collection MediaStore.images
contenant les fichiers d'autres applications, mais cela nécessite de lui donner la permission READ_EXTERNAL_STORAGE
(aussi appelée "Media"). C'est assez invasif comme approche puisqu'on pourrait tout simplement utiliser SAF pour ne donner la permission d'accès qu'au fichier (image, vidéo) que l'on souhaite partager. En pratique on peut palier cela on partageant l'image à Discord depuis une autre application (typiquement votre galerie), mais peu d'utilisateurs en ont l'habitude.
Les applications qui pourraient simplement se contenter de SAF et d'un accès à portée limitée (scoped storage), mais qui nécessitent une permission invasive d'accès à la mémoire externe et donc à l'ensemble de vos fichiers, sont malheureusement très nombreuses.
Alors, quelles solutions ? La première est de préférer des applications modernes qui sont plus susceptibles d'implémenter ces bonnes pratiques. Mais ce n'est pas toujours possible de choisir une application, donc...
Les profils utilisateur
Il existait déjà une solution dans AOSP : les profils utilisateur (user profiles). Dans Android moderne, les données sont compartimentalisées par utilisateur. Par défaut, vous utilisez l'utilisateur principal, à partir duquel il est possible d'ajouter des profils secondaires.
Ces profils secondaire sont des espaces de travail séparés et isolés ; sur un Google Pixel récent, chaque profil dispose de ses propres clés de chiffrement et de son propre slot Weaver sur Titan M. Une application avec des permissions invasives comme nous en avons vues ci-dessus n'aura accès qu'aux données du répertoire du profil utilisateur dans lequel cette application est installée et lancée.
Cette fonctionnalité n'est malheureusement pas présente sur toutes les distributions d'Android, car les constructeurs ont tendance à la désactiver. GrapheneOS non seulement veille à l'activer mais repousse ses limitations en permettant l'usage jusqu'à 16 profils utilisateur. Et depuis peu, GrapheneOS permet à différents profils de s'échanger des notifications.
Cette dernière n'est pas une fonctionnalité que j'utilise moi-même donc j'ai demandé à un utilisateur de faire une capture histoire de vous montrer :
Storage Scopes
La dernière solution en date qui vient tout juste d'arriver dans la version stable de GrapheneOS est la fonctionnalité Storage Scopes. L'idée est de pousser le concept de scoped storage jusqu'à son principe élémentaire : en des termes plus français, l'application peut avoir un accès à la mémoire externe (y compris en dehors de Android/data
, nous en avions parlé plus haut), mais qui sera restreint à ses propres fichiers/dossiers.
C'est une approche compatible avec la gestion moderne du stockage des applications sur Android. Android l'aurait même considérée mais finalement cette fonctionnalité n'est pas arrivée.
Ainsi, l'application sera en quelque sorte "dupée" puisque bien qu'elle aura un accès étendu dans la hiérarchie de la mémoire externe, elle ne peut que voir, créer et altérer ses propres fichiers. Les permissions qui étaient demandées dans son AndroidManifest.xml
(fichier de l'application qui déclare les permissions qui vont être demandées) sont "satisfaites", et l'application ne rechignera pas.
Simplement activer cette fonctionnalité suffit pour une majorité d'applications concernées. Il n'y a pas d'autre chose à faire : l'application pourra créer ses propres dossiers et fichiers, sans pouvoir accéder à ceux des autres applications. C'est ainsi que la fonctionnalité fonctionne.
Quid de la productivité ?
Parfois vous avez tout de même besoin qu'une application accède à des fichiers que ne lui sont pas attribués. Pour cela, Storage Scopes implémente SAF dans les paramètres OS de l'application afin que l'utilisateur puisse donner à l'application l'accès aux fichiers/dossiers souhaités.
Cette liste de fichiers/dossiers autorisés est persistée par l'extension PackageManagerService de GrapheneOS (GosPackageState).
Un exemple pour mieux comprendre (avec VLC) :
- VLC demande l'accès à tous mes fichiers. J'ai le choix d'accepter, de refuser, ou de restreindre l'accès de sa portée dans la mémoire externe (Storage Scopes).
- Je choisis cette dernière option (Storage Scopes), puis je la configure pour n'autoriser l'accès qu'à un fichier particulier (un clip MP4).
- Enfin, on peut observer que VLC a par conséquent une visibilité restreinte dans la mémoire externe, sans qu'elle ne s'en rende compte.
Un autre exemple plus vilain cette fois-ci : Microsoft Lens.
Typiquement un cas parfait d'application qui demande un accès à la mémoire externe, sans quoi elle refuse de fonctionner (ce qui est idiot, puisqu'elle peut fonctionner avec ses propres photographies). Activer Storage Scopes revient en quelque sorte à dire - pardonnez la grossièreté - "ta gueule et fonctionne".
Et si on s'amusait avec un explorateur de fichiers ? Prenons Google Files.
Google Files ne peut ici rien voir d'autre que son propre répertoire dans Android/data
. Quant au reste, il ne verra rien, sauf si je décide d'ajouter manuellement les fichiers/dossiers que je souhaite.
Pour finir, Play Store et Play services peuvent également être restreints de cette façon sur GrapheneOS. Vous savez peut-être déjà que Play services fonctionne avec les mêmes restrictions qu'une application lambda sur GrapheneOS, mais en l'occurrence il était nécessaire de lui donner la permission de stockage pour le service FIDO2, ainsi qu'à Play Store pour le téléchargement de gros jeux avec des fichiers OBB.
Storage Scopes est une solution élégante dans ce cas de figure, d'autant plus qu'un toggle est ajouté pour les marchés d'application leur permettant un accès unique à Android/obb
.
Il y a vraiment un tas de possibilités qu'on pourrait mentioner :
- Restreindre une galerie (comme Google Photos) à certains dossiers
- Restreindre Google Camera qui n'a pas besoin de permission, donc peut contribuer avec ses images sans accéder au reste de la collection
- Utiliser des applications comme Tachiyomi (pour les lecteurs de manga) qui désactivent scoped storage sans réelle justification
Je vous suggère de faire un petit tour dans le tableau de contrôle de vie privée dans les paramètres Android pour faire le point sur l'utilisation non-appropriée de permissions invasives par vos applications.
Android étant un écosystème largement diversifié (ce qui est une force et une faiblesse), il est toujours agréable de constater qu'il est possible de bénéficier de cette diversité tout en compensant les mauvais pratiques et lacunes en matière de vie privée de certains développeurs. Par ailleurs, c'est un problème qui n'existe pas vraiment sur iOS en raison des restrictions fortes d'Apple. Encore une fois, c'est une bonne ou une mauvaise chose, selon l'angle adopté.
Certaines limitations sont documentées ici, mais elles ne sont probablement pas gênantes en utilisation pratique. Le site officiel du projet, qui devrait bientôt être mis à jour avec davantage d'informations, explique également la fonctionnalité dans ses propres mots.
J'espère que cet article aura pu vous permettre de mieux comprendre cette nouvelle fonctionnalité, ainsi que la gestion moderne du stockage des applications dans Android par la même occasion !
Merci !
Hello et merci pour l'article.
Je viens de tester, mais l'application a accès à d'autre folders malgré qu'un seul soit autorisé via scope.
Bonne journée.
C'est normal, par exemple si tu choisis un sous-dossier l'application peut quand même voir les dossiers hiérarchiquement au-dessus (pas leur contenu sauf les dossiers nécessaires).
Sinon, si ce n'est pas ça, il faut reporter le bug. Mais on a testé la feature en long et en large avant de la mettre en stable et on n'a pas remarqué de comportements non-attendus.
Ah oui, et comme expliqué, sans que tu ajoutes quoique ce soit, l'application peut créer ses dossiers, créer des fichiers et y avoir accès. Ajouter un accès c'est seulement pour les dossiers/fichiers qui n'ont pas été créés par l'application en question.
N'hésite pas à revenir vers moi si malgré cela il y a un réel problème. :)
Salut, avec l'application Telegram FOSS j'ai eu la même impression, après la lecture de cet article j'ai compris qu'il s'agit de la fonction "Storage Access Framework" (SAF) qui n'est pas problématique car l'accès au fichier est initié par l'utilisateur au cas par cas via l'explorateur de l'OS
On ne peux pas faire de granularité plus fine
Bonjour, rien à voir avec l'article mais tu connais une application de lecture de flux .atom autre que feeder? Feeder est top mais uniquement disponible sur fdroid. Je recherche une application disponible sur github pour quelle puisse se mettre à jour. Merci
Si l'application app de grapheneos pouvait le faire ce serait impeccable... Mais non
Pour ma part j'utilise Miniflux sur un serveur, donc pas vraiment une app Android (il y a une PWA cela dit), mais il y a l'API Fever et aussi une API officielle, donc sûrement des clients intéressants pour Android. (Par exemple FeedMe est compatible avec l'API Fever, et qui est très cool mais pas open-source malheureusement.)
Ok super merci pour avoir répondu
Merci pour le retour sur cette fonctionnalité de sécurité très interressante, je suis très heureux d'avoir suivis vos conseille et d'être passer sous Grapheneos avec mon pixel 6 pro, infiniment plus securisé, et que dire de la fréquence des mises à jours, le travail abattu est énorme. Force à toi Wonder <3
Content que l'OS vous plaise !
Bonjour il faut préciser au gens que storage scopes n'empêche pas une application l'écriture dans un dossier autre que celui sélectionner dans cette option. Aussi, l'interaction entre cryptomator et Google Drive est coupée depuis l'arrivée de cet option. J'en ai parlé sur le Matrix de GrapheneOS mais apparemment c'est normal.
Bonsoir,
Il me semble que c'est déjà expliqué. L'application peut écrire ses propres fichiers (qu'elle "possède"), et peut créer des dossiers au top-level, mais n'aura pas accès aux autres. Dans la liste des subtilités, elle peut également supprimer des dossiers vides au top-level qui n'ont pas forcément été créés par l'application elle-même.
Le mécanisme d'ajout ne concerne que les fichiers et sous-dossiers n'appartenant pas de base à l'application.
Cf. mon explication :
Simplement activer cette fonctionnalité suffit pour une majorité d'applications concernées. Il n'y a pas d'autre chose à faire : l'application pourra créer ses propres dossiers et fichiers, sans pouvoir accéder à ceux des autres applications. C'est ainsi que la fonctionnalité fonctionne.
Il faut comprendre que cette fonctionnalité ne change pas le fonctionnement d'une application, mais restreint sa visibilité et son accès aux fichiers tiers. Je n'ai pas écrit que c'était une restriction absolue en lecture/écriture, attention. Tout fonctionne d'une façon bien plus granulaire sur Android et c'est pour cela que j'ai pris le temps d'expliquer succinctement la gestion des fichiers et de leurs accès.
Cela m'étonnerait que le simple ajout de Storage Scopes ait quelque chose à voir avec cela puisque c'est une fonctionnalité opt-in. Vous parlez de quelle intégration : celle directement dans l'application, ou celle via le DocumentProvider de Google Drive (son dossier "intégré" dans l'app Fichiers) ? Car cette dernière n'a jamais fonctionné sur Android malheureusement. Dans tous les cas vous n'êtes pas obligé d'activer l'option si vous pensez qu'elle cause des problèmes.
(Vous pouvez me donner le lien d'un message de la conversation Matrix en question comme ça j'aurai directement le contexte et détails.)
Bonjour, le problème est que sur l'application cryptomator je n'arrive pas à créé un dossier sur Google Drive, ça me met un message d'erreur. En gros : plus de lien entre cryptomator et Google Drive. Avant la mise à jour storage scopes il n'y avait pas ce problème. Il n'y avait pas ce problème puisque j'ai un dossier chiffré sur Google Drive. Depuis je peut très bien créé mon dossier chiffré sur le téléphone puis le copier dans Drive. Ça ne me pose pas un problème immense mais bon... Je ne peux pas vous copier le lien car je nautilise plus Matrix, là aussi il y a un problème (pour moi qui suis un vieux con) car les discussions n'était plus du tout en lien avec GrapheneOS (et je n'ai plus à être sur mon portable toute la journée). Mais si vous tapez cryptomator ou Gmail vous devriez tomber sur ma question, je crois que mon pseudo était bouledeneige ou guilpa... Je ne sais plus. Bonne journée et merci encore pour le soins que vous apportez à vos articles
Bonjour, encore merci pour l'état des lieux synthétique des avancées du projet! J'ai une interrogation sur gmail dans un profil secondaire, je ne parviens pas à télécharger ou afficher les pièces-jointes? Est-ce un problème de paramétrage des autorisations du stockage ? Thanks
Bonjour, Gmail vous donne une erreur en particulier ? Normalement, une application bien faite n'a besoin d'aucune permission de stockage pour contribuer au Mediastore des téléchargements. Sinon, on peut utiliser Storage Scopes. Normalement Storage Scopes n'a pas besoin d'accès spécifique dans ce cas sauf si Gmail demande l'accès à un dossier spécifique qu'il n'a pas créé lui-même...
Je pense à un problème de paramétrage, car cela met "échec du téléchargement, veuillez essayer ultérieurement"
Salut, j'ai une petite question, par exemple sur whatsapp j'ai activé le storagescopes sans définir de dossier ni de fichier, j'ai juste activé storage scopes. Du coup quand un collègue envoie une photo et que je l'ouvre je peux la lire, c'est super mais ou est enregistré la photo? Si je peux la lire elle est bien enregistré sur le téléphone non?
Je ne sais comment WhatsApp fonctionne, mais deux possibilités :
Comme expliqué dans l'article, une application peut contribuer à un Mediastore sans aucune permission (en revanche elle ne peut pas accéder au contenu contribué par d'autres apps, par défaut). Elle peut donc télécharger vos images dans vos endroits standardisés (DCIM et compagnie).
L'autre possibilité c'est que WhatsApp enregistre cela dans son propre dossier. Storage Scopes ne change rien au fonctionnement de l'application. Par exemple si WhatsApp a un dossier WhatsApp/ dans votre répertoire utilisateur, il pourra toujours l'utiliser sans avoir besoin de configurer Storage Scopes. Encore une fois, Storage Scopes n'affecte l'accès qu'aux éléments qui ne sont pas attribués à l'application.
Merci pour la reponse. Le truc c'est que j'avais supprimé le dossier whatsapp. Je n'ai aucun dossier pour cette app. Du coup la photo se charge mais j'ai l'impression quelle n'est null part dans le smartphone, et c'est très bien !
J'ai un lineageOS root avec AFwall+, pratique pour bloquer des apps. Sur GrapheneOs, pas de root (enfin déconseillé), il y a le droit supplémentaire pour désactiver l'accès au network. Il y a donc un intéret à utiliser NetGuard (no root) par exemple ? Merci
Salut, non aucun intérêt à utiliser NetGuard sur GrapheneOS ! La permission réseau de GrapheneOS est même plus efficace car elle ne présente aucune possibilité de fuite (en dehors de la traditionnelle communication inter-apps mutuelle).
Salut, je suis encore obligé de passer par toi car les mec de grapheneos ne comprennent pas mes messages, je viens de leurs dire sur Twitter que lorsque je copie un mot de passe a partir de mon gestionnaire de mot de passe (keepassdx) celui ci se retrouve afficher en clair en bas à gauche de l'écran ! Tu peux tester toi même pour vérifier. Franchement y'en a marre d'Android, d'une version ou tout va bien il nous change tout. Je n'en peux plus et je vais me commander un iphone au lieu d'attendre le pixel 7 avec grapheneos ou non d'ailleurs, vue comment les mec sont borné...
Je t'ai répondu ici : https://twitter.com/w0nderfall/status/1561878774769131520
C'est à KeePassDX de rajouter le flag pour éviter que ça n'arrive.
Ok super, comment fait on pour que keepass soit au courant ?
Je viens de voir que tu as ouvert un ticket, tu as donc ta réponse : https://github.com/Kunzisoft/KeePassDX/issues/1386
Oui j'ai lu ça mais leurs flag ne fonctionne pas... De toute façon il fallait que je change de téléphone et j'ai remplacer par un iphone 13, fini pour moi tout ça. Par contre je comprends les utilisateurs d'iphone qui n'aime pas le changement, au moins ça fonctionne pareil depuis la première version
Tu peux vérifier toi même que leurs flag ne fonctionne pas en installant keepassdx et en entrant un faux mot de passe, tu verra... Bref bonne soirée et bonne continuation
C'est ce que j'essayais d'expliquer sur Twitter... il y a un bug et il va être résolu à la prochaine version : https://github.com/Kunzisoft/KeePassDX/issues/1386#issuecomment-1223832898
Je comprends la tentation d'iOS, mais crois moi, j'utilise iOS tous les jours et c'est loin d'être une expérience sans défauts non plus. Il y a des choses différentes qui me frustrent sur Android et sur iOS, c'est pas évident.
J'était un geek depuis mon premier pocket pc jusqu'à la naissance de ma fille il y a 1an, franchement la je sature de tout ça
Je trouve qu'il ne faut pas tout mélanger. Je comprends la saturation mais je ne vois pas en quoi vous ne pouvez pas utiliser GrapheneOS/Android de la même façon que vous utilisez iOS, c'est-à-dire très simplement.
Des bugs, vous en aurez sur Android et iOS, je vous le garantis d'expérience. J'adore mon iPad mais j'ai tout autant envie de le jeter par la fenêtre par moments, et des bugs d'applications qui n'utilisent pas correctement les APIs de l'OS (comme KeePassDX), vous en aurez aussi sur iOS.
Et c'est pas pour faire mon râleur mais la moitié des applications dans grapheneos n'est même pas maintenu... pour te dire à quel point, j'ai même réinstallé l'OS stock et en voyant le nombre de truc inutile j'ai réinstallé grapheneos... je suis blazé de la technologie
Je suppose que vous faites référence aux applications AOSP. Elles sont techniquement maintenues : en cas de problème de sécurité, Google les met à jour. Mais une bonne partie d'entre elles ne bénéficient plus d'amléliorations depuis des années, il est vrai.
Vous ne pouvez pas dire que GrapheneOS ne fait pas d'efforts, cependant : il suffit de voir l'application Camera d'AOSP qui a été remplacée par celle de GrapheneOS, bien plus complète et moderne.
C'est pas facile de tout refaire, et de le faire correctement aussi.
Hello,
GraphenOS vient de passer en android 13 , mais pas de themed icons :( , j'ai envie de pleurer telement les icons sont laides, lol. Comment cela ce fait il qu'ils n'aient pas laissé cette fonctionalité ?
Meilleures salitations.
Bonjour, ce n'est pas la faute de GrapheneOS, c'est AOSP tel qu'il est. :)
C'est prévu de regarder comment faire : https://github.com/GrapheneOS/os-issue-tracker/issues/1408
Ca devait être pour Android 12, ensuite Android 13 et puis rien. C'est surtout la réalité d'Android
Coup de gueule : Je viens de passer sur android 13. La migration a été très rapide, comme d'habitude, le boulot réalisé est énorme, mais... Je suis Graphene sur matrix de temps en temps, ça fait plusieurs fois que je vois Daniel Micay se plaindre d'un manque d'investissement (financier, mais pas que...). Ce soir, je lis que plusieurs développeurs ont dû partir par manque d'argent, que les fonds s'épuisent, que les dons baissent, les sponsors se barrent... J'avoue ne pas comprendre, aucun projet n'arrive à ce niveau (et en est même loin), comment se fait-il que GrapheneOS ne marche pas ? Et je ne parle pas ici d'un succès planétaire, mais simplement d'avoir un minimum de fonds pour garantir son développement. J'ai donné, je donne maintenant chaque mois et j'espère pouvoir augmenter ma "cotisation" mensuel d'ici peu, mais j'ai peur que GrapheneOS finisse par mourir d'ici peu si ça continue. Ce mode de consommation du tout gratuit sur internet m'énerve. Un projet aussi majeur ne peut pas s'écraser ainsi... Je suis de nature pessimiste, je le sais bien, mais là, je ne vois pas comment GrapheneOS pourrait se réinventer pour mieux se financer et pérenniser le projet durablement.
Oui je suis bien d'accord, c'est dommage. La communauté n'est franchement pas très motivée pour aller chercher des moyens de support ou contacter des journalistes pour traiter le sujet (d'une façon correcte), histoire de donner de la visibilité qui peut apporter fonds et moyens. Je ne mets pas tout le monde dans le même panier, mais nous sommes trop peu à donner/contribuer.
Beaucoup ne se rendent pas compte que GrapheneOS n'est pas un projet à but lucratif mais n'est pas non plus un "hobby" et que des développeurs y travaillent full-time. C'est le mode de développement qui a été choisi pour garder l'indépendance du projet en se concentrant uniquement sur des fonctionnalités pertinentes. Mais pour que ça marche, il faut une communauté qui soutienne ce modèle.
J'espérais que le smartphone "GrapheneOS" en partenariat avec OSOM allait revigorer un peu les choses mais OSOM a préféré faire un partenariat avec une shitcoin. Vraiment déprimant.
C'est vrai cette histoire de développeurs qui partent ? Je pense que dans le pire des cas le projet ne disparaîtra pas mais reviendra à l'état d'avant les sandbox play services, le minimum syndical sera réalisé... C'est la dur réalité, les gens ne veulent pas de publicité, ils veulent du gratuit, il veulent qu'on respectent leurs vie privée mais quand tu leurs proposent une carte de fidélité en supermarché ils sautent dessus. Les gens sont schizophrène et surtout malhonnête, surtout en France.
Oui c'est vrai, enfin surtout que des développeurs ne peuvent pas être payés full-time et donc doivent avoir un autre job à côté. Il y a toujours une équipe full-time derrière le projet, mais elle manque clairement de moyens pour que ce soit viable à long terme.
Dac
C'est vrai, et tout le monde serait perdant dans l'histoire. Storage scopes est par exemple une super fonctionnalité, quand on prend 5min pour la configurer sur ses différentes applis, c'est un vrai plus pour moi, perdre ce genre d'ajouts serait vraiment dommage. Et il ne faut pas oublier de prendre en considération les apports de GrapheneOS sur AOSP mais aussi linux. Tout ça pour éviter de s'engager à donner 10€ par an, fichtre.
La plupart des gens se fiche littéralement de la sécurité et la vie privée, absolument tout les gens que je connais on comme smartphone des galaxy a10 ou des huwawey p30, d'ailleurs je suis étonné de constaté que les gens en achète encore ce téléphone neuf aujourd'hui
Ça, c'est vrai dans l'absolu, je suis totalement d'accord. Mais de ce qui est annoncé par Daniel Micay, c'est que le nombre d'utilisateurs a bien augmenté (quasiment doublé d'une version d'android à l'autre apparemment), mais que le nombre de dons reçus, dans le même temps, n'a absolument pas suivi... Normalement, le projet a en théorie les moyens d'assurer son développement, c'est ça qui n'est pas logique. 1 million par an était évoqué, comme un montant raisonnable et suffisant. Sur une communauté de 80 à 100 000 utilisateurs, c'est pas déconnant. Quand je vois certains financements participatifs sur le net, je crois que l'on fait radin...
Je confirme, GrapheneOS a une userbase assez conséquente et grandissante, mais un taux de retour en donations très faible comparé à d'autres projets open-source.
Ah, je n'étais pas au courant pour le téléphone, je me disais bien que je ne voyais pas d'infos, mais je n'osais pas aborder la question... Dommage...
D'autant plus dommage que niveau communauté, il y a quand même matrix, avec plusieurs chambres, où pas mal de développeurs et modos participent beaucoup, le nouveau forum aussi, twitter je crois, ça devrait favoriser les choses normalement.
Mais (alors sans enterrer GrapheneOS non plus, mon but n'est pas de faire peur et d'inciter les gens à arrêter de donner par dépit, loin de là !!) ça semble être la destinée d'un certain nombre d'applis/services qui ont choisi la donation comme modèle économique. Signal a eu du bol de recevoir des millions de son fondateur milliardaire, mais ça n'est pas une solution durable. Si GrapheneOS devait continuer/revenir sous une autre forme, payante, je n'en serais pas choqué, plutôt au contraire... Mais est-ce que ça aiderait ou ça affaiblirait au contraire, je ne sais pas.
GrapheneOS ne peut pas devenir payant, c'est pas une société. Moi ce qui me choque c'est que le projet de l'OSOM part du fondateur de l'essential phone... c'est dommage et ça donne une image très moyenne a se type de personne je trouve.
J'ai laissé plusieurs messages pour faire la pub de GrapheneOS a différents YouTuber tech mais ils ont tous été effacé... Je me posé la question depuis quelques temps de faire moi même des vidéo sur YouTube puisque je n'aime pas vidéos des youtuber tech français et personne en France ne parle sérieusement de GrapheneOS. J'ai tout le matériel nécessaire mais la seule chose qui me freine c'est mon niveau de connaissance. Tu en pense quoi wonderfall ?
Peu de YouTubeurs tech savent réellement de quoi ils parlent. Que ce soit software ou hardware d'ailleurs... Tu peux te lancer, mais il faut faire extrêmement attention à vérifier la véracité des informations, car des informations confuses ou erronées peuvent faire très mal au projet (ça a été le cas par le passé).
Mais il faut pas en avoir peur, et essayer quand même (et tu peux toujours demander des retours de la communauté). Ce serait vraiment super d'avoir plus de contenu francophone, et malgré les défauts du format vidéo (pas éditable, etc.), il faut reconnaître que le grand public préfère ce format à des blogs comme le mien.
Je vais lancer l'écriture demain. Je t'envoi un message privé sur matrix. Je ne parlerais pas que de GrapheneOS, se sera surtout une chaine sur l'hygiène numérique.
Paf legeek parle de sécurité sur smartphone dans sa dernière vidéo
Super vidéo.
J'ai regardé la vidéo jusqu'à ce qu'il raconte qu'il faut jeter les iphones à la poubelle parce-que icloud n'était pas sécurisé, et la je me suis dit c'est bizarre... J'ai donc téléchargé le pdf Apple Platform Security de mai 2022 qui contient 242 pages qui explique points par point la sécurité chez apple. Bah icloud est sécurisé ou plutôt chiffré... D'ailleurs j'ai jamais vue un tel document ailleurs. Ce gars fait donc de la désinformation et je ne peut donc pas me fier à lui pour le reste de la vidéo. Par contre wonderfall tu confirme qu'apple soit autant sécurisé ? Comme ça on dirait que c'est carrément inviolable leurs système, il y a bien des truc qui ne vont pas non? Je ne savais pas que la sécurité chez eux était poussé à ce point. Pour le pdf c'est ici
https://help.apple.com/pdf/security/en_US/apple-platform-security-guide.pdf
Pour iCloud, certains services sont chiffrés de bout-en-bout, mais pas tous : https://support.apple.com/en-us/HT202303
Ce PDF est en effet très informatif et je l'ai parcouru plusieurs fois en long et en large. C'est un peu la seule documentation officielle qu'on a sur la sécurité des systèmes Apple, le reste il faut suivre des reverse-engineers sur Twitter...
Aucun système n'est inviolable ! Mais iOS à jour sur un iPhone récent, c'est évidemment très robuste et ça a toujours été une de mes recommandations, juste derrière les Google Pixel notamment. Le talon d'Achille d'iOS selon moi est clairement Safari qui a une sécurité en-deça de Chromium, mais le mode lockdown d'iOS 16 réduit drastiquement sa surface d'attaque (en désactivant JIT et plein d'APIs, même les fonts de tierces parties). Ensuite, certains services systèmes n'ont pas la réputation d'être particulièrement bien protégés, je pense à iMessage par exemple même si Apple a fait un travail sur Blastdoor ces dernière années.
Pour moi le gros problème lié à iCloud ce sont ses services non-E2EE et particulièrement iCloud Backup qui nullifie la sécurité de données sensibles notamment les conversations E2EE d'iMessage qui ne sont plus vraiment E2EE... Bien sûr, un utilisateur consciencieux saura qu'il faudrait le désactiver, mais je crains que ce ne soit pas le cas de la majorité.
D'accord, merci pour la réponse. Je souhaiterais savoir, mes beau parents ont un iPhone x et je n'arrive pas à leurs configurer la messagerie signal comme messagerie par défaut, on peut faire ça ou pas? Je ne sais absolument pas comment fonctionne un iphone
Non, c'est pas vraiment possible. Sur Android c'est possible mais ça sera en tant que client SMS, car la version Android peut mélanger messages Signal et messages SMS. Ce qui est du mauvais goût, je pense, puisque les deux n'ont pas du tout les mêmes propriétés (les messages SMS ne sont évidemment pas chiffrés).
Donc au final ce n'est pas trop grave.
Salut tu viens de rajouter l'icône pour mettre ton sute en webapp ?
Je n'ai rien ajouté de mon côté, je me suis juste contenté de mettre à jour Ghost !
Salut. J'ai complétement arrêté de suivre le projet sur Matrix ou autre mais depuis Android 13 y'en a eu du changement sur GrapheneOS... C'est dépaysant ! Mais c'est bien
Salut, c'est pas logique les applications de grapheneos, je ne sais pas ce qu'ils ont bidouillé mais le minSDK est bien supérieur au targetSDK. J'ai lu ça sur twitter et je confirme. Pareil pour les applications du playstore qui ne sont pas mises à jour alors que sur froid elles le sont...
Ce n'est pas d'une grande importance, et le minsdk est bien modifié par rapport à AOSP.
Concerne une minorité d'applications; et parfois pour des raisons précises. Le développeur gère comment Play Store déploie ses mises à jour. F-Droid fonctionne par cycles (en priant que ça marche) et propose ses propres builds.
Par exemple F-Droid a raté le déploiement coordonné des mises à jour de sécurité pour Element, qui a eu lieu hier : https://matrix.org/blog/2022/09/28/upgrade-now-to-address-encryption-vulns-in-matrix-sdks-and-clients
Bonsoir, storage scopes n'est pas disponible dans AOSP?
Bonjour, malheureusement non !
Salut, hier j'ai remarqué que la localisation ne fonctionnait plus. Je ne sais pas si c'est dû à une mise à jour. Il est assez rare que je me sert de la localisation (la dernière fois c'était au mois d'avril et ça fonctionnait) donc ça fait peut-être un bout de temps qu'elle ne fonctionne plus. J'ai essayé dans Magic Earth, Organic Map et Google Map, mais aucune de ces applications ne réussi à me localiser. J'ai essayé avec et sans la fonction "Reroute location to the os" du Sandboxed Google Play, mais ça ne fonctionne pas. Quelqu'un à le même problème?
Bonjour, désolé de l'entendre. Il faut savoir que contrairement à stock Android et iOS, il n'y a pas de localisation grâce aux réseaux Wi-Fi/Bluetooth, qui est en général très rapide mais nécessite un service propriétaire (Play services pour Android).
GrapheneOS utilise donc le GPS/GNSS classique pour la localisation. Le problème du GPS c'est que sa rapidité à verrouiller les satellites est extrêmement dépendante des conditions et selon l'état du ciel (en extérieur + ciel dégagé = conditions idéales). Si vous êtes en intérieur, cela peut même prendre jusqu'à plusieurs minutes et vous ne pouvez rien y faire.
Soit vous vous adaptez à cette gêne, soit vous pouvez activer la fonctionnalité de scan réseaux via les Play services pour avoir une localisation rapide. Pour ce faire il faut activer l'API des Play services pour la localisation (et lui donner accès à la permission du même nom), activer le service de "localisation améliorée/précise" ainsi que dans les paramètres OS (Paramètres > Localisation > Services de localisation) le Wi-Fi et Bluetooth scanning.
Merci beaucoup, ça fonctionne avec les Play Service en activant la "localisation améliorée/précise".
Pas de problèmes pour moi.
PS: l'antenne GPS est peut être défaillante
Salut, c'est quoi le problème avec le bootloader ouvert sur lineageos ? Si tout le smartphone est chiffré, selinux activé il ne devrait pas y avoir de problèmes ? Je suis sur lineageos depuis plusieurs années et je suis en train de découvrir Grapheneos et une vidéo de nowtech qui traite de la degooglisation à l'instant.
Un bootloader déverrouillé signifie qu'un attaquant en possession du smartphone peut facilement flasher, par exemple, des partition/firmware contenant du code malicieux. On parlera dans le jargon de bootkits ou de rootkits. Quand bien même les données utilisateur seraient chiffrées, c'est une surface d'attaque non-négligeable.
Par extension, un bootloader déverrouillé signifie qu'Android moderne ne peut suivre son workflow de démarrage sécurisé (impliquant ce qu'on appelle verified boot). Ce workflow permet de s'assurer que les partitions accédées (firmware et système) sont signées et de confiance (via une chaîne de confiance), ce qui rentre en contradiction avec le fait d'avoir un bootloader déverrouilé. Verrouiller/déverrouiler le bootloader "purge" les données essentiellement pour cette raison (notamment aussi parce que l'état du bootloader est un facteur de dérivation en soi).
Cette vérification d'intégrité n'est pas seulement utile pour des attaques physiques mais pour toute forme d'attaque impliquant un niveau de persistance.
Merci pour votre réponse. Je comprend bien mais concrètement une personne pourrait accédé à mes données? Un attaquant peut installer un rootkit même si j'ai désactivé le débogage USB?
1) Bien plus facilement qu'avec un bootloader verrouillé avec verified boot
2) Oui, adb est juste une surface d'attaque supplémentaire, mais pas la seule
OK, bon bâ je vais me commander un pixel 6a et y installer grapheneos alors
Salut ça va? Dit j'ai un problème avec mon pixel 6a que j'ai acheté ce matin à la Fnac, le bootloader ne peut pas être déverrouiller alors que j'ai bien un modèle normal. Tu aurais une astuce ? Merci
Tu veux dire que le "OEM unlocking" est grisé ? Et l'appareil est bien à jour ?
Salut, fausse alerte désolé, il resté une petite mise à jour... Quand même, vendre un pixel 6a encore sur Android 12... J'en ai eu pour 6h de mise à jour mais c'est enfin bon. J'ai installé Grapheneos avec le web installer et ça fonctionne vraiment très bien. Une mise à jour par jour je ne sais pas à quoi ils carburent les dev.
Bonjour super acticle. Il y a beaucoup de choses à dire sur cet OS...
Salut wonderfall, tu as lu le dernier article concernant la dégooglisation ? https://www.lemonde.fr/pixels/article/2022/11/12/un-smartphone-android-sans-google-c-est-possible-qu-en-pensent-les-utilisateurs_6149559_4408996.html
Ça t'intéresse qu'on s'associe pour expliquer aux gens qu'il existe une solution simple à installer et simple à utiliser ? Je vais sortir une vidéo dans la nuit pour expliquer mon choix personnel d'utiliser cet OS mais je ferais d'autres vidéo pour rentrer plus dans le détail je pense
Ce que j'en retient de leur article c'est que prendre des mesures pour la vie privée c'est compliqué et ça fonctionne pas bien... Mais c'est faux
Yes, j'ai même été interviewé tout ça pour que ça donne le résultat final...
Détails ici : https://mastoid.dev/@wonderfall/109330757153435620
https://youtu.be/7PNjowbCGI4
Tu en pense quoi?
Très bien ! Attention à la typo dans le titre sinon, mais rien à redire.
Je l'ai tourné un peu à la va-vite. Je vais en faire une autre cette nuit pour parler des améliorations bien visibles qui agissent directement pour la vie privée comme storage scopes ou les Sandbox play services... Je ne suis pas fort en écriture. L'objectif est de parler aux gens qui n'y connaissent rien en sécurité.
Comment ça la typo?
J'étais sûr d'avoir vu "GapheneOS" mais ça a peut-être été corrigé ou j'ai mal vu !
C'est possible, j'ai changé le titre
Tout d'abord, merci à vous pour cette série d'articles sur GrapheneOS. J'ai tout lu, pris des notes et j'ai sauté le pas ; je viens de l'installer sur le 6a, fraîchement acheté à 350€ au Black Friday. Je pense à un truc, vous est-il possible de créer un article récapitulatif pour les nouveaux arrivants ? Surtout les bonnes pratiques, les apps conseillés...
Bravo d'avoir sauté le pas ! J'espère que ça va vous plaire. Sinon c'est possible, mais ça demande de grandes responsabilités. En attendant, peut-être que les articles de https://privsec.dev/ peuvent vous donner des pistes supplémentaires en complément du site officiel de GrapheneOS ?
Vous trouverez peut être votre bonheur dans cette vidéo https://youtu.be/ns4LclTx09I
J'ai recommencé la vidéo... https://youtu.be/_8U3d1qmJag
Je me suis permis de rajouter ton site dans la description, pour moi il est d'utilité Publique
Désolé de t'avoir fait perdre ton temps avec mon lien, je n'ai pas pu téléchargé la vidéo sur youtube. Par contre la c'est la bonne, il y a une coquille dans la vidéo mais je le laisse quand même. https://youtu.be/ns4LclTx09I J'ai rendu hommage à ton blog! Bonne soirée
Je vais jeter un coup d'oeil, bravo pour ton travail !
Salut, c'est quoi le badness énumération? C'est quand on dit par exemple j'utilise firefox parce-que chrome vole mes données ?
L'énumération du mal en gros c'est-à-dire "je bloque A et B donc je suis safe", alors qu'un acteur C qui a échappé à ce blocage (pour diverses raisons) pourrait être tout aussi dangereux. C'est une approche qui par définition n'est pas infaillible. Elle est souvent perçue comme "rassurante", mais c'est ce qu'elle est tout au plus.
L'approche opposée est l'énumération du bien, autrement dit la liste blanche de tous les acteurs de confiance. C'est déjà une approche plus robuste.
Dans le meilleur des mondes l'idée est de ne faire confiance à aucun acteur et de leur octroyer le minimum de permissions invasives possibles.
OK merci pour la réponse. Ta remarquer que le capteur d'empreinte fonctionne beaucoup mieux sur le pixel 6 depuis la mise a jour du 07/12 ?
Vous parlez de la mise à jour basée sur Android 13 QPR1? C'est entièrement possible, j'avais déjà l'impression que c'était un poil mieux depuis Android 13.
Depuis cette MAJ https://grapheneos.org/releases#2022120600 . Je n'ai plus du tout de problème de capteur d'empreinte, si ils ont réécrit le code du capteur d'empreinte ca m'étonne que personne ne l'ai remarqué !
Il est écrit Pixel "6, Pixel 6 Pro, Pixel 6a, Pixel 7, Pixel 7 Pro: rewrite under display fingerprint scanner integration"
En fait ce code a dû être réécrit car c'est une sorte de "colle" qui manque à AOSP pour faire fonctionner le capteur. J'avais moi-même jeté un coup d'oeil quand j'ai voulu aidé à debug le problème avec le taux de rafraîchissement (utiliser le capteur revient à bloquer le taux de rafraîchissement au maximum, mais en permanence dans ce bug corrigé depuis longtemps et qui n'a jamais affecté la branche stable).
C'est un code qui est très simple mais qui doit être mis à jour de temps à autre, comme ici lors du passage à Android 13 QRP1. Il est surtout probable que le firmware du capteur d'empreinte a été amélioré par Google.
Mais dans tous les cas, c'est positif. :)
C'est clair que c'était positif, pour moi c'est maintenant un plaisir d'utiliser le smartphone.
Salut, tu n'a plus ton article sur fdroid?
Salut, non j'ai décidé de le retirer : https://mastoid.dev/@wonderfall/109484347296835659
Il était trop souvent mal interprété et je passais trop de temps à défendre mes intentions (ce qui ne m'intéressait pas, je préfère parler de fond), temps qui m'aurait été précieux pour d'autres choses...
En revanche, l'article sera toujours publié et maintenu par PrivSec, un collectif d'auteurs dont je fais actuellement partie : https://privsec.dev/posts/android/f-droid-security-issues/
Il sera ainsi plus simple de maintenir l'article, et ce sera émotionnellement moins lourd que de porter le fardeau tout seul.
Voilà, en espérant que l'explication fut claire !
Oui et bien je trouve que c'est une erreur de l'avoir retiré. Bonne soirée
Mais je comprend ! j'espère que tes problèmes de santé ne sont pas grave
Un français en a parlé dans cette vidéo https://m.youtube.com/watch?v=RcGPgQx7c54