Construir / compilar Android desde el origen con privilegios de superusuario
Siguiente situación – Tengo una computadora de la tabla sola con la ayuda androide y el código de fuente androide del fabricante. Funciona para construir una imagen de Android de ella en absoluto. Por desgracia, no está enraizada por defecto. Podría conseguir conseguir una cáscara enraizada. Pero también necesito privilegios de superusuario para las aplicaciones y ese es el punto en el que estoy luchando.
Al principio intenté comentar las siguientes líneas de system / extras / su / su.c :
- ¿Cómo puedo obtener permisos de root a través del SDK de Android?
- ¿Cómo conceder acceso root a una aplicación específica desde el código fuente en lugar de arraigar la ROM?
- ¿Es posible ejecutar un comando de shell como root con sólo el binario su y sin SuperSU o Superuser apk instalado?
- No se puede ejecutar en dispositivos de producción
- ¿Cómo funciona su trabajo en android? ¿Y cuáles son los requisitos previos para que funcione? ¿Qué es el enraizamiento en Android?
//if (myuid != AID_ROOT && myuid != AID_SHELL) { // fprintf(stderr,"su: uid %d not allowed to su\n", myuid); // return 1; //} //if(setgid(gid) || setuid(uid)) { // fprintf(stderr,"su: permission denied\n"); // return 1; //}
Como esto no funcionó, encontré este hilo aquí en stackoverflow: Construir Android con Superuser y probé esta parte de la sugerencia:
Para incrustar Superuser.apk en AOSP, hay que buscar y crear:
Su-binario (por ejemplo en external /) y stub / remove system / extras / su paquete. Superusuario (por ejemplo, en paquetes / app /)
Pero estoy corriendo en errores al construir android:
ctarget Dex: core-tests-hostdex ../arm-linux-androideabi/bin/ld: out/target/product/.../obj/EXECUTABLES/su_intermediates/su.o: in function deny:external/su-binary-master/su.c:287: error: undefined reference to 'LOGW' ../arm-linux-androideabi/bin/ld: out/target/product/.../obj/EXECUTABLES/su_intermediates/su.o: in function allow:external/su-binary-master/su.c:319: error: undefined reference to 'LOGE' ../arm-linux-androideabi/bin/ld: out/target/product/.../obj/EXECUTABLES/su_intermediates/su.o: in function allow:external/su-binary-master/su.c:330: error: undefined reference to 'LOGE' ../arm-linux-androideabi/bin/ld: out/target/product/.../obj/EXECUTABLES/su_intermediates/su.o: in function allow:external/su-binary-master/su.c:338: error: undefined reference to 'LOGD' ../arm-linux-androideabi/bin/ld: out/target/product/.../obj/EXECUTABLES/su_intermediates/su.o: in function allow:external/su-binary-master/su.c:352: error: undefined reference to 'LOGE' ../arm-linux-androideabi/bin/ld: out/target/product/.../obj/EXECUTABLES/su_intermediates/su.o: in function main:external/su-binary-master/su.c:440: error: undefined reference to 'LOGE' ../arm-linux-androideabi/bin/ld: out/target/product/.../obj/EXECUTABLES/su_intermediates/su.o: in function main:external/su-binary-master/su.c:582: error: undefined reference to 'LOGW' ../arm-linux-androideabi/bin/ld: out/target/product/.../obj/EXECUTABLES/su_intermediates/db.o: in function database_check:external/su-binary-master/db.c:31: error: undefined reference to 'LOGD' ../arm-linux-androideabi/bin/ld: out/target/product/.../obj/EXECUTABLES/su_intermediates/db.o: in function database_check:external/su-binary-master/db.c:35: error: undefined reference to 'LOGD' ../arm-linux-androideabi/bin/ld: out/target/product/.../obj/EXECUTABLES/su_intermediates/db.o: in function database_check:external/su-binary-master/db.c:39: error: undefined reference to 'LOGD' collect2: ld returned 1 exit status make: *** [out/target/product/.../obj/EXECUTABLES/su_intermediates/LINKED/su] Error 1
¿Podría alguien decirme cómo solucionar este error u otra forma de obtener privilegios su, por favor?
Muchas gracias por adelantado. 🙂
- Permiso de READ_LOGS en Jelly Bean (api 16)
- Obtener una lista de almacenamiento externo en Android 4.3
- Obtener permiso "root" para la aplicación de Android
- ¿Cómo crear aplicaciones Android con acceso root?
- ¿Cómo comprobar si el teléfono android está enraizado?
- usuario root puede acceder a almacenamiento interno en Android?
- Crea Android con Superusuario
- Ocultar barra de sistema en Jelly Bean Tablet (enraizado)
De acuerdo, encontré el problema. Para cualquier persona que enfrenta el mismo problema:
Elimine el siguiente if-command de su.h :
#if 0 #undef LOGE #define LOGE(fmt,args...) fprintf(stderr, fmt, ##args) #undef LOGD #define LOGD(fmt,args...) fprintf(stderr, fmt, ##args) #undef LOGW #define LOGW(fmt,args...) fprintf(stderr, fmt, ##args) #endif
- Vinculación mediante programación al dispositivo BLE en Android
- Lag al reemplazar el fragmento ViewPager en la barra de navegación sobre FrameLayout?