9 votes

Déclencher l'assistant de configuration au prochain démarrage en utilisant la ligne de commande

Je cherche un moyen d'utiliser ADB pour déclencher l'assistant de configuration au prochain démarrage. Je sais que je peux exécuter la commande suivante et le faire apparaître. Cependant, je n'arrive pas à trouver ce qui déclenche son lancement au démarrage.

adb shell am start -a android.intent.action.MAIN -n com.google.android.setupwizard/.SetupWizardTestActivity

Le téléphone que j'utilise actuellement est stock et j'aimerais que ça reste ainsi.

J'ai lu la question : comment réactiver la première installation au prochain démarrage ?

6voto

Firelord Points 23064

Note : Cette solution :

  • nécessite un Android enraciné ;
  • est testé sur Android 4.4.2, Vanir (Android 5.1.1) et sur une version non officielle de CM13 ;
  • nécessite adb dans le PC.

Voici quelques captures d'écran qui servent de preuve :

(Cliquez sur l'image pour l'agrandir)

IMG: IMG: IMG:

Note que vous ne pouvez pas reproduire ces images en lançant cette commande shell, car l'activité de test que vous exécuteriez cacherait toutes les icônes à gauche de la barre d'état et même l'heure dans ma ROM.

IMG:

Voici les instructions que j'ai suivies :

  1. Trouvez les composants handicapés. Faites-le :

    adb shell dumpsys PACKAGE  

    Remplacer PACKAGE avec le nom du paquet de l'application Setup Wizard. Souvent, il s'agit d'un assistant d'installation de Google dont le nom de package est com.google.android.setupwizard . Le nom du paquet de l'assistant d'installation de CyanogenMod est com.cyanogenmod.setupwizard . Si GApps est installé, utilisez le nom du paquet de l'assistant d'installation de Google. Si aucun des noms de paquets ne fonctionne, cette ressource peut vous aider : Afficher le nom complet du paquet de l'application ?

    Cette étape entre autres m'a fourni une liste des composants de cette application actuellement désactivés. Voici un extrait pertinent sous le titre Packages: à partir de la sortie de ladite commande :

    User 0: installed=true hidden=false stopped=false notLaunched=false enabled=0
      disabledComponents:
      com.google.android.setupwizard.account.RestoreServicee
      com.google.android.setupwizard.carrier.MobileDataActivity$HfaChangeReceiver
      com.google.android.setupwizard.util.SetupWizardAdminReceiver
      com.google.android.setupwizard.SetupWizardActivity
      com.google.android.setupwizard.util.GservicesChangedReceiver
      com.google.android.setupwizard.carrier.MobileConnectivityChangeReceiver

    com.google.android.setupwizard.SetupWizardActivity est l'activité principale et par défaut de cette application. Bien que l'application ait demandé l'autorisation android.permission.RECEIVE_BOOT_COMPLETED étrangement, il n'y a pas de récepteur déclaré dans le manifeste pour recevoir android.intent.action.BOOT_COMPLETED diffusion. Mon avis est que la propriété user_setup_complete seul est utilisé dans le but de lancer cette application.

  2. Quels que soient les composants désactivés indiqués dans la sortie de votre commande pour l'utilisateur 0, il suffit de les activer tous pour le même utilisateur. Le moyen le plus simple est d'utiliser pm commandement.

    adb shell
    su
    pm enable PACKAGE/COMPONENT

    Un exemple pour activer un composant :

    pm enable com.google.android.setupwizard/com.google.android.setupwizard.carrier.MobileDataActivity\\$HfaChangeReceiver

    Nota: Je ne comprends pas bien pourquoi mais lorsque j'ai essayé d'activer les composants à l'aide d'une application (disons X), ils ont été désactivés automatiquement dès que j'ai quitté l'application X. Je vous recommande donc d'activer les composants en utilisant la ligne de commande et de vous abstenir à tout prix d'interagir avec l'écran.

  3. Obtenez le nom de la propriété :

    adb shell 'content query --uri content://settings/global | grep -e "setup" -e "complete"'
    adb shell 'content query --uri content://settings/secure | grep -e "setup" -e "complete"'
    adb shell 'content query --uri content://settings/system | grep -e "setup" -e "complete"'

    L'une des commandes doit retourner une sortie contenant soit la clé user_setup_complete ou, comme Andrew T. noté , setup_wizard_has_run .

    Une fois que vous avez la clé, faites :

    adb shell settings put secure KEY 0  # replace KEY with the key noted above.
  4. Faites adb reboot pour un redémarrage complet ou adb shell su -c 'setprop ctl.restart zygote' pour un soft-reboot ou un redémarrage ordinaire comme vous le feriez et vous aurez l'application Setup Wizard qui vous attendra pour une interaction après le redémarrage.

6voto

william ho Points 51

En complément de la réponse de Christopher

settings put global device_provisioned 0

Désactive certaines des fonctionnalités du téléphone et sera déverrouillé après l'assistant de configuration.

adb shell settings put global setup_wizard_has_run 1

adb shell settings put secure user_setup_complete 1

adb shell settings put global device_provisioned 1

Déverrouille toutes les fonctions du téléphone pour autant que je sache, et vice versa.

Juste au cas où quelqu'un aurait besoin de ces informations

4voto

Christopher Points 31

Le script shell suivant déclenchera l'assistant de configuration de Google :

#!/bin/bash

adb root
adb remount

adb shell settings put global setup_wizard_has_run 0

adb shell settings put secure user_setup_complete 0

adb shell 'content query --uri content://settings/global | grep -e "setup" -e "complete"'
adb shell 'content query --uri content://settings/secure | grep -e "setup" -e "complete"'
adb shell 'content query --uri content://settings/system | grep -e "setup" -e "complete"'

adb shell pm enable com.google.android.setupwizard/.SetupWizardActivity

adb shell am start -n com.google.android.setupwizard/.SetupWizardActivity

4voto

Jared Rummler Points 121

La commande suivante a fonctionné pour moi sin Accès à la racine :

adb shell am start -a android.intent.action.MAIN -n com.google.android.setupwizard/.deferred.DeferredSetupWizardActivity

2voto

Steve Points 11

J'ai eu le même problème avec mon nouveau Pixel 2 XL. J'avais utilisé Nova Launcher pour créer un widget "activités" pour lancer des applications système auparavant et bien sûr, Pixel Setup était dans la liste, alors j'ai ajouté ce widget/bouton et il a démarré et m'a proposé de restaurer à partir d'une sauvegarde dans le cloud, etc.

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