2 votos

Permisos de escritura de Termux

Pretexto: como gmail ya no me permite enviar archivos zip, he estado buscando otras formas de llevar mis directorios de código fuente de java desde android a la computadora portátil y viceversa, dependiendo de si estoy en casa o no (la jerarquía de carpetas debe ser preservada). He estado intentando configurar git en mi teléfono android y he estado usando termux como la terminal de comandos para hacer esto.

el problema: No puedo crear un directorio al cual termux y el ide de java tengan acceso de lectura y escritura. He configurado los permisos de almacenamiento en termux. Si el IDE puede escribir, termux no puede, y en otro lugar termux puede escribir pero el IDE no.

Lo que necesito es una ubicación de carpeta a la cual ambas aplicaciones tengan permisos completos de lectura y escritura. (No me importa demasiado si estos permisos se extienden a otras carpetas)

No quiero rootear mi dispositivo.

Nokia 7.2 Android 10

2 votos

Las aplicaciones no pueden acceder a los directorios privados de otras aplicaciones: ¿Dónde almacenan datos las aplicaciones de Android?. Todas las aplicaciones con permiso de almacenamiento pueden acceder al almacenamiento externo compartido (aunque sujeto a algunas restricciones desde Android 10 y 11): ¿Cómo acceder a $HOME/almacenamiento fuera de Termux?. Pero el almacenamiento compartido es un sistema de archivos emulado sin permisos: ¿Qué es /storage/emulated/0/?. Por lo tanto, no puedes conservar la propiedad de los archivos, el modo, etc. Root ofrece múltiples opciones.

0 votos

¿Has probado /data/local/tmp esa es la única opción fuera de la carpeta de la tarjeta SD? ¿Qué tal si ejecutas un servidor git en termux? Si tu IDE puede manejar repositorios GIT locales, también debería ser posible un repositorio remoto en 127.0.0.1. Incluso tienes dos opciones, git a través de http o ssh. Por supuesto, esto requeriría tener el repositorio git dos veces en Android.

0voto

MrOtto Puntos 21

He logrado una solución haciendo la carpeta del proyecto en el almacenamiento principal (/emulated/0/ProjectName) en lugar de en la tarjeta SD. En termux navegué a (...ProjectName/src/com/package/) y ejecuté 'mkdir test'. En el ide luego creé 'test.txt' en el directorio test recién creado. Todo funcionó bien, aunque no he vinculado git a este directorio, demuestra que el acceso de escritura está disponible para ambas aplicaciones.

Antes estaba intentando usar una carpeta en la tarjeta SD que no permitía los permisos. No cambié nada más en cuanto a configuraciones y permisos entre estos dos intentos, aunque algunos fueron modificados antes del intento inicial en la tarjeta SD, lo que pudo haber jugado un papel. Si estás teniendo el mismo problema, siéntete libre de comentar y repasaré todas las otras configuraciones que cambié antes de esto. O quizás alguien con mejor conocimiento de Android pueda comentar por qué funcionó.

editar: cita: "Algunos teléfonos impiden que las aplicaciones de terceros accedan a la tarjeta SD, pero con los permisos adecuados todas las aplicaciones pueden acceder al almacenamiento interno."

0voto

Ahora aquí hay una solución "tan simple que hasta un hombre de las cavernas podría hacerlo" para tu problema principal, no relacionado con ninguno de los temas de git / termux que has mencionado.

Si usas Windows, hay un software llamado Feem (https://feem.io/) que te permite enviar archivos entre dispositivos en la misma red. Hasta donde sé, debería funcionar en Windows 7 y versiones posteriores. Definitivamente funciona en 10. Si usas linux, puedes usar KDE Connect. Básicamente es lo mismo.

Estas son herramientas de transferencia manual, es decir: tendrás que enviar manualmente el archivo de nuevo si lo editas más tarde.

También tendrás que comprimir todo y luego transferir el archivo comprimido porque estas herramientas no parecen poder transferir recursivamente carpetas completas mientras funcionan bien con archivos comprimidos.

También podrías probar syncthing (https://syncthing.net/) si quieres un sistema continuo de respaldo entre tu android y pc. Si realizas cambios, estos se reflejarán en tu dispositivo dependiendo de cómo configures la sincronización. Simplemente ten ambos dispositivos en la misma red con syncthing funcionando en ambos dispositivos y la sincronización se realizará. Por cierto, syncthing es de plataforma cruzada.

SyncThing debería ser la mejor solución para tu problema, ya que ni siquiera tendrás que comprimir las carpetas y subcarpetas para preservar la jerarquía. SyncThing incluye recursivamente todas las carpetas y subcarpetas durante la sincronización.

De las herramientas que mencioné, Feem no es software gratuito (en el sentido de libre, no gratis) mientras que las otras herramientas lo son, según mi conocimiento.

Esta es mi primera respuesta aquí, así que por favor dame una retroalimentación constructiva sobre cómo puedo mejorar mis respuestas.

0voto

Ujjwal Puntos 52

Algunos exploradores de archivos te permiten ver el almacenamiento de Termux como una unidad de alguna manera. puedes simplemente transferir los archivos a tu teléfono desde tu PC y luego usar un explorador de archivos para transferirlos. si quieres https://wiki.termux.com/wiki/Internal_and_external_storage

0 votos

Desafortunadamente, no puedo conectar los dos dispositivos directamente. pero si pudiera eso resolvería el problema inicial (aunque no responde la pregunta formulada). Además, incluso podría escribir un pequeño script para comprimir el directorio principal (en una ubicación fija conocida, copiarlo al destino y extraerlo), el equivalente inverso también podría ser escrito (o incluso señalado con un argumento booleano). (o incluso con argumentos de origen y destino). Si alguien necesita el archivo .sh o .bat apropiado, avíseme y lo publicaré.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X