2 votes

Existe-t-il un moyen de changer la source de l'application sur Android ?

J'ai migré du Oneplus 3 (téléphone Android chinois) vers le Galaxy Note 8 via Cloneit, car l'outil de migration de Samsung n'était pas compatible avec le Oneplus 3.

Cependant, les applications migrées (ou mieux, clonées) sur mon nouveau téléphone sont reconnues comme "application installée à partir d'une source inconnue" au lieu de "installée à partir de Google Play".

Il semble que Cloneit, l'outil de migration, a apporté tous les fichiers apk via la connexion et cela fait que toutes les applications sont reconnues comme source inconnue.

* Donc, je veux changer leur propriété de source d'inconnu à installé à partir de Google Play. *

Ma spéculation est plutôt pessimiste car il semble que cela soit lié à des problèmes de sécurité mais j'espère qu'un super utilisateur a une réponse à cette question.

Merci.

3voto

Guillermo Gomez Points 423

La solution est aussi simple que quelques commandes de (s)enfer. Nécessite Root et BusyBox.

Ouvrez un terminal ou un adb shell et le type

su
sed -i 's/installer="[A-Za-z0-9._-]*"/installer="com.android.vending"/g' /data/system/packages.xml

Si l'invite de commande vous dit sed: not found installez BusyBox correctement et ajoutez busybox antes de sed .


Sachez qu'il s'agit d'une action très dangereuse. Elle est fortement Il est recommandé de sauvegarder le fichier avant de tenter de le modifier. Dans certains cas, les droits d'accès aux fichiers peuvent être modifiés.

chmod 0660 /data/system/packages.list
chown 1000.1000 /data/system/packages.list

1voto

Firelord Points 23064

Cette première méthode est définitivement fastidieuse mais évite la nécessité d'un accès racine . Vous devez trouver votre application dans le Play Store et appuyer sur le bouton de mise à jour. Une fois la mise à jour effectuée via le Play Store, le système traitera cette application comme si elle avait été installée à partir du Play Store à l'origine.

Il est certain que si vous avez une longue liste d'applications, vous vous fatiguerez. De plus, si aucune mise à jour n'est disponible, vous devrez peut-être désinstaller et réinstaller l'application concernée depuis le Play Store. Mais cela peut entraîner la perte des données de l'application, alors pesez bien vos options.

Si vous avez accès à Root et veut éviter de s'embrouiller avec paquets.xml essayez cette commande :

adb shell su user_ID -c 'pm set-installer PACKAGE com.android.vending'

où :

  • ID utilisateur ID utilisateur de l'application Play Store.
  • PACKAGE nom du paquet de l'application dont l'installateur source doit être modifié

Vous pouvez récupérer le user_ID du Play Store par cette commande :

adb shell su -c 'grep "com.android.vending" /data/system/packages.list'

La chaîne numérique entre com.Android.vending et 0 est le user_ID. Par exemple

com.android.vending **10024** 0 /data/data/com.android.vending default 3003

Quant à la recherche du nom du paquet, vous pouvez utiliser Détective d'applications pour trouver toutes les applications chargées en parallèle. Alternativement, vous pouvez trier la sortie de cette commande :

adb shell pm list packages -3 -i

Ignorez toutes les lignes se terminant par installer=com.Android.vending . Le reste indique les paquets non installés depuis le Play Store.

Vous pouvez configurer un script pour automatiser la deuxième méthode.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X