PDA

Ver la Versión Completa : [TUTORIAL] Compilar CyanogenMod 12.1 --Crea tus propias compilaciones--


pocarropa
12/10/16, 18:02:28
931058


Ni yo ni HTCMANÍA nos hacemos responsables de fallos en el terminal. Prueba este tutorial bajo tu responsabilidad. Es para el Redmi Note 3 hennessy (MTK)


Lo prometido es deuda. Espero que sepáis valorar este tutorial, realmente hay pocos en español, y para MTK todavía menos (si es que los hay).

CONSIDERACIONES (importante):

-El hecho de compilar CM12.1 no te convierte en desarrollador así que te pediría que no abras nuevos hilos con nuevas roms a no ser que realmente aporte algo sustancial, puesto que va a ser un calco de lo que ya hay. Este tutorial está pensado para crear tus propias compilaciones y despertar tu curiosidad.

-Este tutorial aborda la forma "manual" de hacerlo, puedes crear tu local.manifest.xml y así automatizar el proceso

-Vamos a emplear el device, y vendor que podéis encontrar en mi github. Como no hay sources para el kernel emplearemos el stock precompilado que ya se encuentra en el device tree.

-Este tutorial no está enfocado a resolver duda de instalación de sistemas basados en linux ni tampoco del funcionamiento de github así que por favor evitar preguntas relacionadas con esto, hay muchísima información por la red.

-Puedes reducir el tiempo de tu compilación añadiendo export USE_CCACHE=1 a tu archivo ~/.bashrc , después especifica la cantidad de espacio dedicado a ccache mediante el siguiente comando en la ventana CMD:
prebuilts/misc/linux-x86/ccache/ccache -M 50G , donde "50G" son 50 gigas de caché. Consultar la guía a pie de página para más información

DESCARGA ARCHIVOS NECESARIOS:

Device tree: https://github.com/pocarropa/android_device_xiaomi_hennessy

Vendor tree: https://github.com/pocarropa/android_vendor_xiaomi_hennessy

REQUISITOS:

-Ordenador de 64 bits con al menos 4 GB de RAM (8GB recomendados), un procesador decente y al menos 150 GB libres de disco duro
-Suficiente SWAP memory ( como mínimo el doble de la RAM disponible) de lo contrario nos dará "Killed" error
-Cuenta en github. Si no tenéis la podéis crear desde aquí: https://github.com/
-Sistema operativo Linux o tener instalado ubuntu en windows mediante Virtualbox.
- Este tutorial está enfocado expresamente a Ubuntu 14.04. Las diferencias que haya con Ubuntu 16.04 serán advertidas

COMPILAR CM12.1:

Paso 1: Preparando el sistema para compilar

Copiar, pegar y ejecutar en el terminal los siguientes comandos:

1-Desinstalar el JDK pre-instalado en ubuntu

sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*

2-Instalar el paquete JDK correcto para android 5.0 ó superior

sudo apt-get update && sudo apt-get install openjdk-7-jdk

Para confirmar que se ha instalado la versión correcta:

java –version

3-Instalar las herramientas necesarias (building tools):


Para Ubuntu 14.04:

sudo apt-get install bison build-essential curl flex git gnupg gperf libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop maven openjdk-7-jdk pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev


Y puesto que usamos un ordenador de 64-bit necesitamos también:

sudo apt-get install g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev


Para Ubuntu 16.04:

sudo apt-get install bison build-essential curl flex git gnupg gperf libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libwxgtk3.0-dev libxml2 libxml2-utils lzop maven openjdk-7-jdk pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev


sudo apt-get install g++-multilib gcc-multilib lib32ncurses5-dev lib32readline6-dev lib32z1-dev


4-Creación del directorio más instalación de la aplicación REPO necesaria para trabajar con repositorios:

mkdir -p ~/bin

curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

La hacemos ejecutable:

chmod a+x ~/bin/repo



5-Ponemos ~/bin en la ruta de ejecución (path of execution)

En versiones recientes de ubuntu suele venir por defecto , de cualquier modo abrimos .bashrc con un editor de texto (por ejemplo gedit) de la siguiente manera:

gedit ~/.bashrc

y comprobamos que existe el siguiente código (normalmente se encuentra abajo del todo):

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi

En caso de no existir, lo añadimos y guardamos, y además reiniciamos el archivo .bashrc para que surtan efecto los cambios:

source ~/.bashrc


En este punto el sistema está listo para trabajar con repositorios y compilar roms.



Paso 2: Compilar CM12.1 desde sources


1- Creamos una cuenta github si no la tenemos ya creada:

https://github.com/

2-Registramos nuestra cuenta github en el terminal:

git config --global*user.name*"login" (login= tu usuario, en mi caso pocarropa)

git config --global user.email "[email protected]" (la contraseña de acceso a tu github)

3-Creamos una carpeta donde se descargarán las "sources" y se construirá el nuevo firmware

mkdir ~/cm-12.1

4-Entramos en la nueva carpeta

cd ~/cm-12.1

5-Inicializamos la descarga de sources de CM-12.1 (-b significa "branch" (rama) en github por lo que en caso de querer descargar otra "rama" elegiriamos diferente "branch, como por ejemplo -b cm-11 ó -b cm-13:

repo init -u https://github.com/CyanogenMod/android.git -b cm-12.1

6-Descargamos las "sources" de CM-12.1(sincronizamos) , donde -j* es el número de procesos/conexiones, por lo que si experimentas problemas puedes reducir este número (por defecto si hacemos repo sync de ajusta a -j4)

repo sync -j4

El tiempo de descarga variará sobretodo en función de la velocidad de conexión a internet y del hardware del equipo.

7-Una vez descargadas las sources hacemos los siguientes pasos:

Vamos a la carpeta cm-12.1 y entramos en la carpeta device. Una vez allí, creamos una carpeta llamada "xiaomi" y dentro de la carpeta "xiaomi" creamos otra carpeta llamada "hennessy".
Debe quedar cm-12.1/device/xiaomi/hennessy
Copiamos dentro de la carpeta cm-12.1/device/xiaomi/hennessy todos los archivos y carpetas del device tree descargados previamente de mi github

Ahora volvemos a la carpeta cm-12.1 y entramos en la carpeta vendor. Una vez allí, creamos una carpeta llamada "xiaomi" y dentro de la carpeta "xiaomi" creamos otra carpeta llamada "hennessy".
Debe quedar cm-12.1/vendor/xiaomi/hennessy
Copiamos dentro de la carpeta cm-13/vendor/xiaomi/hennessy todos los archivos y carpetas del vendor tree descargados previamente de mi github

8-Ahora parcheamos las souces para nuestro dispositivo, de otra manera nos dará errores durante la compilación:

Entramos en nuestra carpeta de trabajo (si es que no estabamos ya dentro):

cd ~/cm-12.1

La damos los permisos necesarios al archivo del parche:

chmod +x device/xiaomi/hennessy/patches/apply.sh

Parcheamos las sources:

./device/xiaomi/hennessy/patches/apply.sh


9-Ejecutamos el script de construcción

. build/envsetup.sh

10-Comenzamos la compilación del nuevo firmware

brunch hennessy

En este punto comienza la compilación del firmware. Si todo va bien y no hay ningún error que detenga el proceso, cuando finalice encontraremos nuestro firmware en la ruta cm-12.1/out/target/product/hennessy ,en un archivo zip por ejemplo:" cm-12.1-20160824-UNOFFICIAL-hennessy"



El tiempo de construcción del firmware variará desde 1 horas hasta 8 dependiendo de la potencia del equipo utilizado y de otros factores. Debéis saber que para disminuir el tiempo de construcción, este device tree lleva webview precompilado lo que hace disminuir este tiempo más del 60 %.

Os quedará algo así (salvando las diferencias con vuestro dispositivo):

931057


Paso 3 : Actualizar las souces y construir un nuevo firmware

Este paso lo efectuaremos para actualizar las sources de cyanogen con las supuestas mejoras y actualizaciones de seguridad etc.. o bien cuando queramos compilar para probar cambios efectuados en el device o vendor tree, actualización del kernel etc...

1-Ir a la carpeta cm-12.1

cd ~/cm-12.1

2-Limpiar la carpeta out para realizar una nueva compilación(paso importante)

make clean

3-Sincronizar las sources con los servidores cyanogen

repo sync

4-Ejecutar el "build script"

. build/envsetup.sh

5-Comenzar la compilación con nuestras sources actualizadas

brunch hennessy


CRÉDITOS/GUÍAS UTILIZADAS:

https://wiki.cyanogenmod.org/w/Build_for_kenzo

https://wiki.cyanogenmod.org/w/Development

http://forum.xda-developers.com/chef-central/android/guide-android-rom-development-t2814763

http://xda-university.com/as-a-developer/getting-started-building-android-from-source

Dar las gracias no cuesta nada.

pocarropa
12/10/16, 18:03:09
reservado
Ragga_Muffin , byadversary

Ragga_Muffin
13/10/16, 13:22:30
Muchas gracias por el tutorial, en cuanto pueda me pongo con ello :ok:

Ragga_Muffin
13/10/16, 21:49:13
Bueno pues me he quedado estancado en el ultimo paso, ejecuto el comando "brunch hennessy" pero al de poco me sale este error:

============================================
Checking build tools versions...
"ebtables is disabled on this build"
external/sepolicy/Android.mk:56: *** No sepolicy file found for aee_core_forwarder.te in device/xiaomi/hennessy/sepolicy vendor/cm/sepolicy. Alto.
make: se sale del directorio '/home/xabi/cm-12.1'

#### make failed to build some targets (02:39 (mm:ss)) ####
¿Alguna sugerencia? Llevo un swap de 10gb por si eso ayuda

byadversary
13/10/16, 22:12:47
Gracias pocarropa por tomarte el tiempo de hacer este tutorial.

Enviado desde mi Redmi Note 3 mediante Tapatalk

pocarropa
13/10/16, 22:22:04
Bueno pues me he quedado estancado en el ultimo paso, ejecuto el comando "brunch hennessy" pero al de poco me sale este error:

============================================
Checking build tools versions...
"ebtables is disabled on this build"
external/sepolicy/Android.mk:56: *** No sepolicy file found for aee_core_forwarder.te in device/xiaomi/hennessy/sepolicy vendor/cm/sepolicy. Alto.
make: se sale del directorio '/home/xabi/cm-12.1'

#### make failed to build some targets (02:39 (mm:ss)) ####
¿Alguna sugerencia? Llevo un swap de 10gb por si eso ayuda
Has descargado las sources o ya las tenías de otro dispositivo?

Enviado desde mi Redmi Note 3 mediante Tapatalk

Ragga_Muffin
13/10/16, 22:49:02
Has descargado las sources o ya las tenías de otro dispositivo?

Enviado desde mi Redmi Note 3 mediante Tapatalk

Instalacion limpia de ubuntu 16.04 y seguido el tutorial al pie de la letra

pocarropa
13/10/16, 22:54:54
Instalacion limpia de ubuntu 16.04 y seguido el tutorial al pie de la letra
Asegúrate que tienes donde toca el device tree (cm-12.1/device/xiaomi/hennessy/"contenido"
Y el vendor tree (cm-12.1/vendor/xiaomi/hennessy/"contenido"

Y luego haz desde el paso 3.

Si sigue sin funcionar chequea que aplicaste los parches a las sources.

Enviado desde mi Redmi Note 3 mediante Tapatalk

Ragga_Muffin
13/10/16, 23:28:36
Asegúrate que tienes donde toca el device tree (cm-12.1/device/xiaomi/hennessy/"contenido"
Y el vendor tree (cm-12.1/vendor/xiaomi/hennessy/"contenido"

Y luego haz desde el paso 3.

Si sigue sin funcionar chequea que aplicaste los parches a las sources.

Enviado desde mi Redmi Note 3 mediante Tapatalk

Seguimos con el mismo error.
He vuelto a pegar en su sitio tanto el vendor como el device tree, ejecutado el comando make clean, sincronizado las sources y despues aplicados los parches.
En este ultimo punto, si han salido bastantes errores (algunos de estos errores decian que el archivo ya existia) a pesar de que ha finalizado con un mensaje de exito.
Supongo que sera, porque ya las habia aplicado antes al hacer el tutorial. Finalmente, he vuelto al ultimo paso y el mismo error.
Por si sirviese de ayuda, esto es lo que sale al ejecutar el comando brunch:


xabi@Xabi:~/cm-12.1$ brunch hennessy
including vendor/cm/vendorsetup.sh
Trying dependencies-only mode on a non-existing device tree?

============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=5.1.1
CM_VERSION=12.1-20161013-UNOFFICIAL-hennessy
TARGET_PRODUCT=cm_hennessy
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm64
TARGET_ARCH_VARIANT=armv8-a
TARGET_CPU_VARIANT=generic
TARGET_2ND_ARCH=arm
TARGET_2ND_ARCH_VARIANT=armv7-a-neon
TARGET_2ND_CPU_VARIANT=cortex-a53
HOST_ARCH=x86_64
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.4.0-31-generic-x86_64-with-Ubuntu-16.04-xenial
HOST_BUILD_TYPE=release
BUILD_ID=LMY49J
OUT_DIR=/home/xabi/cm-12.1/out
============================================

make: se entra en el directorio '/home/xabi/cm-12.1'
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=5.1.1
CM_VERSION=12.1-20161013-UNOFFICIAL-hennessy
TARGET_PRODUCT=cm_hennessy
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm64
TARGET_ARCH_VARIANT=armv8-a
TARGET_CPU_VARIANT=generic
TARGET_2ND_ARCH=arm
TARGET_2ND_ARCH_VARIANT=armv7-a-neon
TARGET_2ND_CPU_VARIANT=cortex-a53
HOST_ARCH=x86_64
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.4.0-31-generic-x86_64-with-Ubuntu-16.04-xenial
HOST_BUILD_TYPE=release
BUILD_ID=LMY49J
OUT_DIR=/home/xabi/cm-12.1/out
============================================
Checking build tools versions...
"ebtables is disabled on this build"
external/sepolicy/Android.mk:56: *** No sepolicy file found for aee_core_forwarder.te in device/xiaomi/hennessy/sepolicy vendor/cm/sepolicy. Alto.
make: se sale del directorio '/home/xabi/cm-12.1'

#### make failed to build some targets (02:21 (mm:ss)) ####

pocarropa
13/10/16, 23:49:48
Seguimos con el mismo error.
He vuelto a pegar en su sitio tanto el vendor como el device tree, ejecutado el comando make clean, sincronizado las sources y despues aplicados los parches.
En este ultimo punto, si han salido bastantes errores (algunos de estos errores decian que el archivo ya existia) a pesar de que ha finalizado con un mensaje de exito.
Supongo que sera, porque ya las habia aplicado antes al hacer el tutorial. Finalmente, he vuelto al ultimo paso y el mismo error.
Por si sirviese de ayuda, esto es lo que sale al ejecutar el comando brunch:


xabi@Xabi:~/cm-12.1$ brunch hennessy
including vendor/cm/vendorsetup.sh
Trying dependencies-only mode on a non-existing device tree?

============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=5.1.1
CM_VERSION=12.1-20161013-UNOFFICIAL-hennessy
TARGET_PRODUCT=cm_hennessy
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm64
TARGET_ARCH_VARIANT=armv8-a
TARGET_CPU_VARIANT=generic
TARGET_2ND_ARCH=arm
TARGET_2ND_ARCH_VARIANT=armv7-a-neon
TARGET_2ND_CPU_VARIANT=cortex-a53
HOST_ARCH=x86_64
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.4.0-31-generic-x86_64-with-Ubuntu-16.04-xenial
HOST_BUILD_TYPE=release
BUILD_ID=LMY49J
OUT_DIR=/home/xabi/cm-12.1/out
============================================

make: se entra en el directorio '/home/xabi/cm-12.1'
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=5.1.1
CM_VERSION=12.1-20161013-UNOFFICIAL-hennessy
TARGET_PRODUCT=cm_hennessy
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm64
TARGET_ARCH_VARIANT=armv8-a
TARGET_CPU_VARIANT=generic
TARGET_2ND_ARCH=arm
TARGET_2ND_ARCH_VARIANT=armv7-a-neon
TARGET_2ND_CPU_VARIANT=cortex-a53
HOST_ARCH=x86_64
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.4.0-31-generic-x86_64-with-Ubuntu-16.04-xenial
HOST_BUILD_TYPE=release
BUILD_ID=LMY49J
OUT_DIR=/home/xabi/cm-12.1/out
============================================
Checking build tools versions...
"ebtables is disabled on this build"
external/sepolicy/Android.mk:56: *** No sepolicy file found for aee_core_forwarder.te in device/xiaomi/hennessy/sepolicy vendor/cm/sepolicy. Alto.
make: se sale del directorio '/home/xabi/cm-12.1'

#### make failed to build some targets (02:21 (mm:ss)) ####

Súbeme aquí el makefile del fallo; está en cm-12.1/external/sepolicy/Android.mk

Enviado desde mi Redmi Note 3 mediante Tapatalk

Ragga_Muffin
14/10/16, 00:09:56
Súbeme aquí el makefile del fallo; está en cm-12.1/external/sepolicy/Android.mk

Enviado desde mi Redmi Note 3 mediante Tapatalk

Ahi lo tienes:


LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

# Force permissive domains to be unconfined+enforcing?
#
# During development, this should be set to false.
# Permissive means permissive.
#
# When we're close to a release and SELinux new policy development
# is frozen, we should flip this to true. This forces any currently
# permissive domains into unconfined+enforcing.
#
FORCE_PERMISSIVE_TO_UNCONFINED:=true

ifeq ($(TARGET_BUILD_VARIANT),user)
# User builds are always forced unconfined+enforcing
FORCE_PERMISSIVE_TO_UNCONFINED:=true
endif

# SELinux policy version.
# Must be <= /selinux/policyvers reported by the Android kernel.
# Must be within the compatibility range reported by checkpolicy -V.
POLICYVERS ?= 26

MLS_SENS=1
MLS_CATS=1024

# Quick edge case error detection for BOARD_SEPOLICY_REPLACE.
# Builds the singular path for each replace file.
sepolicy_replace_paths :=
$(foreach pf, $(BOARD_SEPOLICY_REPLACE), \
$(if $(filter $(pf), $(BOARD_SEPOLICY_UNION)), \
$(error Ambiguous request for sepolicy $(pf). Appears in both \
BOARD_SEPOLICY_REPLACE and BOARD_SEPOLICY_UNION), \
) \
$(eval _paths := $(filter-out $(BOARD_SEPOLICY_IGNORE), \
$(wildcard $(addsuffix /$(pf), $(BOARD_SEPOLICY_DIRS))))) \
$(eval _occurrences := $(words $(_paths))) \
$(if $(filter 0,$(_occurrences)), \
$(error No sepolicy file found for $(pf) in $(BOARD_SEPOLICY_DIRS)), \
) \
$(if $(filter 1, $(_occurrences)), \
$(eval sepolicy_replace_paths += $(_paths)), \
$(error Multiple occurrences of replace file $(pf) in $(_paths)) \
) \
$(if $(filter 0, $(words $(wildcard $(addsuffix /$(pf), $(LOCAL_PATH))))), \
$(error Specified the sepolicy file $(pf) in BOARD_SEPOLICY_REPLACE, \
but none found in $(LOCAL_PATH)), \
) \
)

# Quick edge case error detection for BOARD_SEPOLICY_UNION.
# This ensures that a requested union file exists somewhere
# in one of the listed BOARD_SEPOLICY_DIRS.
$(foreach pf, $(BOARD_SEPOLICY_UNION), \
$(if $(filter 0, $(words $(wildcard $(addsuffix /$(pf), $(BOARD_SEPOLICY_DIRS))))), \
$(error No sepolicy file found for $(pf) in $(BOARD_SEPOLICY_DIRS)), \
) \
)

# Builds paths for all requested policy files w.r.t
# both BOARD_SEPOLICY_REPLACE and BOARD_SEPOLICY_UNION
# product variables.
# $(1): the set of policy name paths to build
build_policy = $(call uniq,$(foreach type, $(1), \
$(filter-out $(BOARD_SEPOLICY_IGNORE), \
$(foreach expanded_type, $(notdir $(wildcard $(addsuffix /$(type), $(LOCAL_PATH)))), \
$(if $(filter $(expanded_type), $(BOARD_SEPOLICY_REPLACE)), \
$(wildcard $(addsuffix $(expanded_type), $(sort $(dir $(sepolicy_replace_paths))))), \
$(LOCAL_PATH)/$(expanded_type) \
) \
) \
$(foreach union_policy, $(wildcard $(addsuffix /$(type), $(BOARD_SEPOLICY_DIRS))), \
$(if $(filter $(notdir $(union_policy)), $(BOARD_SEPOLICY_UNION)), \
$(union_policy), \
) \
) \
) \
))

sepolicy_build_files := security_classes \
initial_sids \
access_vectors \
global_macros \
mls_macros \
mls \
policy_capabilities \
te_macros \
attributes \
*.te \
roles \
users \
initial_sid_contexts \
fs_use \
genfs_contexts \
port_contexts

##################################
include $(CLEAR_VARS)

LOCAL_MODULE := sepolicy
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)

include $(BUILD_SYSTEM)/base_rules.mk

sepolicy_policy.conf := $(intermediates)/policy.conf
$(sepolicy_policy.conf): PRIVATE_MLS_SENS := $(MLS_SENS)
$(sepolicy_policy.conf): PRIVATE_MLS_CATS := $(MLS_CATS)
$(sepolicy_policy.conf) : $(call build_policy, $(sepolicy_build_files))
MKDir -p $(dir $@)
$(hide) m4 -D mls_num_sens=$(PRIVATE_MLS_SENS) -D mls_num_cats=$(PRIVATE_MLS_CATS) \
-D target_build_variant=$(TARGET_BUILD_VARIANT) \
-D shipping_build=$(CYNGN_TARGET) \
-D force_permissive_to_unconfined=$(FORCE_PERMISSIVE_ TO_UNCONFINED) \
-D init_bootchart=$(INIT_BOOTCHART) \
-s $^ > $@
$(hide) sed '/dontaudit/d' $@ > [email protected]

$(LOCAL_BUILT_MODULE) : $(sepolicy_policy.conf) $(HOST_OUT_EXECUTABLES)/checkpolicy
MKDir -p $(dir $@)
$(hide) $(HOST_OUT_EXECUTABLES)/checkpolicy -M -c $(POLICYVERS) -o $@ $<
$(hide) $(HOST_OUT_EXECUTABLES)/checkpolicy -M -c $(POLICYVERS) -o $(dir $<)/$(notdir $@).dontaudit $<.dontaudit

built_sepolicy := $(LOCAL_BUILT_MODULE)
sepolicy_policy.conf :=

##################################
include $(CLEAR_VARS)

LOCAL_MODULE := sepolicy.recovery
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_TAGS := eng

include $(BUILD_SYSTEM)/base_rules.mk

sepolicy_policy_recovery.conf := $(intermediates)/policy_recovery.conf
$(sepolicy_policy_recovery.conf): PRIVATE_MLS_SENS := $(MLS_SENS)
$(sepolicy_policy_recovery.conf): PRIVATE_MLS_CATS := $(MLS_CATS)
$(sepolicy_policy_recovery.conf) : $(call build_policy, $(sepolicy_build_files))
MKDir -p $(dir $@)
$(hide) m4 -D mls_num_sens=$(PRIVATE_MLS_SENS) -D mls_num_cats=$(PRIVATE_MLS_CATS) \
-D target_build_variant=$(TARGET_BUILD_VARIANT) \
-D force_permissive_to_unconfined=$(FORCE_PERMISSIVE_ TO_UNCONFINED) \
-D target_recovery=true \
-s $^ > $@

$(LOCAL_BUILT_MODULE) : $(sepolicy_policy_recovery.conf) $(HOST_OUT_EXECUTABLES)/checkpolicy
MKDir -p $(dir $@)
$(hide) $(HOST_OUT_EXECUTABLES)/checkpolicy -M -c $(POLICYVERS) -o $@ $<

built_sepolicy_recovery := $(LOCAL_BUILT_MODULE)
sepolicy_policy_recovery.conf :=

##################################
include $(CLEAR_VARS)

LOCAL_MODULE := general_sepolicy.conf
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_TAGS := tests

include $(BUILD_SYSTEM)/base_rules.mk

exp_sepolicy_build_files :=\
$(wildcard $(addprefix $(LOCAL_PATH)/, $(sepolicy_build_files)))

$(LOCAL_BUILT_MODULE): PRIVATE_MLS_SENS := $(MLS_SENS)
$(LOCAL_BUILT_MODULE): PRIVATE_MLS_CATS := $(MLS_CATS)
$(LOCAL_BUILT_MODULE): $(exp_sepolicy_build_files)
mkdir -p $(dir $@)
$(hide) m4 -D mls_num_sens=$(PRIVATE_MLS_SENS) -D mls_num_cats=$(PRIVATE_MLS_CATS) \
-D target_build_variant=user \
-D force_permissive_to_unconfined=true \
-s $^ > $@
$(hide) sed '/dontaudit/d' $@ > [email protected]

GENERAL_SEPOLICY_POLICY.CONF = $(LOCAL_BUILT_MODULE)

exp_sepolicy_build_files :=

##################################
include $(CLEAR_VARS)

LOCAL_MODULE := file_contexts
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)

include $(BUILD_SYSTEM)/base_rules.mk

ALL_FC_FILES := $(call build_policy, file_contexts)

$(LOCAL_BUILT_MODULE): PRIVATE_SEPOLICY := $(built_sepolicy)
$(LOCAL_BUILT_MODULE): $(ALL_FC_FILES) $(built_sepolicy) $(HOST_OUT_EXECUTABLES)/checkfc
MKDir -p $(dir $@)
$(hide) m4 -s $(ALL_FC_FILES) > $@
$(hide) $(HOST_OUT_EXECUTABLES)/checkfc $(PRIVATE_SEPOLICY) $@

built_fc := $(LOCAL_BUILT_MODULE)

##################################
include $(CLEAR_VARS)
LOCAL_MODULE := seapp_contexts
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)

include $(BUILD_SYSTEM)/base_rules.mk

seapp_contexts.tmp := $(intermediates)/seapp_contexts.tmp
$(seapp_contexts.tmp): $(call build_policy, seapp_contexts)
MKDir -p $(dir $@)
$(hide) m4 -s $^ > $@

$(LOCAL_BUILT_MODULE): PRIVATE_SEPOLICY := $(built_sepolicy)
$(LOCAL_BUILT_MODULE) : $(seapp_contexts.tmp) $(built_sepolicy) $(HOST_OUT_EXECUTABLES)/checkseapp
MKDir -p $(dir $@)
$(HOST_OUT_EXECUTABLES)/checkseapp -p $(PRIVATE_SEPOLICY) -o $@ $<

built_sc := $(LOCAL_BUILT_MODULE)
seapp_contexts.tmp :=

##################################
include $(CLEAR_VARS)

LOCAL_MODULE := property_contexts
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)

include $(BUILD_SYSTEM)/base_rules.mk

ALL_PC_FILES := $(call build_policy, property_contexts)

$(LOCAL_BUILT_MODULE): PRIVATE_SEPOLICY := $(built_sepolicy)
$(LOCAL_BUILT_MODULE): $(ALL_PC_FILES) $(built_sepolicy) $(HOST_OUT_EXECUTABLES)/checkfc
MKDir -p $(dir $@)
$(hide) m4 -s $(ALL_PC_FILES) > $@
$(hide) $(HOST_OUT_EXECUTABLES)/checkfc -p $(PRIVATE_SEPOLICY) $@

built_pc := $(LOCAL_BUILT_MODULE)

##################################
include $(CLEAR_VARS)

LOCAL_MODULE := service_contexts
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)

include $(BUILD_SYSTEM)/base_rules.mk

ALL_SVC_FILES := $(call build_policy, service_contexts)

$(LOCAL_BUILT_MODULE): PRIVATE_SEPOLICY := $(built_sepolicy)
$(LOCAL_BUILT_MODULE): $(ALL_SVC_FILES) $(built_sepolicy) $(HOST_OUT_EXECUTABLES)/checkfc
MKDir -p $(dir $@)
$(hide) m4 -s $(ALL_SVC_FILES) > $@
$(hide) $(HOST_OUT_EXECUTABLES)/checkfc -p $(PRIVATE_SEPOLICY) $@

built_svc := $(LOCAL_BUILT_MODULE)

##################################

##################################
include $(CLEAR_VARS)

LOCAL_MODULE := selinux-network.sh
LOCAL_SRC_FILES := $(LOCAL_MODULE)
LOCAL_MODULE_CLASS := EXECUTABLES
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(TARGET_OUT_EXECUTABLES)

include $(BUILD_PREBUILT)

##################################
include $(CLEAR_VARS)

LOCAL_MODULE := mac_permissions.xml
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/security

include $(BUILD_SYSTEM)/base_rules.mk

# Build keys.conf
mac_perms_keys.tmp := $(intermediates)/keys.tmp
$(mac_perms_keys.tmp) : $(call build_policy, keys.conf)
MKDir -p $(dir $@)
$(hide) m4 -s $^ > $@

ALL_MAC_PERMS_FILES := $(call build_policy, $(LOCAL_MODULE))

$(LOCAL_BUILT_MODULE) : $(mac_perms_keys.tmp) $(HOST_OUT_EXECUTABLES)/insertkeys.py $(ALL_MAC_PERMS_FILES)
MKDir -p $(dir $@)
$(hide) DEFAULT_SYSTEM_DEV_CERTIFICATE="$(dir $(DEFAULT_SYSTEM_DEV_CERTIFICATE))" \
$(HOST_OUT_EXECUTABLES)/insertkeys.py -t $(TARGET_BUILD_VARIANT) -c $(TOP) $< -o $@ $(ALL_MAC_PERMS_FILES)

mac_perms_keys.tmp :=
##################################
include $(CLEAR_VARS)

LOCAL_MODULE := selinux_version
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)

include $(BUILD_SYSTEM)/base_rules.mk
$(LOCAL_BUILT_MODULE) : $(built_sepolicy) $(built_pc) $(built_fc) $(built_sc) $(built_svc)
MKDir -p $(dir $@)
$(hide) echo -n $(BUILD_FINGERPRINT) > $@

##################################

build_policy :=
sepolicy_build_files :=
sepolicy_replace_paths :=
built_sepolicy :=
built_sc :=
built_fc :=
built_pc :=
built_svc :=

include $(call all-makefiles-under,$(LOCAL_PATH))

pocarropa
14/10/16, 01:17:27
Ragga_Muffin

Extrae los archivos del adjunto y los pegas en device/xiaomi/hennessy/sepolicy.

log30 , puedes chequear si tú los tienes?

931558

Ragga_Muffin
14/10/16, 09:51:17
@Ragga_Muffin (http://www.htcmania.com/member.php?u=1445755)

Extrae los archivos del adjunto y los pegas en device/xiaomi/hennessy/sepolicy.

@log30 (http://www.htcmania.com/member.php?u=689272) , puedes chequear si tú los tienes?

931558

Gracias, con eso hemos solventado el error pero al volver a realizar el paso 3 completo en el brunch ha dado otro error (esta vez ha avanzado mas antes de dar el error).
No me gusta tener que estar preguntando todo el dia, pero, por mas que busco no encuentro nada que me diga algo.
¿Puede que este error tenga algo que ver con el "Android.mk" que por lo que sea es el que impide compilar la rom con un kernel precompilado? Digo esto, porque me ha dado una advertencia asi poco antes de arrojar el error:


No private recovery resources for TARGET_DEVICE hennessy
build/core/tasks/kernel.mk:121: ************************************************** *************
build/core/tasks/kernel.mk:122: * Using prebuilt kernel binary instead of source *
build/core/tasks/kernel.mk:123: * THIS IS DEPRECATED, AND WILL BE DISCONTINUED *
build/core/tasks/kernel.mk:124: * Please configure your device to download the kernel *
build/core/tasks/kernel.mk:125: * source repository to kernel/xiaomi/hennessy
build/core/tasks/kernel.mk:126: * See http://wiki.cyanogenmod.org/w/Doc:_integrated_kernel_building
build/core/tasks/kernel.mk:127: * for more information *
build/core/tasks/kernel.mk:128: ************************************************** *************
Aunque como no tenemos sources del kernel algo me dice que esta es la unica manera a pesar de que este obsoleta.

Y el error:

make: *** No hay ninguna regla para construir el objetivo 'device/xiaomi/hennessy/prebuilt/kernel', necesario para '/home/xabi/cm-12.1/out/target/product/hennessy/kernel'. Alto.
make: *** Se espera a que terminen otras tareas....
make: se sale del directorio '/home/xabi/cm-12.1'

#### make failed to build some targets (04:24 (mm:ss)) ####
Gracias de antemano y perdona que te moleste tanto :gracias:

pocarropa
14/10/16, 10:14:58
Gracias, con eso hemos solventado el error pero al volver a realizar el paso 3 completo en el brunch ha dado otro error (esta vez ha avanzado mas antes de dar el error).
No me gusta tener que estar preguntando todo el dia, pero, por mas que busco no encuentro nada que me diga algo.
¿Puede que este error tenga algo que ver con el "Android.mk" que por lo que sea es el que impide compilar la rom con un kernel precompilado? Digo esto, porque me ha dado una advertencia asi poco antes de arrojar el error:


No private recovery resources for TARGET_DEVICE hennessy
build/core/tasks/kernel.mk:121: ************************************************** *************
build/core/tasks/kernel.mk:122: * Using prebuilt kernel binary instead of source *
build/core/tasks/kernel.mk:123: * THIS IS DEPRECATED, AND WILL BE DISCONTINUED *
build/core/tasks/kernel.mk:124: * Please configure your device to download the kernel *
build/core/tasks/kernel.mk:125: * source repository to kernel/xiaomi/hennessy
build/core/tasks/kernel.mk:126: * See http://wiki.cyanogenmod.org/w/Doc:_integrated_kernel_building
build/core/tasks/kernel.mk:127: * for more information *
build/core/tasks/kernel.mk:128: ************************************************** *************
Aunque como no tenemos sources del kernel algo me dice que esta es la unica manera a pesar de que este obsoleta.

Y el error:

make: *** No hay ninguna regla para construir el objetivo 'device/xiaomi/hennessy/prebuilt/kernel', necesario para '/home/xabi/cm-12.1/out/target/product/hennessy/kernel'. Alto.
make: *** Se espera a que terminen otras tareas....
make: se sale del directorio '/home/xabi/cm-12.1'

#### make failed to build some targets (04:24 (mm:ss)) ####
Gracias de antemano y perdona que te moleste tanto :gracias:
No es molestia alguna, la idea de hacer la guía es que funcione.

Recuerdo que a log30 le ocurrió este error y era porque el kernel no está en la misma ruta que dice el makefile. Tengo datos limitados y no te lo puedo mirar ahora, pero busca en los .mk la ruta del kernel, debe ser que el mk busca en prebuilt/kernel y deba estar en prebuilt o a la inversa, no me acuerdo ahora.
log30, pls, puedes mirar como lo tienes tú?

PD: estás en lo cierto con el kernel, al no haber sources hay que hacerlo así

Enviado desde mi Redmi Note 3 mediante Tapatalk

Ragga_Muffin
14/10/16, 11:06:43
No es molestia alguna, la idea de hacer la guía es que funcione.

Recuerdo que a @log30 (http://www.htcmania.com/member.php?u=689272) le ocurrió este error y era porque el kernel no está en la misma ruta que dice el makefile. Tengo datos limitados y no te lo puedo mirar ahora, pero busca en los .mk la ruta del kernel, debe ser que el mk busca en prebuilt/kernel y deba estar en prebuilt o a la inversa, no me acuerdo ahora.
@log30 (http://www.htcmania.com/member.php?u=689272), pls, puedes mirar como lo tienes tú?

PD: estás en lo cierto con el kernel, al no haber sources hay que hacerlo así

Enviado desde mi Redmi Note 3 mediante Tapatalk

En el device tree (cm-12.1/device/xiaomi/hennessy) he encontrado dos archivos que le hacen referencia al kernel, me ha llamado la atencion porque estan sin la extension .gz, aunque esto puede que este bien eso no lo se.
De todos modos, aqui te dejo los dos archivos y te señalo en rojo lo que me ha llamado la atencion:

BoardConfig.mk:

# mt6795 platform boardconfig
LOCAL_PATH := device/xiaomi/hennessy
-include vendor/xiaomi/hennessy/BoardConfigVendor.mk

TARGET_SPECIFIC_HEADER_PATH := device/xiaomi/hennessy/include

USE_CAMERA_STUB := true
TARGET_PROVIDES_INIT_RC := true
# inherit from the proprietary version

# Platform
ARCH_ARM_HAVE_TLS_REGISTER := true
TARGET_BOARD_PLATFORM := mt6795
TARGET_NO_BOOTLOADER := true
TARGET_USERIMAGES_USE_EXT4 := true
TARGET_NO_FACTORYIMAGE := true

TARGET_LDPRELOAD += libxlog.so

# CPU
TARGET_ARCH := arm64
TARGET_ARCH_VARIANT := armv8-a
TARGET_CPU_ABI := arm64-v8a
TARGET_CPU_ABI2 :=
TARGET_CPU_VARIANT := generic
TARGET_CPU_SMP := true

TARGET_2ND_ARCH := arm
TARGET_2ND_ARCH_VARIANT := armv7-a-neon
TARGET_2ND_CPU_ABI := armeabi-v7a
TARGET_2ND_CPU_ABI2 := armeabi
TARGET_2ND_CPU_VARIANT := cortex-a53
TARGET_BOARD_SUFFIX := _64
TARGET_USES_64_BIT_BINDER := true

TARGET_CPU_CORTEX_A53 := true

TARGET_BOOTLOADER_BOARD_NAME := mt6795

# MTK Hardware
BOARD_HAS_MTK_HARDWARE := true
MTK_HARDWARE := true
BOARD_USES_LEGACY_MTK_AV_BLOB := true
COMMON_GLOBAL_CFLAGS += -DMTK_HARDWARE -DADD_LEGACY_ACQUIRE_BUFFER_SYMBOL
COMMON_GLOBAL_CPPFLAGS += -DMTK_HARDWARE

BOARD_CONNECTIVITY_VENDOR := MediaTek
BOARD_USES_MTK_AUDIO := true

# Kernel
TARGET_USES_64_BIT_BINDER := true
TARGET_IS_64_BIT := true
BOARD_KERNEL_CMDLINE := bootopt=64S3,32N2,64N2 androidboot.selinux=permissive
BOARD_KERNEL_BASE := 0x40078000
BOARD_KERNEL_PAGESIZE := 2048
BOARD_MKBOOTIMG_ARGS := --base 0x40078000 --pagesize 2048 --kernel_offset 0x00008000 --ramdisk_offset 0x03f88000 --second_offset 0x00e88000 --tags_offset 0x0df88000 --board Bule
TARGET_PREBUILT_KERNEL := device/xiaomi/hennessy/prebuilt/kernel
BOARD_CUSTOM_BOOTIMG := true

# MKImage
TARGET_MKIMAGE := device/xiaomi/hennessy/mkimage
TARGET_USE_BUILT_BOOTIMAGE := true

TARGET_KMODULES := true
# Disable memcpy opt (for audio libraries)
TARGET_CPU_MEMCPY_OPT_DISABLE := true

# Display
USE_OPENGL_RENDERER := true
BOARD_EGL_CFG := device/xiaomi/hennessy/configs/egl.cfg
TARGET_SCREEN_HEIGHT := 1920
TARGET_SCREEN_WIDTH := 1080
BOARD_EGL_WORKAROUND_BUG_10194508 := true

# Flags
TARGET_GLOBAL_CFLAGS += -mfpu=neon -mfloat-abi=softfp
TARGET_GLOBAL_CPPFLAGS += -mfpu=neon -mfloat-abi=softfp
COMMON_GLOBAL_CFLAGS += -DNO_SECURE_DISCARD
COMMON_GLOBAL_CFLAGS += -DDISABLE_HW_ID_MATCH_CHECK
TARGET_RUNNING_WITHOUT_SYNC_FRAMEWORK := true

# LightHAL
TARGET_PROVIDES_LIBLIGHT := true

# Enable Minikin text layout engine (will be the default soon)
USE_MINIKIN := true

# Charger
BOARD_CHARGER_SHOW_PERCENTAGE := true

# Fonts
EXTENDED_FONT_FOOTPRINT := true

TARGET_SYSTEM_PROP := device/xiaomi/hennessy/system.prop

# PREBUILT_Chromium
#PRODUCT_PREBUILT_WEBVIEWCHROMIUM := yes

# Bluetooth
BOARD_HAVE_BLUETOOTH := true
BOARD_HAVE_BLUETOOTH_MTK := true
BOARD_BLUETOOTH_DOES_NOT_USE_RFKILL := true
BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := device/xiaomi/hennessy/bluetooth

# GPS
BOARD_GPS_LIBRARIES :=true
BOARD_CONNECTIVITY_MODULE := MT6630
BOARD_MEDIATEK_USES_GPS := true

# FM
MTK_FM_SUPPORT :=true
MTK_FM_RX_SUPPORT :=true

# Consumerir
MTK_IRTX_SUPPORT :=true

# MTK_WLAN_SUPPORT
WPA_SUPPLICANT_VERSION := VER_0_8_X
BOARD_HOSTAPD_DRIVER := NL80211
BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_mt66xx
BOARD_WPA_SUPPLICANT_DRIVER := NL80211
BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_mt66xx
WIFI_DRIVER_FW_PATH_PARAM := "/dev/wmtWifi"
WIFI_DRIVER_FW_PATH_STA := STA
WIFI_DRIVER_FW_PATH_AP := AP
WIFI_DRIVER_FW_PATH_P2P := P2P

# make_ext4fs requires numbers in dec format
TARGET_USERIMAGES_USE_EXT4 := true
BOARD_BOOTIMAGE_PARTITION_SIZE := 20971520
BOARD_RECOVERYIMAGE_PARTITION_SIZE := 20971520
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1610612736
BOARD_USERDATAIMAGE_PARTITION_SIZE := 13474725888
BOARD_FLASH_BLOCK_SIZE := 131072

BOARD_HAS_LARGE_FILESYSTEM := true
TARGET_USERIMAGES_USE_EXT4 := true

TARGET_USE_CUSTOM_LUN_FILE_PATH := /sys/class/android_usb/android0/f_mass_storage/lun/file

BOARD_HAS_NO_SELECT_BUTTON := true
BOARD_RECOVERY_SWIPE := true
BOARD_SUPPRESS_EMMC_WIPE := true
BOARD_USE_CUSTOM_RECOVERY_FONT := \"roboto_15x24.h\"
TARGET_RECOVERY_FSTAB := device/xiaomi/hennessy/rootdir/recovery.fstab
TARGET_RECOVERY_PIXEL_FORMAT := "RGBA_8888"
TARGET_USERIMAGES_USE_EXT4 := true

# SELinux
BOARD_SEPOLICY_DIRS := \
device/xiaomi/hennessy/sepolicy

#SELinux: MTK added
BOARD_SEPOLICY_UNION := \
app.te \
device.te \
domain.te \
file.te \
file_contexts \
fs_use \
installd.te \
net.te \
netd.te \
te_macros \
vold.te \
untrusted_app.te \
platform_app.te \
system_app.te \
zygote.te \
aal.te \
aee_core_forwarder.te \
akmd09911.te \
akmd8963.te \
akmd8975.te \
ami304d.te \
ist8303.te \
st480.te \
af7133e.te \
mc6470d.te \
qmcX983d.te \
atcid.te \
atci_service.te \
audiocmdservice_atci.te \
batterywarning.te \
bmm050d.te \
bmm056d.te \
boot_logo_updater.te \
br_app_data_service.te \
BGW.te \
ccci_fsd.te \
ccci_mdinit.te \
statusd.te \
flashlessd.te \
ccci_rpcd.te \
eemcs_fsd.te \
eemcs_mdinit.te \
dhcp6c.te \
dm_agent_binder.te \
dualmdlogger.te \
dumpstate.te \
em_svr.te \
enableswap.te \
factory.te \
fota1.te \
fuelgauged.te \
geomagneticd.te \
GoogleOtaBinder.te \
gsm0710muxdmd2.te \
gsm0710muxd.te \
guiext-server.te \
ipod.te \
matv.te \
mc6420d.te \
mdlogger.te \
mdnsd.te \
memsicd3416x.te \
memsicd.te \
meta_tst.te \
mmc_ffu.te \
mmp.te \
mnld.te \
mobile_log_d.te \
mpud6050.te \
msensord.te \
mmc3524xd.te \
mtk_6620_launcher.te \
mtk_agpsd.te \
mtkbt.te \
muxreport.te \
netdiag.te \
nvram_agent_binder.te \
nvram_daemon.te \
orientationd.te \
permission_check.te \
poad.te \
pppd_dt.te \
pppd_via.te \
pq.te \
recovery.te \
resmon.te \
mtkrild.te \
mtkrildmd2.te \
viarild.te \
s62xd.te \
sn.te \
epdg_wod.te \
ipsec.te \
terservice.te \
thermald.te \
thermal_manager.te \
thermal.te \
tiny_mkswap.te \
tiny_swapon.te \
vdc.te \
volte_imcb.te \
volte_ua.te \
volte_stack.te \
vtservice.te \
wmt_loader.te \
icusbd.te \
xlog.te \
mobicore.te \
install_recovery.te \
program_binary.te \
genfs_contexts



BOARD_SEPOLICY_UNION += \
adbd.te \
bluetooth.te \
bootanim.te \
clatd.te \
debuggerd.te \
drmserver.te \
dhcp.te \
dnsmasq.te \
gpsd.te \
hci_attach.te \
healthd.te \
hostapd.te \
inputflinger.te \
init.te \
init_shell.te \
isolated_app.te \
keystore.te \
kernel.te \
lmkd.te \
logd.te \
mediaserver.te \
mtp.te \
nfc.te \
racoon.te \
radio.te \
rild.te \
runas.te \
sdcardd.te \
servicemanager.te \
shared_relro.te \
shell.te \
system_app.te \
system_server.te \
surfaceflinger.te \
tee.te \
ueventd.te \
uncrypt.te \
watchdogd.te \
wpa_supplicant.te \
wpa.te \
property.te \
property_contexts \
service.te \
dmlog.te \
MtkCodecService.te \
ppl_agent.te \
pvrsrvctl.te \
wifi2agps.te \
dex2oat.te \
emdlogger.te \
autokd.te \
ppp.te \
launchpppoe.te \
sbchk.te \
service_contexts \
ril-3gddaemon.te \
usbdongled.te \
zpppd_gprs.te \
md_ctrl.te \
cmddumper.te \
tunman.te

Device.mk:

$(call inherit-product, $(SRC_TARGET_DIR)/product/languages_full.mk)

# The gps config appropriate for this device
$(call inherit-product, device/common/gps/gps_us_supl.mk)
$(call inherit-product, device/xiaomi/hennessy/vendor/copyfiles.mk)
$(call inherit-product, vendor/xiaomi/hennessy/hennessy-vendor-blobs.mk)

LOCAL_PATH := device/xiaomi/hennessy

DEVICE_PACKAGE_OVERLAYS += device/xiaomi/hennessy/overlay

# Device uses high-density artwork where available
PRODUCT_AAPT_CONFIG := normal xhdpi xxhdpi
PRODUCT_AAPT_PREF_CONFIG := xxhdpi

# Recovery allowed devices
TARGET_OTA_ASSERT_DEVICE := hennessy

ifeq ($(TARGET_PREBUILT_KERNEL),)
LOCAL_KERNEL := device/xiaomi/hennessy/prebuilt/kernel
else
LOCAL_KERNEL := $(TARGET_PREBUILT_KERNEL)
endif

PRODUCT_PACKAGES += \
libxlog

PRODUCT_COPY_FILES += \
$(LOCAL_KERNEL):prebuilt/kernel

# Init
PRODUCT_PACKAGES += \
hennessy

# Gralloc
PRODUCT_PACKAGES += \
libgralloc_extra

# Immvibe
PRODUCT_PACKAGES += \
immvibe

# Hack to fix asec on emulated sdcard
PRODUCT_PACKAGES += \
asec_helper

# Audio
PRODUCT_PACKAGES += \
audio_policy.default \
audio_policy.stub \
audio.r_submix.default \
audio.usb.default \
libaudio-resampler \
tinymix \
libtinyalsa
PRODUCT_COPY_FILES += \
device/xiaomi/hennessy/configs/media_codecs.xml:system/etc/media_codecs.xml \
device/xiaomi/hennessy/configs/media_profiles.xml:system/etc/media_profiles.xml \
device/xiaomi/hennessy/configs/audio_device.xml:system/etc/audio_device.xml \
device/xiaomi/hennessy/configs/audio_policy.conf:system/etc/audio_policy.conf

# Bluetooth
PRODUCT_PACKAGES += \
audio.a2dp.default
PRODUCT_PACKAGES += \
libbt-vendor
PRODUCT_COPY_FILES += \
device/xiaomi/hennessy/configs/bt_did.conf:system/etc/bluetooth/bt_did.conf

# Keyboard layout
PRODUCT_COPY_FILES += \
device/xiaomi/hennessy/configs/mtk-kpd.kl:system/usr/keylayout/mtk-kpd.kl \
device/xiaomi/hennessy/configs/ACCDET.kl:system/usr/keylayout/ACCDET.kl\
device/xiaomi/hennessy/configs/AVRCP.kl:system/usr/keylayout/AVRCP.kl

#Light
#PRODUCT_PACKAGES += \
#lights.mt6795

# Ramdisk
PRODUCT_COPY_FILES += \
device/xiaomi/hennessy/rootdir/enableswap.sh:root/enableswap.sh \
device/xiaomi/hennessy/rootdir/factory_init.project.rc:root/factory_init.project.rc \
device/xiaomi/hennessy/rootdir/factory_init.rc:root/factory_init.rc \
device/xiaomi/hennessy/rootdir/file_context:root/file_context \
device/xiaomi/hennessy/rootdir/fstab.charger:root/fstab.charger\
device/xiaomi/hennessy/rootdir/fstab.mt6795:root/fstab.mt6795 \
device/xiaomi/hennessy/rootdir/init.aee.rc:root/init.aee.rc \
device/xiaomi/hennessy/rootdir/init.modem.rc:root/init.modem.rc \
device/xiaomi/hennessy/rootdir/init.mt6795.rc:root/init.mt6795.rc \
device/xiaomi/hennessy/rootdir/init.mt6795.usb.rc:root/init.mt6795.usb.rc \
device/xiaomi/hennessy/rootdir/init.project.rc:root/init.project.rc \
device/xiaomi/hennessy/rootdir/init.rc:root/init.rc \
device/xiaomi/hennessy/rootdir/init.ssd.rc:root/init.ssd.rc \
device/xiaomi/hennessy/rootdir/init.xlog.rc:root/init.xlog.rc \
device/xiaomi/hennessy/rootdir/meta_init.modem.rc:root/meta_init.modem.rc \
device/xiaomi/hennessy/rootdir/meta_init.project.rc:root/meta_init.project.rc \
device/xiaomi/hennessy/rootdir/meta_init.rc:root/meta_init.rc \
device/xiaomi/hennessy/rootdir/init:root/init \
device/xiaomi/hennessy/rootdir/init.hennessy.power.rc:root/init.hennessy.power.rc \
device/xiaomi/hennessy/rootdir/init.cm.rc:root/init.cm.rc \

# Telecom
PRODUCT_COPY_FILES += \
device/xiaomi/hennessy/configs/apns-conf.xml:system/etc/apns-conf.xml \
device/xiaomi/hennessy/configs/ecc_list.xml:system/etc/ecc_list.xml \
device/xiaomi/hennessy/configs/spn-conf.xml:system/etc/spn-conf.xml

# Thermal
PRODUCT_COPY_FILES += \
device/xiaomi/hennessy/configs/.ht120.mtc:system/etc/.tp/.ht120.mtc \
device/xiaomi/hennessy/configs/thermal.conf:system/etc/.tp/thermal.conf \
device/xiaomi/hennessy/configs/thermal.off.conf:system/etc/.tp/thermal.off.conf \
device/xiaomi/hennessy/configs/.thermal_policy_00:system/etc/.tp/.thermal_policy_00 \
device/xiaomi/hennessy/configs/.thermal_policy_01:system/etc/.tp/.thermal_policy_01

# These are the hardware-specific features
PRODUCT_COPY_FILES += \
device/xiaomi/hennessy/configs/android.hardware.consumerir.xml:system/etc/permissions/android.hardware.consumerir.xml \
device/xiaomi/hennessy/configs/android.hardware.microphone.xml:system/etc/permissions/android.hardware.microphone.xml \
frameworks/native/data/etc/handheld_core_hardware.xml:system/etc/permissions/handheld_core_hardware.xml \
frameworks/native/data/etc/android.hardware.camera.autofocus.xml:system/etc/permissions/android.hardware.camera.autofocus.xml \
device/xiaomi/hennessy/configs/android.hardware.camera.xml:system/etc/permissions/android.hardware.camera.xml \
frameworks/native/data/etc/android.hardware.camera.flash-autofocus.xml:system/etc/permissions/android.hardware.camera.flash-autofocus.xml \
frameworks/native/data/etc/android.hardware.camera.front.xml:system/etc/permissions/android.hardware.camera.front.xml \
frameworks/native/data/etc/android.hardware.location.gps.xml:system/etc/permissions/android.hardware.location.gps.xml \
frameworks/native/data/etc/android.hardware.wifi.xml:system/etc/permissions/android.hardware.wifi.xml \
frameworks/native/data/etc/android.hardware.wifi.direct.xml:system/etc/permissions/android.hardware.wifi.direct.xml \
frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:system/etc/permissions/android.hardware.sensor.accelerometer.xml \
frameworks/native/data/etc/android.hardware.sensor.compass.xml:system/etc/permissions/android.hardware.compass.xml \
frameworks/native/data/etc/android.hardware.sensor.light.xml:system/etc/permissions/android.hardware.sensor.light.xml \
frameworks/native/data/etc/android.hardware.sensor.gyroscope.xml:system/etc/permissions/android.hardware.sensor.gyroscope.xml \
frameworks/native/data/etc/android.hardware.sensor.proximity.xml:system/etc/permissions/android.hardware.sensor.proximity.xml \
frameworks/native/data/etc/android.hardware.sensor.stepcounter.xml:system/etc/permissions/android.hardware.sensor.stepcounter.xml \
frameworks/native/data/etc/android.hardware.sensor.stepdetector.xml:system/etc/permissions/android.hardware.sensor.stepdetector.xml \
frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.x ml:system/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.x ml \
frameworks/native/data/etc/android.hardware.touchscreen.multitouch.distinct.x ml:system/etc/permissions/android.hardware.touchscreen.multitouch.distinct.x ml \
frameworks/native/data/etc/android.hardware.touchscreen.multitouch.xml:system/etc/permissions/android.hardware.touchscreen.multitouch.xml \
frameworks/native/data/etc/android.hardware.touchscreen.xml:system/etc/permissions/android.hardware.touchscreen.xml \
frameworks/native/data/etc/android.software.sip.voip.xml:system/etc/permissions/android.software.sip.voip.xml \
frameworks/native/data/etc/android.hardware.usb.accessory.xml:system/etc/permissions/android.hardware.usb.accessory.xml \
frameworks/native/data/etc/android.hardware.ethernet.xml:system/etc/permissions/android.hardware.ethernet.xml \
frameworks/native/data/etc/android.hardware.audio.low_latency.xml:system/etc/permissions/android.hardware.audio.low_latency.xml \
frameworks/native/data/etc/android.hardware.bluetooth.xml:system/etc/permissions/android.hardware.bluetooth.xml \
frameworks/native/data/etc/android.hardware.bluetooth_le.xml:system/etc/permissions/android.hardware.bluetooth_le.xml \
frameworks/native/data/etc/android.hardware.telephony.cdma.xml:system/etc/permissions/android.hardware.telephony.cdma.xml \
frameworks/native/data/etc/android.hardware.telephony.gsm.xml:system/etc/permissions/android.hardware.telephony.gsm.xml \
frameworks/native/data/etc/android.hardware.usb.host.xml:system/etc/permissions/android.hardware.usb.host.xml

# Media
PRODUCT_COPY_FILES += \
frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/etc/media_codecs_google_audio.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:system/etc/media_codecs_google_telephony.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:system/etc/media_codecs_google_video.xml

PRODUCT_COPY_FILES += \
device/xiaomi/hennessy/configs/media_codecs.xml:system/etc/media_codecs.xml \
device/xiaomi/hennessy/configs/media_codecs.xml:system/etc/permissions/media_codecs.xml \
device/xiaomi/hennessy/configs/media_profiles.xml:system/etc/media_profiles.xml

PRODUCT_TAGS += dalvik.gc.type-precise

# Charger
PRODUCT_PACKAGES += \
charger_res_images

# Wifi
PRODUCT_PACKAGES += \
lib_driver_cmd_mt66xx \
libwifi-hal-mt66xx \
wifi_hal \
libwpa_client \
hostapd \
hostapd_cli \
dhcpcd.conf \
wpa_supplicant \
wpa_supplicant.conf

PRODUCT_COPY_FILES += \
device/xiaomi/hennessy/configs/hostapd/hostapd_default.conf:system/etc/hostapd/hostapd_default.conf \
device/xiaomi/hennessy/configs/hostapd/hostapd.accept:system/etc/hostapd/hostapd.accept \
device/xiaomi/hennessy/configs/hostapd/hostapd.deny:system/etc/hostapd/hostapd.deny

# Ifaddrs
PRODUCT_PACKAGES += \
libifaddrs

# Torch
PRODUCT_PACKAGES += \
Torch

# STk
PRODUCT_PACKAGES += \
Stk

# GPS
PRODUCT_COPY_FILES += \
device/xiaomi/hennessy/configs/agps_profiles_conf2.xml:system/etc/agps_profiles_conf2.xml \

PRODUCT_DEFAULT_PROPERTY_OVERRIDES := \
ro.adb.secure=0 \
ro.secure=1 \
ro.allow.mock.location=1 \
ro.debuggable=1 \
ro.zygote=zygote64_32 \
camera.disable_zsl_mode=1 \
ro.mount.fs=EXT4 \
persist.service.acm.enable=0 \
persist.sys.usb.config=mtp,mass_storage \
persist.sys.timezone=Europe/Brussels

PRODUCT_PROPERTY_OVERRIDES += \
ro.kernel.android.checkjni=0 \
ro.telephony.ril_class=MediaTekRIL \
ro.telephony.ril.config=fakeiccid \
persist.call_recording.enabled=true \
persist.call_recording.src=4 \
persist.debug.wfd.enable=1

PRODUCT_PACKAGES += \
librs_jni \
com.android.future.usb.accessory

PRODUCT_PACKAGES += \
libnl_2 \
libtinyxml

# Filesystem management tools
PRODUCT_PACKAGES += \
e2fsck \
fibmap.f2fs \
fsck.f2fs \
mkfs.f2fs \
make_ext4fs \
resize2fs \
setup_fs \
ext4_resize \
resize_ext4 \
superumount

PRODUCT_BUILD_PROP_OVERRIDES += BUILD_UTC_DATE=8

# Dalvik/HWUI
$(call inherit-product-if-exists, frameworks/native/build/phone-xxhdpi-2048-dalvik-heap.mk)
$(call inherit-product-if-exists, frameworks/native/build/phone-xxhdpi-2048-hwui-memory.mk)
PD: ¿Si cambio en esta linea del BoardConfig.mk de permissive a enforcing tendre el selinux en enforcing o se debe de cambiar en otro sitio?

androidboot.selinux=permissive

pocarropa
14/10/16, 12:27:03
En Boardconfig.mk edita con este cambio:

TARGET_PREBUILT_KERNEL := device/xiaomi/hennessy/prebuilt/kernel
BOARD_KERNEL_IMAGE_NAME := Image.gz-dtb

Y renombra "kernel.gz" a "kernel" en la carpeta prebuilt

Después haz make clean y vuelve a compilar

PD: No cambies el selinux a enforced o no booteará

Ragga_Muffin
14/10/16, 12:54:39
En Boardconfig.mk edita con este cambio:

TARGET_PREBUILT_KERNEL := device/xiaomi/hennessy/prebuilt/kernel
BOARD_KERNEL_IMAGE_NAME := Image.gz-dtbY renombra "kernel.gz" a "kernel" en la carpeta prebuilt

Después haz make clean y vuelve a compilar

PD: No cambies el selinux a enforced o no booteará

Vale, he probado esto ultimo que me has puesto (lo de añadir una linea a BoardConfig.mk y renombrar el kernel.gz a kernel) y ha funcionado pero algo mas adelante otro error, que algo me dice, que va a ser por algo de rutas, como el anterior.
He encontrado un archivo con el mismo nombre excepto que en vez de ser "file_context" es "file_contexts" en la carpeta sepolicy del device tree,
¿Quizas sea este el archivo que busca?


make: *** No hay ninguna regla para construir el objetivo 'device/xiaomi/hennessy/rootdir/file_context', necesario para '/home/xabi/cm-12.1/out/target/product/hennessy/root/file_context'. Alto.
make: *** Se espera a que terminen otras tareas....
Notice file: external/sepolicy/NOTICE -- /home/xabi/cm-12.1/out/target/product/hennessy/obj/NOTICE_FILES/src//root/service_contexts.txt
make: se sale del directorio '/home/xabi/cm-12.1'

#### make failed to build some targets (03:42 (mm:ss)) ####

pocarropa
14/10/16, 13:09:18
No sé que ha debido pasar pero el device tree no se ha subido bien, faltan archivos. Descarga el adjunto y añádelo a la carpeta rootdir:

931623

Ragga_Muffin
14/10/16, 13:12:51
No sé que ha debido pasar pero el device tree no se ha subido bien, faltan archivos. Descarga el adjunto y añádelo a la carpeta rootdir:

931623

Pues debe ser eso porque ahora ha avanzado mas pero igualmente otro error de que falta otro archivo pocarropa


make: *** No hay ninguna regla para construir el objetivo 'device/xiaomi/hennessy/rootdir/init.aee.rc', necesario para '/home/xabi/cm-12.1/out/target/product/hennessy/root/init.aee.rc'. Alto.
make: *** Se espera a que terminen otras tareas....
Notice file: external/sepolicy/NOTICE -- /home/xabi/cm-12.1/out/target/product/hennessy/obj/NOTICE_FILES/src//root/service_contexts.txt
make: se sale del directorio '/home/xabi/cm-12.1'

#### make failed to build some targets (03:38 (mm:ss)) ####

pocarropa
14/10/16, 16:46:53
Ragga_Muffin ,

He estado repasando el device tree y he corregido algunos errores que habían, te lo adjunto para que directamente lo sustituyas y empieces de nuevo con make clean:

931674

Ragga_Muffin
14/10/16, 18:25:38
Ragga_Muffin ,

He estado repasando el device tree y he corregido algunos errores que habían, te lo adjunto para que directamente lo sustituyas y empieces de nuevo con make clean:

931674

Muchas gracias, en cuanto llegue a casa si tengo tiempo lo pruebo y comentó, sino mañana lo haré :ok:

Ragga_Muffin
15/10/16, 00:06:29
@Ragga_Muffin (http://www.htcmania.com/member.php?u=1445755) ,

He estado repasando el device tree y he corregido algunos errores que habían, te lo adjunto para que directamente lo sustituyas y empieces de nuevo con make clean:

931674

Sustituido y compilando, veremos a ver si ahora va la vencida

pocarropa
15/10/16, 00:07:39
Ten fe [emoji6]

Enviado desde mi Redmi Note 3 mediante Tapatalk

Ragga_Muffin
15/10/16, 00:54:18
Ten fe [emoji6]

Enviado desde mi Redmi Note 3 mediante Tapatalk

Después de tres horas compilando correctamente me acaba de arrojar un error, pensé que esta vez ya lo teníamos :cry: pocarropa


/home/xabi/cm-12.1/out/host/linux-x86/bin/checkpolicy: loading policy configuration from /home/xabi/cm-12.1/out/target/product/hennessy/obj/ETC/sepolicy.recovery_intermediates/policy_recovery.conf
device/xiaomi/hennessy/sepolicy/debuggerd.te:45:ERROR 'unknown type aee_exp_data_file' at token ';' on line 20929:
allow debuggerd aee_exp_data_file:dir { relabelto { create reparent rmdir setattr { { open getattr read search ioctl } { open search write add_name remove_name } } { getattr link unlink rename } } };
#data/aee_exp
checkpolicy: error(s) encountered while parsing configuration
external/sepolicy/Android.mk:151: fallo en las instrucciones para el objetivo '/home/xabi/cm-12.1/out/target/product/hennessy/obj/ETC/sepolicy.recovery_intermediates/sepolicy.recovery'
make: *** [/home/xabi/cm-12.1/out/target/product/hennessy/obj/ETC/sepolicy.recovery_intermediates/sepolicy.recovery] Error 1
make: *** Se espera a que terminen otras tareas....

pocarropa
15/10/16, 13:47:38
Voy a ver unos cambios que hice y pruebo yo a compilar

Enviado desde mi Redmi Note 3 mediante Tapatalk

Ragga_Muffin
15/10/16, 14:18:01
Voy a ver unos cambios que hice y pruebo yo a compilar

Enviado desde mi Redmi Note 3 mediante Tapatalk

Buena suerte con ello amigo :ok:

pocarropa
16/10/16, 09:51:53
Buena suerte con ello amigo :ok:

Ya he corregido los errores de compilación. Lo malo es que hay que volver a descargarse las sources completas pues entra en conflicto con los parches que se aplicaron (de ahi la tardanza).

Elimina la carpeta cm-12.1 y procede desde el paso 2 item 3 pero utilizando este device tree:

932188


932189

log30
16/10/16, 12:48:12
pocarropa esta ya solucionado el problema? acabo de ver ahora las menciones... he tenido mucha faena esta semana y he estado desconectado, si todavi le da errores si quieres le subo yo los archivos que estos van finos finos y esta corregido el problema que tuviomos con la camara y todo

Ragga_Muffin
16/10/16, 14:02:29
Ya he corregido los errores de compilación. Lo malo es que hay que volver a descargarse las sources completas pues entra en conflicto con los parches que se aplicaron (de ahi la tardanza).

Elimina la carpeta cm-12.1 y procede desde el paso 2 item 3 pero utilizando este device tree:

932188

932189

Muchas gracias, en cuanto pueda le doy caña :platano:

pocarropa
16/10/16, 23:21:14
pocarropa esta ya solucionado el problema? acabo de ver ahora las menciones... he tenido mucha faena esta semana y he estado desconectado, si todavi le da errores si quieres le subo yo los archivos que estos van finos finos y esta corregido el problema que tuviomos con la camara y todo

Habría que probar un vez compilada, cuando pueda el compañero ya nos contará. De todos modos pásamelos por si acaso

Ragga_Muffin
16/10/16, 23:49:14
Habría que probar un vez compilada, cuando pueda el compañero ya nos contará. De todos modos pásamelos por si acaso

Bueno ya esta compilado y sin errores, pero al bootearla se queda pillada en iniciando aplicaciones.
He probado a iniciarla sin las gapps y con ellas y no hay manera.
Se esta haciendo de rogar cyano :(
pocarropa

log30
17/10/16, 18:17:26
Bueno ya esta compilado y sin errores, pero al bootearla se queda pillada en iniciando aplicaciones.
He probado a iniciarla sin las gapps y con ellas y no hay manera.
Se esta haciendo de rogar cyano :(
pocarropa
Eso me paso a mi tambien es por una libreria de la camara, pocarropa me dijo cual es, si no se lo sabe de memoria lo busco en los mensajes

Enviado desde mi Redmi Note 3 mediante Tapatalk

Ragga_Muffin
17/10/16, 18:28:28
Eso me paso a mi tambien es por una libreria de la camara, pocarropa me dijo cual es, si no se lo sabe de memoria lo busco en los mensajes

Enviado desde mi Redmi Note 3 mediante Tapatalk

Me alegra saber que al menos sepas cual es el error, a ver si corrigiendo eso lo logramos X-D

pocarropa
17/10/16, 20:00:25
Bueno ya esta compilado y sin errores, pero al bootearla se queda pillada en iniciando aplicaciones.
He probado a iniciarla sin las gapps y con ellas y no hay manera.
Se esta haciendo de rogar cyano :(
pocarropa
Ah vale se me olvidó. Tienes que eliminar en la carpeta lib y li64, libcamera_client.so y libcameraservice.so.

Puede que no esté en las dos carpetas, pero busca que al menos una de esas librerías te está generando el problema.

Enviado desde mi Redmi Note 3 mediante Tapatalk

Ragga_Muffin
17/10/16, 20:10:30
Ah vale se me olvidó. Tienes que eliminar en la carpeta lib y li64, libcamera_client.so y libcameraservice.so.

Puede que no esté en las dos carpetas, pero busca que al menos una de esas librerías te está generando el problema.

Enviado desde mi Redmi Note 3 mediante Tapatalk

Bien, a la noche lo hago, espero que al menos no tarde mucho en recompilar, que para algo esta el ccache :-)

pocarropa
17/10/16, 20:21:27
Recuerda hacer make clean (como siempre).

La siguiente es la buena [emoji6]

Enviado desde mi Redmi Note 3 mediante Tapatalk

Ragga_Muffin
17/10/16, 20:33:13
Recuerda hacer make clean (como siempre).

La siguiente es la buena [emoji6]

Enviado desde mi Redmi Note 3 mediante Tapatalk

Si tranquilo, que eso ya va en la sangre jajajaja.
Respecto a los archivos, he mirado en tu github y están en el vendor, tanto en la carpeta lib como lib64 está el archivo "libcamera_client.so" pero del otro ni rastro.
¿Con esos dos valdrá verdad? No vaya a ser que me toque hacer otro make clean X-D

pocarropa
17/10/16, 20:41:53
Si tranquilo, que eso ya va en la sangre jajajaja.
Respecto a los archivos, he mirado en tu github y están en el vendor, tanto en la carpeta lib como lib64 está el archivo "libcamera_client.so" pero del otro ni rastro.
¿Con esos dos valdrá verdad? No vaya a ser que me toque hacer otro make clean X-D
Pues elimina esos dos y a compilar se ha dicho [emoji106]

Enviado desde mi Redmi Note 3 mediante Tapatalk

log30
17/10/16, 21:40:23
Sisi no esta en todas las carpetas, los que pilles que coincidan los borras y ya irá

Enviado desde mi Redmi Note 3 mediante Tapatalk

Ragga_Muffin
18/10/16, 01:04:15
Ya esta pocarropa y log30, rom compilada y funcional. He de decir que ha tardado mucho menos que la anterior, bendito ccache jeje.
Por cierto, junto al zip que tenia que flashear me ha creado uno igualito pero que pone algo de OTA, ¿Tiene alguna diferencia respecto al otro zip? Más que nada es por curiosidad.
Y como no, muchas gracias por dedicar vuestro tiempo a este tipo de cosas :gracias:

log30
18/10/16, 12:16:06
Ya esta @pocarropa (http://www.htcmania.com/member.php?u=1352787) y @log30 (http://www.htcmania.com/member.php?u=689272), rom compilada y funcional. He de decir que ha tardado mucho menos que la anterior, bendito ccache jeje.
Por cierto, junto al zip que tenia que flashear me ha creado uno igualito pero que pone algo de OTA, ¿Tiene alguna diferencia respecto al otro zip? Más que nada es por curiosidad.
Y como no, muchas gracias por dedicar vuestro tiempo a este tipo de cosas :gracias:
yo no lo uso nunca el OTA, la rom es el otro zip XD
no se para que sera el ota...

pocarropa
18/10/16, 12:44:17
Ya esta pocarropa y log30, rom compilada y funcional. He de decir que ha tardado mucho menos que la anterior, bendito ccache jeje.
Por cierto, junto al zip que tenia que flashear me ha creado uno igualito pero que pone algo de OTA, ¿Tiene alguna diferencia respecto al otro zip? Más que nada es por curiosidad.
Y como no, muchas gracias por dedicar vuestro tiempo a este tipo de cosas :gracias:
Creo que la diferencia es que el script de instalación no hace format system, de esta manera no es necesario volver a instalar app que tengas en sistema y gapps, aunque bien es cierto que las gapps ya llevan un script para que esto no suceda.

Yo no la suelo usar. Chequea en próximas compilaciones si tiene el mismo tamaño por ver si es incremental o es también la ROM entera

Enviado desde mi Redmi Note 3 mediante Tapatalk

Ragga_Muffin
18/10/16, 16:00:16
Creo que la diferencia es que el script de instalación no hace format system, de esta manera no es necesario volver a instalar app que tengas en sistema y gapps, aunque bien es cierto que las gapps ya llevan un script para que esto no suceda.

Yo no la suelo usar. Chequea en próximas compilaciones si tiene el mismo tamaño por ver si es incremental o es también la ROM entera

Enviado desde mi Redmi Note 3 mediante Tapatalk

Le echaré un ojo cuando haga otra compilación. Por cierto, ¿Alguna idea sobre si podemos actualizar el kernel o el vendor cogiéndolo de las roms miui? Lo pregunto porque sicmosh posteó lo siguiente en uno de sus changelogs:

- a new kernel (miui V8.0.1.0)
- vendor is updated (miui V8.0.1.0)

pocarropa
18/10/16, 16:13:45
Le echaré un ojo cuando haga otra compilación. Por cierto, ¿Alguna idea sobre si podemos actualizar el kernel o el vendor cogiéndolo de las roms miui? Lo pregunto porque sicmosh posteó lo siguiente en uno de sus changelogs:

- a new kernel (miui V8.0.1.0)
- vendor is updated (miui V8.0.1.0)

Es lo suyo, yo lo actualizaba hasta que dejé de tener el teléfono

Enviado desde mi Redmi Note 3 mediante Tapatalk

Ragga_Muffin
18/10/16, 17:45:28
Es lo suyo, yo lo actualizaba hasta que dejé de tener el teléfono

Enviado desde mi Redmi Note 3 mediante Tapatalk

Bien, pues a la noche le cambio el vendor y el kernel, sin olvidarme de borrar esos dos archivos de la cámara que hacen que no funcione la ROM y de paso testeo lo del zip de la OTA.
Cuando este hecho os comentaré que tal a ido el trasplante jajaja.

pocarropa
18/10/16, 20:39:46
Ya está corregido el device y vendor en mi github, ya no debería haber nigún error al compilar.
Ragga_Muffin , a parte del device y vendor que ya están ok, encontraste algún problema al seguir el tutorial?

Ragga_Muffin
19/10/16, 02:46:15
Ya está corregido el device y vendor en mi github, ya no debería haber nigún error al compilar.
@Ragga_Muffin (http://www.htcmania.com/member.php?u=1445755) , a parte del device y vendor que ya están ok, encontraste algún problema al seguir el tutorial?

En general esta bien explicado, pero si es cierto que en algún momento encontré apartados mejorables, como podría ser lo del ccache, donde estaría bien poner el comando para editar el archivo ~/.bashrc como lo haces mas adelante (gedit ~/.bashrc).
Además, también especificaría que prebuilts/misc/linux-x86/ccache/ccache -M 50G es un comando que hay que ejecutar, ya que yo personalmente lo añadí después de la línea que hay que añadir al ~/.bashrc (export USE_CCACHE=1) y esto me arrojaba una advertencia, hasta que buscando información por google me acabé dando cuenta que era un comando :sisi1:

Sobre la desinstalación del jdk preinstalado, al menos a mi me venia el icedtea7 (será porque yo estoy en ubuntu 16.04) aunque te digo que no lo he desinstalado porque en su momento el comando me decía que no lo encontraba, instalé el que dices y no he tenido problemas con ello, así que supongo que mientras no creen conflictos no tendré que desinstalar el icedtea.

Otro ligero problemilla lo tuve en el paso cuarto, donde hay que instalar el curl, el caso es que me decía que no lo encontraba por que el enlace no estaba entero así que lo busque por google lo cambié y listo. Este es el que utilicé (curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo).

Por lo demás, todo perfecto, aunque si te quería preguntar, que si me animo y me das tu permiso, igual traduzco el tutorial al inglés y lo posteo en XDA, dándote los créditos que te mereces claro está.

Y bueno, respecto a lo que hablamos del archivo OTA si era incremental o no, después de compilar, los dos archivos siguen teniendo el mismo peso. He flasheado el de la OTA por probarlo más que nada y ha arrancado perfectamente.

Finalmente, te quería comentar que también le he echado un ojo a lo de coger el kernel y vendor de una rom MIUI actualizada. El kernel, ni lo he encontrado (el boot.img si pero ese nos valdría para algo?) y en cuanto al vendor la verdad es que había muchos archivos que el vendor que está en github no tiene, no se si es que son solo necesarios para MIUI o como va esto, por eso todavía no he probado a hacer nada con ellos un poco a la espera de si tu sabias cuales son los que necesito.

Perdona el tochaco @pocarropa (http://www.htcmania.com/member.php?u=1352787) pero me gusta explayarme jajaja :ok:

log30
19/10/16, 15:13:46
Es lo suyo, yo lo actualizaba hasta que dejé de tener el teléfono

Enviado desde mi Redmi Note 3 mediante Tapatalk
Mmm para la proxima build voy a meter el nuevo kernel a ver que resultados le da a la gente

Enviado desde mi Redmi Note 3 mediante Tapatalk

pocarropa
19/10/16, 20:20:18
En general esta bien explicado, pero si es cierto que en algún momento encontré apartados mejorables, como podría ser lo del ccache, donde estaría bien poner el comando para editar el archivo ~/.bashrc como lo haces mas adelante (gedit ~/.bashrc).
Además, también especificaría que prebuilts/misc/linux-x86/ccache/ccache -M 50G es un comando que hay que ejecutar, ya que yo personalmente lo añadí después de la línea que hay que añadir al ~/.bashrc (export USE_CCACHE=1) y esto me arrojaba una advertencia, hasta que buscando información por google me acabé dando cuenta que era un comando :sisi1:

Sobre la desinstalación del jdk preinstalado, al menos a mi me venia el icedtea7 (será porque yo estoy en ubuntu 16.04) aunque te digo que no lo he desinstalado porque en su momento el comando me decía que no lo encontraba, instalé el que dices y no he tenido problemas con ello, así que supongo que mientras no creen conflictos no tendré que desinstalar el icedtea.

Otro ligero problemilla lo tuve en el paso cuarto, donde hay que instalar el curl, el caso es que me decía que no lo encontraba por que el enlace no estaba entero así que lo busque por google lo cambié y listo. Este es el que utilicé (curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo).

Por lo demás, todo perfecto, aunque si te quería preguntar, que si me animo y me das tu permiso, igual traduzco el tutorial al inglés y lo posteo en XDA, dándote los créditos que te mereces claro está.

Y bueno, respecto a lo que hablamos del archivo OTA si era incremental o no, después de compilar, los dos archivos siguen teniendo el mismo peso. He flasheado el de la OTA por probarlo más que nada y ha arrancado perfectamente.

Finalmente, te quería comentar que también le he echado un ojo a lo de coger el kernel y vendor de una rom MIUI actualizada. El kernel, ni lo he encontrado (el boot.img si pero ese nos valdría para algo?) y en cuanto al vendor la verdad es que había muchos archivos que el vendor que está en github no tiene, no se si es que son solo necesarios para MIUI o como va esto, por eso todavía no he probado a hacer nada con ellos un poco a la espera de si tu sabias cuales son los que necesito.

Perdona el tochaco @pocarropa (http://www.htcmania.com/member.php?u=1352787) pero me gusta explayarme jajaja :ok:

Gracias por tus sugerencias! Lo editaré para que quede más claro.

Respecto al hilo de xda, de momento prefiero que no lo crees, me gustaría hacerlo a mi llegado el momento [emoji6] [emoji6]

Ah! El kernel se encuentra empaquetado dentro del boot.img (como caso todos los dispositivos que hay en la actualidad). Yo uso un tool que va muy bien y vale para todos incluido mtk:

http://forum.xda-developers.com/android/development/tool-cika-carliv-image-kitchen-android-t3013658

Es muy fácil e intuitivo y vale para boot y recovery. El kernel es el archivo llamado boot.img-kernel ( o algo así, pesa unos 6mb).


Enviado desde mi Redmi Note 3 mediante Tapatalk

log30
19/10/16, 21:03:40
Gracias por tus sugerencias! Lo editaré para que quede más claro.

Respecto al hilo de xda, de momento prefiero que no lo crees, me gustaría hacerlo a mi llegado el momento [emoji6] [emoji6]

Ah! El kernel se encuentra empaquetado dentro del boot.img (como caso todos los dispositivos que hay en la actualidad). Yo uso un tool que va muy bien y vale para todos incluido mtk:

http://forum.xda-developers.com/android/development/tool-cika-carliv-image-kitchen-android-t3013658

Es muy fácil e intuitivo y vale para boot y recovery. El kernel es el archivo llamado boot.img-kernel ( o algo así, pesa unos 6mb).


Enviado desde mi Redmi Note 3 mediante Tapatalk
La cosa es substituir el de la ultima global por ejemplo en el de cm y reempaquetar?

Enviado desde mi Redmi Note 3 mediante Tapatalk

pocarropa
19/10/16, 22:10:41
La cosa es substituir el de la ultima global por ejemplo en el de cm y reempaquetar?

Enviado desde mi Redmi Note 3 mediante Tapatalk

Así es

Ragga_Muffin
20/10/16, 00:02:01
Gracias por tus sugerencias! Lo editaré para que quede más claro.

Respecto al hilo de xda, de momento prefiero que no lo crees, me gustaría hacerlo a mi llegado el momento [emoji6] [emoji6]

Ah! El kernel se encuentra empaquetado dentro del boot.img (como caso todos los dispositivos que hay en la actualidad). Yo uso un tool que va muy bien y vale para todos incluido mtk:

http://forum.xda-developers.com/android/development/tool-cika-carliv-image-kitchen-android-t3013658

Es muy fácil e intuitivo y vale para boot y recovery. El kernel es el archivo llamado boot.img-kernel ( o algo así, pesa unos 6mb).


Enviado desde mi Redmi Note 3 mediante Tapatalk

Sin problema si necesitas ayuda me comentas y gracias por las indicaciones de lo del kernel, ya he probado a meter el de la v8.0.2.0 a ver que tal va. Lastima que por un simple cambio como este haya que esperar dos horas y media...