Comment faire pour copier et modifier les fichiers Android shell?
Android shell n'a pas le cp de commande. Android shell n'a pas de sed ou grep ou vi. Je n'ai pas de bad démon disponibles. Il est mv de commande, mais il se refuse à travailler si la source est sur un périphérique en lecture seule.
- Quoi faire si je dois copier des répertoires de périphérique en lecture seule manière récursive?
- Comment faire pour modifier une ligne dans un fichier texte (par exemple, "PATH=/cache" être "PATH=/mnt/asec") ?
- Les solutions de travail pour vous?
- comme je l'ai dit, il n'y a pas de bad installé. Je peux copier à l'aide de "chat src > l'heure d'été" de commande, mais je ne sais pas comment le faire de manière récursive?
- Je n'ai pas l'obtenir. Pour accéder à la coque, vous tapez
./adb shell
. Si vous dites que vous avez pas deadb
disponibles, comment pouvez-vous accéder à la coque? - J'ai séparé la borne serial (via port COM)
- Ok, je l'obtiens. De ce que j'ai trouvé,
pull
etpush
sont récursives. extraire ici. - Je veux copier des fichiers d'un répertoire vers un autre répertoire à l'aide de code c code. alors, comment puis-je y parvenir? j'ai aussi Installé occupé-box
Vous devez vous connecter pour publier un commentaire.
La réponse la plus courante est simple: Bundle quelques applications (busybox?) avec votre APK (en supposant que vous voulez l'utiliser dans une application). Autant que je sache, la partition /data n'est pas monté avec l'option noexec, et même si vous ne voulez pas de déployer une véritable APK, vous pouvez modifier ConnectBot sources de construire un APK avec un ensemble d'outils en ligne de commande inclus.
Pour les outils de ligne de commande, je recommande l'utilisation de crosstool-ng et la construction d'un ensemble de statiquement lié outils (lié à l'encontre de uClibc). Ils peuvent être grands, mais ils vont certainement le travail.
Pour copier dirs, il semble que vous pouvez utiliser
adb pull <remote> <local>
si vous souhaitez copier le fichier/dir à partir de l'appareil, etadb push <local> <remote>
de copier le fichier/dir à l'appareil. Sinon, juste pour copier un fichier, vous pouvez utiliser un truc tout simple:cat source_file > dest_file
. Notez que cela ne fonctionne pas pour l'utilisateur inaccessible chemins.Pour modifier les fichiers, je n'ai pas trouvé une solution simple, juste des solutions de contournement possibles. Essayez cette, il semble que vous pouvez (après l'installation) de l'utiliser pour modifier les fichiers comme
busybox vi <filename>
. Nano semble être possible d'utiliser trop.adb pull
/adb push
ne fonctionne pas avec l'utilisateur inaccessable chemins.Vous pouvez le faire sans les privilèges de root:
Vous pouvez utiliser
cat > filename
à utiliser standart d'entrée à écrire dans le fichier. À la fin vous avez à mettre EOFCTRL+D
.Aussi, si le but est seulement d'accéder aux fichiers sur le téléphone. Il est un Explorateur de Fichier qui est accessible à partir de l'Éclipse perspective DDMS. Il vous permet de copier des fichiers depuis et vers l'appareil. De sorte que vous pouvez toujours obtenir le fichier, le modifier et le mettre sur le dos de l'appareil. Bien sûr, il permet d'accéder uniquement les fichiers qui ne sont pas en lecture seule.
Si vous ne voyez pas l'Explorateur de Fichier, à partir de la perspective DDMS, aller dans le menu "Fenêtre" -> Show View" -> "Explorateur de Fichiers".
Depuis l'autorisation de la politique sur mon appareil est un peu paranoïaque (ne peut pas
adb pull
données d'application), j'ai écrit un script pour copier des fichiers de manière récursive.Remarque: cette récursive fichier/dossier script de copie est prévu pour Android!
copier-r:
Ici je fournir la source d'un léger
find
pour Android parce que sur certains appareils, cet utilitaire est manquant. Au lieu demyfind
on peut utiliserfind
, si elle est définie sur l'appareil.Installation:
Cours d'exécution dans
adb shell
(enraciné):ou
(Le hash
#
ci-dessus est lesu
invite, tandis que.
est la commande qui provoque l'environnement pour exécuter le fichier spécifié, presque le même quesource
).Après la copie, je peux
adb pull
les fichiers de la carte sd.L'écriture de fichiers dans le répertoire app a été plus compliqué, j'ai essayé de mettre en r/w autorisations sur
files
et ses sous-répertoires, il ne fonctionne pas (enfin, ça m'a permis de lire, mais pas écrire, ce qui est étrange), j'ai donc eu à faire:dans l'application onCreate().
PS juste au cas où quelqu'un a besoin le code pour déverrouiller l'application des répertoires afin de permettre
adb shell
accès sans téléphone enracinée,bien que, pour une raison inconnue, j'ai pu lire, mais pas écrire.
Si vous avez un accès root installer busybox (google pour obtenir des instructions).
Que j'ai pu suggérer suffit d'installer Terminal-ide sur votre appareil qui disponible dans le jeu du marché. C'est gratuit, ne nécessite pas de racine et de fournir un *nix environnement comme cp, trouver, du, mc et de nombreux autres utilitaires installés sous forme binaire par un bouton tap.
Android prend en charge la commande dd.
J'ai essayé de suivre sur mac.
/Library/Android/sdk/platform-tools
../adb status
."./"
doit être précédé de "bad".adb shell
. Utiliser la commande./adb shell
pour entrer une commande adb shell. Nous avons maintenant accès à l'appareil du dossier à l'aide du shell.ls -la
./sdcard
au sein de notre dispositif.(Vous pouvez choisir n'importe quel dossier ici). Supposons que ma destination est/sdcard/3233-3453/DCIM/Videos
et la source est~/Documents/Videos/film.mp4
./adb exit
./adb push [source location] [destination location]
c'est à dire
./adb push ~/Documents/Videos/film.mp4 /sdcard/3233-3453/DCIM/Videos
Si vous voulez juste ajouter à un fichier, par exemple pour ajouter quelques lignes à un fichier de configuration, intégré commandes shell sont assez:
Ci-dessus, remplacer
/path/to/file
avec le fichier que vous souhaitez modifier. Vous aurez besoin d'avoir la permission d'écriture sur le fichier, ce qui implique un accès root si vous êtes à la modification d'un fichier système. Deuxièmement, remplacersome text to append
eta second line of text to append
avec les lignes que vous souhaitez ajouter.