2011-12-05 10 views
13

puedo abrir con éxito el puerto serie del iPhone/iPad en versión inferior a 5. iOs con el uso de¿Cómo puedo abrir el puerto serie del conector Dock de iOS 5.0.1

open("/dev/tty.iap", O_RDWR | O_NOCTTY | O_ASYNC))

pero recibí el error "Operación no permitida" en iOS 5.

(he utilizado la Serial Programming para la comunicación de accesorios y iPhone)

¿hay alguien tienen idea de esto.

Gracias.

+0

¿Está esto en un dispositivo con jailbreak? No debería tener acceso directo a la porción '/ dev' del sistema de archivos desde fuera del entorno limitado de una aplicación iOS bajo circunstancias normales. –

+0

Yaa es su dispositivo jailbroken. pero no puedo acceder a/dev en iOS 5 – Raj

+0

@Raj: ¿Terminaste arreglando esto? También estoy obteniendo el error de "Operación no permitida" al intentar abrir /dev/tty.iap en un iPod Touch con jailbreak que ejecuta iOS 5.0. – newenglander

Respuesta

2

Como tampoco funciona, creo que Apple bloqueó el acceso serie en iOS5 +. Stefan Esser (@ i0n1c en twitter) acaba de hablar de esto en una conferencia de seguridad. Estoy esperando las diapositivas para saber qué pasó con la serie

+0

¿Algo nuevo aquí? – newenglander

+0

sí, mira aquí en la página 42 http://antid0te.com/CSW2012_StefanEsser_iOS5_An_Exploitation_Nightmare_FINAL.pdf –

+0

um, no me sigo del todo (novato de iOS) ... ¿podrías explicarme un poco? – newenglander

0

Obtuve el mismo error y pude resolverlo colocando la aplicación en el directorio al que van las aplicaciones Cydia en lugar de donde Xcode lo ubica automáticamente (Encontrado esta sugerencia en el segundo enlace en este relacionado/idéntico post).

0

No estoy seguro de si funciona, pero por lo que he leído no puede acceder al puerto serie del iPhone para comunicarse mientras su aplicación está en la caja de arena. Por sandbox, me refiero a cuando haces clic en "ejecutar" en Xcode y transfieres tu aplicación a tu iDevice, la aplicación vive en un entorno de recinto de seguridad. Este entorno impide que su aplicación acceda a cosas tales como /dev/tty.iap el puerto serie dentro del conector de la base. Una solución que he leído es copiar tu aplicación /Applications/ que es un enlace a la ubicación /var/stash/Applications.XXXXXX/ que debería sacar tu aplicación del entorno de la zona de pruebas, y darle acceso al /dev/tty.iap. Avísame si esto funciona para ti, ya que esto es algo que finalmente me convierto va a tener que ver con la aplicación que estoy desarrollando.

Cuestiones relacionadas