Android: Incluir su ejecutable binario en la compilación de AOSP

He estado intentando conseguir el binario del su incluido en el /out/…/system/xbin/su después de construir Android de fuente. Tengo el su binario (de Chainfire) como archivo ejecutable pero no puedo parecerse conseguirlo incluido en la estructura de AOSP.

Todos los ejemplos o soluciones que he encontrado se han discutido acerca de lo siguiente en Android_Source_Root:

  1. Quitar el directorio su de system/extras/ e incluir el directorio su-binario (tomado de ChainsDD) en /.
  2. Modifique el system/extras/su/Android.mk archivos system/extras/su/Android.mk con " LOCAL_MODULE_TAGS: = optional " y el archivo build/target/product/core.mk para incluir su en PRODUCT_PACKAGES.

Todos ellos tienen los archivos su.c, su.h y otros del directorio su que se utilizan para crear el paquete su.

¿Qué me gustaría saber es cómo incluir su en la construcción de AOSP cuando tengo el "archivo binario ejecutable su" sólo sin la necesidad de incluir el su.c o cualquiera de esos archivos? ¿Dónde debo poner el directorio su y cuál es el contenido del archivo Android.mk?

Por favor consejo y gracias por su tiempo.

Me las arreglé para resolver el problema que mencioné. Las siguientes son las 2 maneras en que resolví el problema, pero me enfrenté a otro problema explicado en el encabezado "Problem Faced".

* Nota: Puse el archivo binario su en prebuilts / su

Solución 1

Modifiqué el archivo device.mk en el directorio device/ . Añadí lo siguiente al archivo.

 PRODUCT_COPY_FILES += \ prebuilts/su/su:system/xbin 

Solución 2

Modifiqué el archivo device.mk en el directorio device/ . Añadí lo siguiente al archivo.

 PRODUCT_PACKAGES += \ su 

Luego Android.mk e inserto lo siguiente en el archivo de Android.mk en prebuilts/su/su .

 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional LOCAL_MODULE := su LOCAL_SRC_FILES := $(LOCAL_MODULE) LOCAL_MODULE_CLASS := EXECUTABLES LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) LOCAL_UNSTRIPPED_PATH := $(LOCAL_MODULE_PATH) include $(BUILD_PREBUILT) 

Problema enfrentado

No puedo chmod el archivo binario del su después de que se haya copiado al directorio del system/xbin . He intentado algunas maneras como sigue pero no produjo ningún resultado.

  1. He añadido el siguiente derecho después de las líneas en la solución 1 y sigue dándome el error de chmod ... file cannot be found .

      $(shell chmod 6755 out/<product>/system/xbin/su) 
  2. He añadido lo siguiente en el archivo Android.mk de la Solución 2 antes de include $(BUILD_PREBUILT) pero ninguna cambia el permiso del archivo.

     #Trial 1. SU_BINARY := $(LOCAL_MODULE_PATH)/su $(SU_BINARY)-post: su $(shell chmod 6755 $(LOCAL_MODULE_PATH)/su) #Trial 2 without "-post". SU_BINARY := $(LOCAL_MODULE_PATH)/su $(SU_BINARY): su $(shell chmod 6755 $(LOCAL_MODULE_PATH)/su) #Trial 3. SU_BINARY := $(LOCAL_MODULE_PATH)/su $(SU_BINARY): su chmod 6755 $(LOCAL_MODULE_PATH)/su 

¿Podría alguien por favor consejo sobre cómo chmod el archivo? Gracias por tu tiempo.

Problemas resueltos

Solución 1 (para el número 1)

Cambie el permiso del archivo primero chmod 6755 prebuilts/su/su . Incluya lo siguiente en el archivo device.mk en el directorio device/ .

 PRODUCT_COPY_FILES += \ prebuilts/su/su:system/xbin 

Solución 2 (para el número 2)

Simplemente añada lo siguiente al archivo Android.mk antes de include $(BUILD_PREBUILT)

 LOCAL_POST_INSTALL_CMD := chmod 6755 $(LOCAL_MODULE_PATH)/$(LOCAL_MODULE) 
  • No se puede generar la imagen de recuperación con AOSP 4.2.2
  • Fuente del teclado Android
  • ¿Por qué Toast.makeText y no Toast nuevo
  • Error al cargar diccionario al modificar android LatinIME en Eclipse
  • Estoy recibiendo error 'ko: inválido caché tipo de imagen de partición: yaffs2 (esperado ext4)' cuando se intentó lanzar android en el emulador de dispositivo mako?
  • Modificación de la interfaz de usuario de la aplicación individual (teléfono, contactos) en ICS AOSP
  • Android: ¿Cómo emparejar los dispositivos bluetooth de forma programática?
  • Proceso de construcción de Android secreto
  • ¿Qué son los archivos ODEX en Android?
  • Cómo compilar Helloworld con el código fuente de Android
  • Error de cambio de API al crear AOSP 5.1
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.