GooglePlayDownloader : télécharger les APK sans rien demander à Google

Posté par  (site web personnel) . Édité par Nils Ratusznik, rootix, palm123, Pierre Jarillon, ZeroHeure et Bruno Michel. Modéré par patrick_g. Licence CC By‑SA.
42
20
août
2013
Android

Comme vous le savez, en ce moment, plus personne ne peut continuer à croire le slogan "don't be evil" de Google alors qu'il est l'instrument principal du fichage des citoyens du monde entier ! Et la NSA avoue l'utiliser bien volontiers.

Peut-on s'affranchir de cette surveillance abusive sans perdre de fonctionnalités ? Il semble bien que oui.
Voici le témoignage d'un utilisateur de logiciels libres sur son téléphone Android (merci Cyanogenmod).

NdM: voir aussi À quand les smartphones et tablettes libres ?

J'espère donc bien ne pas laisser Google enregistrer ma vie dans ses serveurs.

Cependant c'était mal parti, car bon nombre d'applications Android ne sont distribuées que par le Google Play store. Je ne sais pas pourquoi les éditeurs ne donnent pas la possibilité de télécharger un APK depuis leur site directement. Car, pour télécharger depuis le Google Play store, il faut :

  • installer les Googleapps sur son téléphone. Ces applications ne sont pas comme les autres, elles remplacent des services systèmes par des trucs obscurs, communiquent en permanence avec Google (merci le flicage) et ont les pleins droits sur votre système (on a déjà vu le truc désinstaller une application à votre insu) ;
  • s'identifier avec un compte Google. Il faut présenter patte blanche et donner un ID Google pour télécharger la moindre application. Pourquoi cette surveillance ?

Bref, pour jouer à Angry Birds, vous devez accepter de mettre une sonde dans votre téléphone. Joli, non?

J'ai donc cherché un moyen de télécharger les applications autrement. J'ai trouvé Real APK Leecher mais plusieurs points sont rédhibitoires :

  • c'est du Java ;
  • il faut les identifiants provenant d'un compte Google installé sur un smartphone : justement ce que je veux éviter ;
  • c'est fait par on ne sait qui en Asie.

Récemment, j'ai vu qu'Emilien Girault avait créé une API python pour se connecter au GooglePlay. Ca marche mais la complexité de la ligne de commande n'est pas à la portée de tous. J'ai donc créé une interface graphique se voulant pratique, dont voici le résultat :

Titre de l'image

On cherche, on télécharge. Rien de plus simple. Si vous avez déja des fichiers APK sur votre disque (de n'importe quelle origine), le logiciel peut les inspecter et aller chercher tout seul les dernières versions.

Voici le lien pour télécharger GooglePlayDownloader 0.1.

C'est codé en python exclusivement. Sur ma Debian, les dépendances sont :

  • python 2.7 ;
  • wxpython ;
  • python-protobuf.

Ca se lance en python par la commande :
$python googleplaydownloader.py

Le code source du projet se trouve sur Codingteam est sous licence libre (AGPL pour la GUI, les autres libs python sont sous licence BSD et LGPL) .

Si ca intéresse d'autres personnes que moi, je rajouterais des préférences pour choisir la langue des APKs téléchargées (actuellement "fr"), modifier les identifiants Google actuellement hardcodés, et essaierai de faire un package .deb.

Et n'oubliez pas que le mieux est, si possible, de n'utiliser que les applis libres du magasin d'applications libres F-Droid.

Aller plus loin

  • # 2 questions

    Posté par  . Évalué à 2.

    1/ A quoi correspondent les identifiants utilisés ? ce sont les mêmes que ceux utilisés par le système de google ?
    si c'est le cas en quoi cela empêche google de savoir ce que tu utilises comme outils (sauf à tout faire un miroir local et choisir ensuite)

    2/ y a t il une possibilité d'installer et d'utiliser cela sur l'appareil android directement ?

    Je n'utilise pas d'appareil android, mais ca va me motiver pour installer cyanogenmod sur ceux de mes proches: jusque là, j'étais freiné par l'installation obligatoire des google apps pour avoir acces au magasin de google

    • [^] # Re: 2 questions

      Posté par  . Évalué à 7.

      sur ton blog tu réponds à ma question 1: il faut les identifiants générés lors de l'installation des google apps !
      du coup, à moins d'avoir loupé un truc, ça semble perdre un peu de son intérêt…

      • [^] # Re: 2 questions

        Posté par  . Évalué à 8.

        Salut,

        Je ne sais pas si c'est volontaire ou pas mais on trouve vos identifiants dans le code source de l'application. Il semble qu'ils soient valide.

        https://codingteam.net/project/googleplaydownloader/browse/googleplaydownloader.py

        • [^] # Re: 2 questions

          Posté par  . Évalué à 1.

          il faut lire les petites lignes:

          modifier les identifiants Google actuellement hardcodés

          • [^] # Re: 2 questions

            Posté par  (site web personnel) . Évalué à 6.

            il faut lire les petites lignes:

            Comme tu dis… la partie intéressante du texte du commentaire auquel tu réponds est : "Il semble qu'ils soient valide".

          • [^] # Re: 2 questions

            Posté par  . Évalué à 1.

            Le fait qu'il faille les modifier est une chose, mais le fait que les informations par défaut soit un compte Gmail (qui il me semble est valide) peut faire penser à un oublie.

            • [^] # Re: 2 questions

              Posté par  . Évalué à 3.

              en cherchant un petit peu, il semble que ce soit fait exprès: le compte semble avoir été créé pour l'occasion

              http://tuxicoman.jesuislibre.net/2013/07/real-apk-leecher-telecharger-les-apk-du-google-play.html

              • [^] # Re: 2 questions

                Posté par  (site web personnel) . Évalué à 1.

                Oui mais ça limite l'intérêt du logiciel… Au final il faut toujours un compte Google pour télécharger sur le Play store. (Plus ou moins logique).

                • [^] # Re: 2 questions

                  Posté par  (site web personnel) . Évalué à 3.

                  Bah non car ce n'est pas ton adresse personnelle, c'est un compte factice relié à des IPs différentes pour télécharger des contenus de plusieurs personnes mélangées.

                  Déjà il faudrait voir si cela respecte les conditions d'utilisation de Google, qui pourrait supprimer le dit compte…

                  Cependant, pourquoi ne pas créer un compte GMail faux pour Android ? Cela limite le regroupement des données notamment entre fixe et mobile.

                  • [^] # Re: 2 questions

                    Posté par  . Évalué à 3.

                    pourquoi ne pas créer un compte GMail faux pour Android ?

                    Qu'est-ce qu'un « faux » compte ? Ils veulent faire des statistiques et du pistage, si tu as un compte associé à l'appareil c'est tout ce dont ils ont besoin. Certes tu leur donnes moins d'informations que la moyenne des gens, mais justement tu les aides à mieux cerner cette frange de leur population d'utilisateurs.

                    • [^] # Re: 2 questions

                      Posté par  (site web personnel) . Évalué à 4.

                      Mais est-ce un problème que Google ait accès seulement à des données comme les applications installées ?
                      Le problème de Google tient surtout dans le fait qu'ils peuvent recouper des informations très personnelles et très vastes : réseau social, courriel, recherches sur Internet, géolocalisation et d'autres. Le danger est essentiellement à ça, si tu crains Googlecar ils ont uniquement ta liste d'application installé, ne t'inscrit sur aucun site web dont linuxfr ou autre car tu as des données sans doute plus sensibles dessus !

                      Là on parle du cas où tu n'as pour seule service Google sur ton téléphone Google Play car c'est le but de cette application, s'en passer.

                • [^] # Re: 2 questions

                  Posté par  . Évalué à 3. Dernière modification le 20 août 2013 à 17:23.

                  c'est ce que je dis plus haut …

                  l'utilisation possible nécessiterait une première installation avec les google apps pour récupérer les identifiants, puis une réinstallation de cynaogenmod (ou tout autre système de base de votre choix) sans les google apps et utilisation de ce soft pour installer des applications.

                  Meme si google peut toujours savoir ce que tu utilises comme applications, on améliore la situation initiale en empêchant la modification du système par les google apps.

                  Ca me semble une évolution positive sur laquelle pourraient se greffer d'autres améliorations.

                • [^] # Re: 2 questions

                  Posté par  (site web personnel) . Évalué à 2.

                  Ben non, du coup c'est un compte poubelle, non lié à ton smartphone (qui n'a pas à avoir GoogleApps).
                  Je cite :
                  "on peut donc profiter des applications distribuées uniquement par le Google Play sans installer toute la panoplie de spywares que constitue les GoogleApps sur son smartphone Android sous Cyanogen."

                  Par contre, ça viole les TOS de Google donc il risque de ne pas rester longtemps… Chacun doit se créer son compte poubelle.

                  • [^] # Re: 2 questions

                    Posté par  . Évalué à 2.

                    Par contre, ça viole les TOS de Google donc il risque de ne pas rester longtemps… Chacun doit se créer son compte poubelle.

                    A partir du moment où le compte t'appartient, quel est l’intérêt de mettre un compte poubelle ? Eviter de se faire fermer son compte favori parce que les TOS de Google n'ont pas été respectées ?

                    • [^] # Re: 2 questions

                      Posté par  (site web personnel) . Évalué à 2.

                      Ouais enfin, si Google sait juste les applications que tu as installé et avec quel IP tu l'as fait, autant dire qu'il ne sait pas grand chose sur ta personne (et s'ils ne savaient que ça pour tout leurs comptes GMail, personnellement je ne serais pas inquiet car c'est bien une donnée mineure).

                  • [^] # Re: 2 questions

                    Posté par  (site web personnel) . Évalué à 7.

                    Oui chaque user enfreint les TOS de Google pour la simple raison qu'il n'utilise pas l'interface de Google pour se connecter à leur service. Ce qui veut dire en clair que Google n'autorise pas le hacking, ce qui est quand même la base de l'informatique.

                    https://www.google.com/policies/terms/

                    Don’t misuse our Services. For example, don’t interfere with our Services or try to access them using a method other than the interface and the instructions that we provide. You may use our Services only as permitted by law, including applicable export and re-export control laws and regulations. We may suspend or stop providing our Services to you if you do not comply with our terms or policies or if we are investigating suspected misconduct.

              • [^] # Re: 2 questions

                Posté par  . Évalué à 2. Dernière modification le 20 août 2013 à 17:17.

                Dans se cas là, mea culpa :)

                Cependant, Google risque de bloquer le compte assez rapidement.

                • [^] # Re: 2 questions

                  Posté par  . Évalué à 4.

                  Cependant, Google risque de bloquer le compte assez rapidement.

                  Si je comprends bien, c'est déjà fait…

                  ext_libs.googleplay_api.googleplay.LoginError: u'server says: BadAuthentication'

    • [^] # Re: 2 questions

      Posté par  (site web personnel) . Évalué à 3. Dernière modification le 20 août 2013 à 19:13.

      Alors pour répondre à ta première question :
      Pour télécharger des APKs sur le play store, il faut des identifiants :
      1.adresse mail Google (@gmail.com)
      2.mot de passe de l'adresse mail,
      3.ID qui correspond à une installation. Je suppose que c'est pour compter les installation ou savoir quels sont les appareils rattachés au même compte.

      Pour avoir le 1 et 2, c'est facile à faire depuis le site web de Google. Mais pour avoir le 3, tu dois installer les GoogleApps sur un smartphone. Si tu prévois de wiper la mémoire de ton smartphone, tu peux effectivement, installer Cyanogen, installer les GoogleApps, créer un faux compte Google, récupérer les 3 infos, et rewiper ton smartphone.

      Mais bon avoue, c'est compliqué, chiant à faire et tu fais comment si tu as déja plein de données sur ton smartphone, que tu ne veux pas wiper et que tu ne veux pas justement pas installer les GoogleApps?

      Donc je fourni des identifiants dans le code que j'ai créés selon la méthode ci-dessus. Tout le monde peut l'utiliser, je m'en fous. C'est d'autant mieux que, puisque tout le monde utilise le même compte pour télécharger les APKs, Google ne peut même plus savoir qui installe quoi.

      Si Google bloque ce compte, il suffira de passer quelques heures à créer un floppée de nouveaux comptes et à se les partager. Ca rendra juste l'utilisation de mon logiciel un peu plus compliquée puisqu'il faudra aussi trouver ces données (ou faire la manip citée plus haut pour les créer soi même)

      • [^] # Re: 2 questions

        Posté par  (site web personnel) . Évalué à 2.

        Si Google bloque ce compte, il suffira de passer quelques heures à créer un floppée de nouveaux comptes et à se les partager.

        oui, donc en gros, il faut prier pour que l'appli n'ai aucun succès, sinon tu es puni et ne peut plus utiliser l'appli.
        C'est une appli à utilisabilité limité dans le temps, avec temps aléatoire, on rajoute au jeu une petite roulette.
        C'est une façon de voir, pas habituelle mais pourquoi pas. chacun son fun!


        surtout, ça limite grandement l'utilité du programme, par design. Dommage.

        • [^] # Re: 2 questions

          Posté par  . Évalué à 2. Dernière modification le 20 août 2013 à 20:47.

          Juste pour être sûr d'avoir bien compris. Si quelqu'un télécharge une application sur google play, cette personne ne pourra plus l'utiliser si le compte google utilisé lors du téléchargement est bloqué ou fermé ?

          (je n'ai pas de smartphone)

          • [^] # Re: 2 questions

            Posté par  . Évalué à 2.

            Ça fait juste qu'il ne peux plus télécharger…

            Écrit en Bépo selon l’orthographe de 1990

        • [^] # Re: 2 questions

          Posté par  (site web personnel) . Évalué à 2.

          surtout, ça limite grandement l'utilité du programme, par design.

          surtout, ce design est imposé par google : c'est lui qui a décidé que l'on ne pouvait pas télécharger sur leurs serveurs les applications , même gratuites, sans utiliser un compte gmail.

          Bon après, c'est leurs serveurs, ils en font ce qu'ils veulent. Mais je pense que les dev devraient penser à proposer aussi leurs applications en libre téléchargement sur d'autres sites internet.

          « I approve of any development that makes it more difficult for governments and criminals to monopolize the use of force. » Eric Raymond

  • # "c'est fait par on ne sait qui en Asie."

    Posté par  . Évalué à 10.

    C'est clair qu'un truc fait par on ne sait qui en Europe, c'est beaucoup mieux !

  • # Ça utilise un compte pour télécharger tout ça

    Posté par  . Évalué à 2.

    Question : l'appli en question utilise-t-elle un compte utilisateur générique collectif pour télécharger les applis ou est-il possible au final de les télécharger réellement sans aucune authentification ? L'évolution logique du truc serait… une appli Android… :)

  • # Pourquoi une application desktop ?

    Posté par  (site web personnel) . Évalué à 3.

    Pourquoi avoir fait une application pour desktop qui t'oblige ensuite a basculer à la main tes apks sur ton Android quand tu aurais pu faire une application Android (à la manière d'un F-Droid) ?

  • # Imparable

    Posté par  . Évalué à 6.

    mais plusieurs points sont rédhibitoires : c'est du Java ;

    Donc en gros être en Java est rédhibitoire pour une application dont le but est d'installer des applications Java. Ca me semble aussi logique qu'imparable !

    • [^] # Re: Imparable

      Posté par  (site web personnel) . Évalué à 2.

      Je vois pas le rapport. Mon gestionnaire de paquet est en python mais installe des programmes en C, C++, Java, Perl, Ruby, etc.

      Il existe deux catégories de gens : ceux qui divisent les gens en deux catégories et les autres.

  • # Java ?

    Posté par  (site web personnel) . Évalué à 7.

    c'est du Java ;

    Il va être temps de mettre de coté les mesquineries si on veut avancer. Java est ici depuis longtemps et pour longtemps. La logithèque java est immense et l'ignorer par principe, c'est comme refuser que dieu joue aux dés par principe, c'est passer à coté de beaucoup de choses.

    Java est disponible en opensource, java est aussi performant qu'on peut l'espérer et ce ne sont que les développeurs qui font la différence. Un bon développeur peut faire un bon programme en java.

    Aujourd'hui il y a du bon et du mauvais dans tous les langages, donc le langage utilisé n'est pas un argument de choix.

    • [^] # Re: Java ?

      Posté par  . Évalué à 10.

      C'est pas faux mais en même temps ça reste du Java …

    • [^] # Re: Java ?

      Posté par  . Évalué à 7.

      Un tas de trucs sont très bien implantés et seront là pour très longtemps.

      Ce n'est pas parce qu'une techno est populaire qu'il n'a pas le droit de ne pas l'aimer, même si c'est Java.

  • # Générer un ID android

    Posté par  . Évalué à 1.

    http://forum.xda-developers.com/showpost.php?p=42983611&postcount=306 héhé

    oké il faut encore un compte google mais pas besoin de s'emmerder avec toute la procédure d'install des gapps !

    ( du projet NOGAPPS d'ailleurs :) )

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.