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 :

//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. 🙂

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 
  • Fuerza Cierre una aplicación mediante programación
  • Espere a que termine el comando en RootTools
  • ¿Cómo puede mi aplicación acceder a privilegios de nivel de administración en un dispositivo no enraizado?
  • Bloqueo antes de que se inicie la aplicación: SecurityException: denegación de permisos: INTERACT_ACROSS_USERS_FULL
  • Ejecutar comandos de shell desde la aplicación
  • ANDROID: ¿Cómo obtener acceso root en una aplicación de Android?
  • ¿Cómo hacer que el dispositivo Android siempre esté en modo despertar?
  • Bypass android usb host permiso diálogo de confirmación
  • ¿Qué permisos se pueden conceder a los dispositivos enraizados?
  • Leer la salida del comando dentro de su proceso
  • Abra cualquier SQLiteDatabase como su / root
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.