1 votes

Configuration de plusieurs tablettes à partir de la boîte

J'ai la tâche de configurer plus de 50 tablettes (Binatone Homesurf 744, Yes cheap & cheerful !), qui ont toutes besoin de la même application installée et des mêmes paramètres sans fil entrés, mais nécessitent des fichiers de configuration différents (fichiers de configuration stockés sur la carte SD).

J'espérais qu'il y aurait une solution pour que je puisse configurer chacune des tablettes via ADB ou un script. sans Accès à la racine si possible (car cela constituerait une étape supplémentaire et prendrait plus de temps). Jusqu'à présent, les tablettes sont sorties de l'emballage avec le mode de débogage déjà activé. Si j'accède à la tablette via ADB et que je tape "su", cela me donne une sorte d'accès Root car le symbole passe de "$" à "#" mais je suis incapable de remonter le /system a rw.

Le processus que j'aimerais suivre est le suivant :.

  • Démarrez la tablette et branchez-la au PC via le câble USB pour l'accès ADB.
  • Désactiver/sauter automatiquement l'écran "Bienvenue" (Assistant de configuration initiale)
  • Installer les paramètres sans fil
  • Installer l'APK requis
  • Pousser les fichiers de configuration requis
  • Redémarrez la tablette si nécessaire

Je pense que j'ai peut-être répondu à la question sur l'invalidation \skipping l'écran de "bienvenue" après quelques recherches. Je crois que cela nécessite un accès complet Root ou rw pour modifier les fichiers système (ro.setupwizard.mode=DISABLED, je crois ?).

En ce qui concerne les paramètres sans fil, je suis en mesure d'ajouter les paramètres sans fil manuellement dans le shell ADB via la commande suivante après être passé à l'utilisateur "wifi" (en émettant "su wifi"):-

echo 'network={\nssid="Wireless"\npsk="i*********m"\nkey_mgmt=WPA-PSK\npriority=1\n}' >> /data/misc/wifi/wpa_supplicant.conf

Après avoir redémarré la connexion sans fil via ADB, la tablette se connecte sans problème à la nouvelle connexion sans fil.

Je peux installer l'APK requis et "pousser" les fichiers de configuration nécessaires manuellement ou via un script batch sous Windows.

Toute aide serait appréciée pour automatiser ce processus et rendre les choses aussi simples que possible.

Merci d'avance !

0voto

Milner Points 533

Voici donc une solution pour Linux. Vous avez déjà mentionné la première partie dans votre question, mais pour être complet, je vais quand même l'inclure :

#!/bin/bash
#
echo "Plug in the cable now, please!"
# Just kidding: That and skipping the intro you'll have to do manually :)
# As well as ensuring that USB debugging is enabled etc. Test with
# "adb devices". If it shows the connected device, go on.

# Install Wireless Settings
echo "Installing wireless settings..."
adb shell su -c "echo 'network={\nssid="Wireless"\npsk="i*********m"\nkey_mgmt=WPA-PSK\npriority=1\n}' >> /data/misc/wifi/wpa_supplicant.conf"

# Install Required APK
# assuming all the required APK files reside in a "install" sub-directory:
echo "Installing APKs..."
for apk in install/*.apk; do
   adb install "${apk}"
done

# Push Required Configuration Files
# these and all other files you want to push you've placed into
# the "upload" sub-directory **WITH FULL PATH** (e.g. to push "foo" to
# "/data/local", it would be saved as "upload/data/local/foo
echo "Uploading files..."
adb push upload /

# Restart Tablet if Required
echo "Rebooting device..."
adb reboot

Bien entendu, il ne s'agit que d'un squelette ; vous souhaiterez peut-être mettre en place des "contrôles de réussite" ou écrire un journal à évaluer ultérieurement. Mais il contient tous les éléments techniques dont vous avez besoin :

  • adb shell su -c "command" pour exécuter une commande en tant que Root - ici pour ajouter vos paramètres sans fil
  • adb install pour installer vos fichiers APK. S'il s'agit simplement de versions plus récentes d'applications déjà installées sur les appareils, ajoutez l'élément -r (réinstallation) ; une simple installation échouerait alors (c'est-à-dire qu'elle ferait adb install -r "${apk}" )
  • adb push pour transférer des fichiers vers l'appareil. Notez quelques points ici :
    • La syntaxe est adb push <source> <target> (la contrepartie serait adb pull <source> <target> )
    • vous pouvez pousser un fichier, ou un répertoire entier
    • <source> y <target> doivent être du même type (c'est-à-dire qu'il s'agit soit d'un nom de fichier, soit d'un nom de répertoire).
    • vous ne pouvez pousser que dans les répertoires pour lesquels vous avez un accès en écriture. Donc, afin de pousser dans les "zones du système", le démon ADB sur l'appareil doit être exécuté en mode Root.

Comme la dernière condition est généralement un coupable (sur les "dispositifs de production", adbd s'exécute en "mode sécurisé" - c'est-à-dire sans amorçage), utilisez une solution de contournement en poussant d'abord les fichiers vers une "zone commune" (par exemple la carte SD interne), puis en les copiant. Exemple :

adb shell "mkdir /sdcard/misc"
adb push upload/data/misc /sdcard/misc
adb shell sudo -c "cp -a /sdcard/misc /data/misc

Et comme dernière astuce : vous devrez peut-être vérifier les permissions (y compris la propriété), au moins lorsqu'il s'agit de fichiers importants pour le système. Donc, essayez d'abord avec un seul appareil, examinez les résultats, voyez si cela fonctionne comme prévu (ajustez si ce n'est pas le cas - y compris en ajustant votre (vos) script(s)) - et si nécessaire, réinitialisez en usine et recommencez pour vérifier que cela fonctionne maintenant. Et BTW : Ces choses "installer et télécharger" est le prochain élément sur ma liste de ToDo pour Adebar ;)

Bonne chance !

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