|
||
|
![]() |
![]() |
ROMs y desarrollo Samsung Galaxy S III i9300 ROMs y desarrollo Samsung Galaxy S III (modelo i9300) |
![]() |
|
Herramientas |
#1
|
||||
|
||||
![]() ![]() ArchiKitchen - Reworked dsixda's Android Kitchen Commits/Changes -> https://github.com/JustArchi/ArchiKi...commits/master Source -> https://github.com/JustArchi/ArchiKitchen Download. Of course you can also clone my repository to stay up to date. ************************************************** ****************************************** DEPRECATED dsixda's kitchen continuation In comparision with latest dsixda's kitchen:
Commits/Changes -> https://github.com/JustArchi/ArchiKi...commits/dsixda Source -> https://github.com/JustArchi/ArchiKitchen/tree/dsixda Download. Of course you can also clone my repository to stay up to date. All credit goes to dsixda's and his awesome development, I'm only making my best to keep kitchen up-to-date and maybe push development further. Head on to original thread to learn more. If you want to donate, please donate to dsixda. ************************************************** ************************************* Fuente: http://forum.xda-developers.com/show....php?t=2597220 JustArchi
__________________
![]() |
Los siguientes 2 usuarios han agradecido a RaYmunDooo su comentario: | ||
|
#2
|
||||
|
||||
Ahora si he preguntado antes de disparar jeje.
Ray, ¿este es el que estás usando para tus trabajos?. |
#4
|
||||
|
||||
Esta la uso yo y va fenomenal, incluso con el root en las nuevas bases
![]()
__________________
TSM30 -> Nokia 3220 -> Motorola SLVR L7 -> Nokia N73 -> Nokia 6600 Slide -> Samsung S5600 -> Samsung Galaxy S -> Samsung Galaxy S3 -> OnePlus One
|
#6
|
||||
|
||||
En xda tenia justarchi el enlace al archivo de su github hace un tiempo
__________________
TSM30 -> Nokia 3220 -> Motorola SLVR L7 -> Nokia N73 -> Nokia 6600 Slide -> Samsung S5600 -> Samsung Galaxy S -> Samsung Galaxy S3 -> OnePlus One
|
#7
|
||||
|
||||
Ya decía yo lentey que no encontraba el Kitchen Master en el github de archi. La pena que sólo sea para Linux.
|
#8
|
||||
|
||||
Montalo en una maquina virtual que es muy sencillito
__________________
TSM30 -> Nokia 3220 -> Motorola SLVR L7 -> Nokia N73 -> Nokia 6600 Slide -> Samsung S5600 -> Samsung Galaxy S -> Samsung Galaxy S3 -> OnePlus One
|
#9
|
||||
|
||||
Perdon por la ignorancia pero esto para que vale? Gracias
__________________
es mas facil cambiar el curso de un rio que el caracter de un hombre
|
#10
|
||||
|
||||
Basicamente te deja crearte una rom (deodexar, root, zipalign...)
__________________
TSM30 -> Nokia 3220 -> Motorola SLVR L7 -> Nokia N73 -> Nokia 6600 Slide -> Samsung S5600 -> Samsung Galaxy S -> Samsung Galaxy S3 -> OnePlus One
|
#11
|
||||
|
||||
![]()
TRADUCCIÓN del archi (sustituto en esta kitchen del ./menu)
Código:
#!/bin/bash # Copyright 2014 [email protected] # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Initial variables VERSION="1.0" TOOLS=(basename dirname clear gcc java perl sed wget od wc cpio zip unzip tar) ACTIVE_PROJECT="" MODEMINCLUDED=false ARCH="arm" ALIGN=4 clear echo -n "Por favor, espere" # Navigate to our folder, even if user didn't execute it from the root dir cd $(dirname $0) # Before we begin, make sure that all our tools are available for TOOL in "${TOOLS[@]}"; do echo -n "." if [ -z $(which $TOOL) ]; then echo "Parece que usted no tiene una de las herramientas requeridas: $ HERRAMIENTA" echo "Esta comprobación se realiza a través de 'que' comando" echo "Por favor, instale falta de herramientas y puesta en marcha de la cocina de nuevo" exit 1 fi done # Make sure our tools are executable chmod -R 755 tools # Core PRESS_ENTER() { read -p "Press [Enter] key to continue..." } ROOT_EXECUTE() { if [ $(whoami) == "root" ]; then "$@" else echo "Se requiere acceso de root! Estoy a punto de ejecutar el comando $ @" if [ ! -z $(which sudo) ]; then sudo "$@" else su -c "$@" fi fi } DO_SETPROJECT() { echo echo "Actualmente no tiene ningún proyecto activo" echo "Voy ahora a enumerar todos los proyectos disponibles, que se creó en el pasado" echo COUNT=0 for i in $(find . -maxdepth 1 -iname "PROJECT_*" -type d); do COUNT=$(expr $COUNT + 1) echo "["$COUNT"] - $(basename $i)" done if [ $COUNT -gt 0 ]; then echo "Encontré $ COUNT proyectos disponibles, y los enumerados anteriormente. Por favor, dime cuál de ellos desea utilizar" echo "Escribe un n º de proyecto, que se desea activar o ..." else echo "Lo sentimos, no encontré ningún proyecto disponible, parece que es necesario crear uno nuevo" fi echo echo "Escribe n para crear un nuevo proyecto" echo "Escribir x abortar" echo -n "ELECCIÓN: " read CHOICE case "$CHOICE" in "n") DO_NEWPROJECT ;; "x") exit 0 ;; *) if [ $CHOICE -gt $COUNT ] || [ $CHOICE -lt 1 ]; then echo "De error, la selección no válida" return 1 fi COUNT=$CHOICE for i in $(find . -maxdepth 1 -iname "PROJECT_*" -type d); do COUNT=$(expr $COUNT - 1) if [ $COUNT -eq 0 ]; then ACTIVE_PROJECT=$(basename $i) break fi done if [ -z $ACTIVE_PROJECT ]; then echo "Error, no ha seleccionado nada" return 1 else echo "Aceptar, proyecto activo actual es de $ ACTIVE_PROJECT" fi esac return 0 } DO_NEWPROJECT() { clear echo "Puede crear un nuevo proyecto de esqueleto o un proyecto basado en una gota de base" echo "En la mayoría de las situaciones que desea extraer de la base, pero el proyecto esqueleto puede ser útil fe para deodexing un conjunto de aplicaciones sólo" echo echo "b - Crea desnuda proyecto huesos" echo "e - Extrae una ROM y utilizar como base de" read -p "Which one you want to create? [b/e]: " CHOICE case "$CHOICE" in "e") ;; *) ACTIVE_PROJECT="PROJECT_" ACTIVE_PROJECT+="$(date '+%m%d%y_%H%M%S')" echo "Creación desnuda $ ACTIVE_PROJECT" mkdir -p $ACTIVE_PROJECT/system return 0 esac echo "ArchiKitchen actualmente soporta el sistema en formato system.img y system.img.ext4" echo "Por favor, ponga gota de base adecuada en la carpeta base_drops" echo "Puede ser system.img independiente (. Ext4) de archivos o un archivo comprimido, que contiene dicho archivo" echo "¿Está usted listo?" PRESS_ENTER SEARCH=true while ($SEARCH); do echo "Buscando system.img ..." SYSTEMDIR="" SYSTEMFILE="" for f in $(find base_drops -type f); do FILE=$(basename $f) case "$FILE" in "system.img") SYSTEMDIR=$(dirname $f) SYSTEMFILE=$(basename $f) echo "Encontrado $ SYSTEMDIR / $ SystemFILE, que debe ser el archivo adecuado" SEARCH=false break ;; "system.img.ext4") SYSTEMDIR=$(dirname $f) SYSTEMFILE=$(basename $f) echo "Encontrado $ SYSTEMDIR / $ SystemFILE, que debe ser el archivo adecuado" SEARCH=false break ;; *) esac done if [ -z "$SYSTEMFILE" ]; then echo "No se han encontrado system.img" echo echo "r - actualización" echo "D - descomprimir uno de los archivos, si debe contener system.img" echo "x - abortar" echo -n "ELECCIÓN: " read CHOICE case "$CHOICE" in "r") clear ;; "d") COUNT=0 for i in $(find base_drops/ -type f); do COUNT=$(expr $COUNT + 1) echo "["$COUNT"] - $(dirname $i)/$(basename $i)" done echo "Por favor, dime qué archivo debe contener system.img" echo -n "ELECCIÓN: " read CHOICE if [ $CHOICE -gt $COUNT ] || [ $CHOICE -lt 1 ]; then echo "De error, la selección no válida" exit 1 fi COUNT=$CHOICE for i in $(find base_drops/ -type f); do COUNT=$(expr $COUNT - 1) if [ $COUNT -eq 0 ]; then FILE="$i" break fi done echo "La extracción de todo, desde $ FILE" # TODO: We should find more universal way for finding out type of the file tar xvf $FILE -C base_drops/ || unzip $FILE -d base_drops/ if [ $? -ne 0 ]; then echo "Error, parece que este formato de archivo no sea compatible" return 1 fi ;; "x") return 1 ;; *) echo "No hay selección válida" return 1 esac fi done ACTIVE_PROJECT="PROJECT_" ACTIVE_PROJECT+="$(date '+%m%d%y_%H%M%S')" echo "Creación de $ PROYECTO ACTIVA" mkdir -p $ACTIVE_PROJECT/system cp $SYSTEMDIR/boot.img $ACTIVE_PROJECT/boot.img # TODO: Support non-ext4 filesystems FS="ext4" cp $SYSTEMDIR/$SYSTEMFILE $ACTIVE_PROJECT/system.img for EXTRA in 'cache.img' 'modem.bin'; do if [ -e $SYSTEMDIR/$EXTRA ]; then echo "Encontrado archivo EXTRA $ adicional" echo "¿Quieres incluir este archivo en tu ROM?" case "$EXTRA" in "cache.img") echo "Este archivo contiene normalmente CSC cosas. Di que sí si no está seguro" ;; "modem.bin") echo "Este archivo contiene generalmente de bajo nivel de código binario responsable de conexión móvil. Di no si no está seguro" ;; *) esac echo read -p "Include? [y/n]: " CHOICE case "$CHOICE" in "y") cp $SYSTEMDIR/$EXTRA $ACTIVE_PROJECT/$EXTRA ;; *) esac fi done for PARTITION in 'system.img' 'cache.img'; do if [ -e $ACTIVE_PROJECT/$PARTITION ]; then mv -f $ACTIVE_PROJECT/$PARTITION $ACTIVE_PROJECT/$PARTITION.$FS fi done DO_MAKESURE_WEHAVE_SIMG2IMG DO_SIMG2IMG_ALL DO_MAKESURE_WEHAVE_METAINF CHECK_KERNEL CHECK_MODEM BUILD_UPDATER_SCRIPT } DO_SIMG2IMG_ALL() { for f in $(find $ACTIVE_PROJECT -maxdepth 1 -type f -iname "*.ext4"); do echo "Conversión y $ montaje (basename $ f)" ./temp/simg2img $f $f.simg2img rm -f $f mkdir -p /tmp/ArchiKitchenLOOP ROOT_EXECUTE "mount -o loop $f.simg2img /tmp/ArchiKitchenLOOP" echo "Extraer archivos de $ (basename $ f)" IMGNAME=$(basename "$f" | cut -d'.' -f1) case "$IMGNAME" in "cache") unzip -q /tmp/ArchiKitchenLOOP/recovery/sec_csc.zip -d $ACTIVE_PROJECT/ # Delete old META-INF rm -rf $ACTIVE_PROJECT/META-INF ;; *) cp -R /tmp/ArchiKitchenLOOP/* $ACTIVE_PROJECT/$IMGNAME/ esac ROOT_EXECUTE "umount /tmp/ArchiKitchenLOOP" rm -f $f.simg2img done } CHECK_KERNEL() { if [ ! -e $ACTIVE_PROJECT/META-INF/com/google/android/updater-script ] || ([ $(grep -i "boot.img" $ACTIVE_PROJECT/META-INF/com/google/android/updater-script | wc -l) -eq 0 ] && [ $(grep -i "zImage" $ACTIVE_PROJECT/META-INF/com/google/android/updater-script | wc -l) -eq 0 ]); then echo "ADVERTENCIA! Ningún camino kernel que se encuentra en la corriente updater-script" echo "Esto es típico cuando se va a convertir rom basada en imágenes para rom basada en zip" local MODEL=$(grep -i "ro.product.model" $ACTIVE_PROJECT/system/build.prop | cut -d'=' -f2) echo "Modelo ROM Detectado: $ MODELO" echo "Asegúrese de que sea el modelo adecuado para su dispositivo!" PRESS_ENTER if [ -e files/product/$MODEL/KERNEL ]; then KERNELPATH=$(cat files/product/$MODEL/KERNEL) else echo "Este modelo no existe aún en nuestra base de datos" echo "Por favor, escriba su trayectoria kernel manualmente. Ejemplo de ruta de kernel de GT-I9300: / dev/block/mmcblk0p5" echo -n "Ruta Kernel para su modelo: " read KERNELPATH fi echo "Basado en el modelo de arriba y nuestra pequeña base de datos, su camino kernel debería ser de $ KERNELPATH" echo "Asegúrese de que su CORRECTO, sobrescribiendo caminos equivocados PUEDEN CONDUCIR A SUAVE Y LADRILLOS DUROS" PRESS_ENTER echo "\"$KERNELPATH\");" >> $ACTIVE_PROJECT/META-INF/com/google/android/updater-script-KERNEL echo "Vale, este es el efecto final:" cat $ACTIVE_PROJECT/META-INF/com/google/android/updater-script-KERNEL echo "Asegúrese de que ese camino y la sintaxis es correcta, si no, modificarlo manualy través archivo $ ACTIVE_PROJECT / META-INF / com / google / android / updater-script-núcleo antes de continuar con el siguiente paso" PRESS_ENTER fi } CHECK_MODEM() { if [ -e $ACTIVE_PROJECT/modem.bin ]; then echo "Archivo Modem.bin encontrado" local MODEL=$(grep -i "ro.product.model" $ACTIVE_PROJECT/system/build.prop | cut -d'=' -f2) echo "Modelo ROM Detectado: $ MODELO" echo "Asegúrese de que su modelo adecuado para su dispositivo!" PRESS_ENTER if [ -e files/product/$MODEL/MODEM ]; then MODEMPATH=$(cat files/product/$MODEL/MODEM) else echo "Este modelo no existe aún en nuestra base de datos" echo "Por favor, escriba su trayectoria módem manualmente. Ejemplo de ruta de módem de GT-I9300: / dev/block/mmcblk0p7" echo -n "Camino de módem para su modelo: " read MODEMPATH fi echo "Basado en el modelo de arriba y nuestra pequeña base de datos, la ruta de módem debería ser de $ MODEMPATH" echo "Asegúrese de que sea CORRECTO, SOBREGRABACIÓN caminos equivocados PUEDE LLEVAR A LA SUAVE Y LADRILLOS DUROS" PRESS_ENTER echo "\"$MODEMPATH\");" >> $ACTIVE_PROJECT/META-INF/com/google/android/updater-script-MODEM echo "Vale, este es el efecto final:" cat $ACTIVE_PROJECT/META-INF/com/google/android/updater-script-MODEM echo "Asegúrese de que ese camino y la sintaxis es correcta, si no, modificar de forma manual a través de archivos $ ACTIVE_PROJECT / META-INF / com / google / android / updater-script-MODEM antes de continuar con el siguiente paso" PRESS_ENTER MODEMINCLUDED=true fi } DO_MAKESURE_WEHAVE_SIMG2IMG() { if [ ! -e temp/simg2img ]; then mkdir -p temp gcc -O2 tools/simg2img/sparse_crc32.c tools/simg2img/simg2img.c -o temp/simg2img fi } DO_MAKESURE_WEHAVE_METAINF() { mkdir -p $ACTIVE_PROJECT/META-INF/com/google/android cp files/product/generic/update-binary $ACTIVE_PROJECT/META-INF/com/google/android/update-binary for i in "updater-script-HEAD" "updater-script-SYMLINKS" "updater-script-PERMISSIONS" "updater-script-TAIL" "updater-script-KERNEL" "updater-script-MODEM"; do cp "files/product/generic/$i" "$ACTIVE_PROJECT/META-INF/com/google/android/$i" done } REBUILD_UPDATER-SCRIPT() { local MODE="" local STYLE="" local FILE="" for arg in $@; do case "$arg" in "ADD") MODE="ADD" shift 1 ;; "DEL") MODE="DEL" shift 1 ;; "HEAD") FILE="updater-script-HEAD" shift 1 ;; "SYMLINK") FILE="updater-script-SYMLINKS" shift 1 ;; "PERMISSIONS") FILE="updater-script-PERMISSIONS" shift 1 ;; "TAIL") FILE="updater-script-TAIL" shift 1 ;; "KERNEL") FILE="updater-script-KERNEL" shift 1 ;; "MODEM") FILE="updater-script-MODEM" shift 1 ;; "APPEND") STYLE="APPEND" shift 1 ;; "PREPEND") STYLE="PREPEND" shift 1 ;; *) esac done if [ $MODE == "DEL" ]; then #TODO1: We're handling it through so-called "primary key" but this needs to be implemented in a better way, as it's dangerous sed -i "/$@/d" $ACTIVE_PROJECT/META-INF/com/google/android/$FILE shift 1 elif [ $MODE == "ADD" ]; then if [ $STYLE == "APPEND" ]; then echo "" >> $ACTIVE_PROJECT/META-INF/com/google/android/$FILE cat "$@" >> $ACTIVE_PROJECT/META-INF/com/google/android/$FILE echo "" >> $ACTIVE_PROJECT/META-INF/com/google/android/$FILE elif [ $STYLE == "PREPEND" ]; then mv $ACTIVE_PROJECT/META-INF/com/google/android/$FILE $ACTIVE_PROJECT/META-INF/com/google/android/$FILE.tmp cat "$@" > $ACTIVE_PROJECT/META-INF/com/google/android/$FILE echo "" >> $ACTIVE_PROJECT/META-INF/com/google/android/$FILE cat $ACTIVE_PROJECT/META-INF/com/google/android/$FILE.tmp >> $ACTIVE_PROJECT/META-INF/com/google/android/$FILE rm -f $ACTIVE_PROJECT/META-INF/com/google/android/$FILE.tmp fi fi sed -i '/^$/d' $ACTIVE_PROJECT/META-INF/com/google/android/$FILE # This removes empty lines added above #BUILD_UPDATER_SCRIPT # We handle that through scripts itself, as it causes up to 4x non-needed overhead } BUILD_UPDATER_SCRIPT() { echo -n "" > $ACTIVE_PROJECT/META-INF/com/google/android/updater-script for i in "updater-script-HEAD" "updater-script-SYMLINKS" "updater-script-PERMISSIONS" "updater-script-TAIL" "updater-script-KERNEL"; do cat "$ACTIVE_PROJECT/META-INF/com/google/android/$i" >> "$ACTIVE_PROJECT/META-INF/com/google/android/updater-script" echo "" >> "$ACTIVE_PROJECT/META-INF/com/google/android/updater-script" done if ($MODEMINCLUDED); then cat "$ACTIVE_PROJECT/META-INF/com/google/android/updater-script-MODEM" >> "$ACTIVE_PROJECT/META-INF/com/google/android/updater-script" echo "" >> "$ACTIVE_PROJECT/META-INF/com/google/android/updater-script" fi } CLEAN_EVERYTHING() { for i in "updater-script-HEAD" "updater-script-SYMLINKS" "updater-script-PERMISSIONS" "updater-script-TAIL" "updater-script-KERNEL" "updater-script-MODEM"; do rm -f $ACTIVE_PROJECT/META-INF/com/google/android/$i done } CHANGE_ARCHITECTURE() { case "$ARCH" in "arm") ARCH="x86" ;; "x86") ARCH="arm" ;; *) ARCH="arm" esac } KERNEL_EXTRACT() { mkdir -p temp if [ ! -e temp/mkbootimg ]; then cd tools/kernel/mkbootimg make if [ ! -e mkbootimg ] || [ ! -e unpackbootimg ]; then echo "ERROR! Algo salió mal con la compilación de mkbootimg!" PRESS_ENTER return 1 fi cp mkbootimg ../../../temp/mkbootimg cp unpackbootimg ../../../temp/unpackbootimg make clean cd ../../.. fi if [ -e $ACTIVE_PROJECT/boot.img ] && [ ! -e $ACTIVE_PROJECT/kernel ]; then rm -rf $ACTIVE_PROJECT/kernel mkdir -p $ACTIVE_PROJECT/kernel temp/unpackbootimg -i $ACTIVE_PROJECT/boot.img -o $ACTIVE_PROJECT/kernel mkdir -p $ACTIVE_PROJECT/kernel/ramdisk if [ -e $ACTIVE_PROJECT/kernel/boot.img-ramdisk.gz ]; then cd $ACTIVE_PROJECT/kernel/ramdisk #TODO: Handle non-gz ramdisk as well, but not now... gunzip -c ../boot.img-ramdisk.gz | cpio -i cd ../../.. fi else echo "No se han encontrado kernel o núcleo ya se extrae!" PRESS_ENTER return 1 fi } KERNEL_REPACK() { if [ -e $ACTIVE_PROJECT/kernel ]; then if [ -e $ACTIVE_PROJECT/kernel/ramdisk ]; then cd $ACTIVE_PROJECT/kernel/ramdisk find . | cpio -o -H newc | gzip > ../boot.img-ramdisk-NEW.gz cd ../../.. temp/mkbootimg --kernel $ACTIVE_PROJECT/kernel/boot.img-zImage --ramdisk $ACTIVE_PROJECT/kernel/boot.img-ramdisk-NEW.* -o $ACTIVE_PROJECT/temp.img else temp/mkbootimg --kernel $ACTIVE_PROJECT/kernel/boot.img-zImage --ramdisk $ACTIVE_PROJECT/kernel/boot.img-ramdisk.* -o $ACTIVE_PROJECT/temp.img fi mv -f $ACTIVE_PROJECT/temp.img $ACTIVE_PROJECT/boot.img rm -rf $ACTIVE_PROJECT/kernel else echo "No núcleo extraído encontrado!" PRESS_ENTER fi } KERNEL_ABORT() { rm -rf $ACTIVE_PROJECT/kernel rm -f $ACTIVE_PROJECT/temp.img } ARCHIDROID_INITD() { if [ ! -e $ACTIVE_PROJECT/system/bin/debuggerd.real ]; then mv -f $ACTIVE_PROJECT/system/bin/debuggerd $ACTIVE_PROJECT/system/bin/debuggerd.real cp -R files/archidroid/initd/system/* $ACTIVE_PROJECT/system/ else mv -f $ACTIVE_PROJECT/system/bin/debuggerd.real $ACTIVE_PROJECT/system/bin/debuggerd fi } INITD() { KERNEL_EXTRACT if [ -e kernel/ramdisk/init.rc ]; then sed -i -e '0,/class_start /s//start sysinit\n\n class_start /' kernel/ramdisk/init.rc sed -i -e 's/service media /service sysinit \/system\/bin\/logwrapper \/system\/xbin\/busybox run-parts \/system\/etc\/init.d\n disabled\n oneshot\n\nservice media /' kernel/ramdisk/init.rc KERNEL_REPACK cp -R files/initd/system/* $ACTIVE_PROJECT/system/ REBUILD_UPDATER-SCRIPT "ADD" "PERMISSIONS" "APPEND" "files/initd/updater-script-PERMISSIONS" else echo "ERROR, no encontrado init.rc?!" rm -rf kernel return 1 fi PRESS_ENTER } BUILD() { BUILD_UPDATER_SCRIPT echo "A veces la cocina puede producir un archivo de actualización-script correctos, por eso se le pedirá que revise updater-script y eventualmente arreglarlo si es necesario antes de construir ROM" echo "Updater-script se basa en la llamada "segmentos" disponible en el mismo directorio - META-INF/com/google/android" echo "¿Está usted listo?" PRESS_ENTER echo "-=-= UPDATER-SCRIPT START =-=-" cat $ACTIVE_PROJECT/META-INF/com/google/android/updater-script echo "-=-= UPDATER-SCRIPT EOF =-=-" read -p "Are you REALLY sure that above updater-script is correct? ESPECIALLY block-based paths? [y/n]: " CHOICE case "$CHOICE" in "y") ;; *) echo "Aceptar, corregir el actualizador-script y / o de sus segmentos y volver cuando haya terminado" PRESS_ENTER return 0 esac local COMPLEVEL="" echo echo "¿Qué nivel de compresión que desea utilizar?" echo "0 - Store (más rápido, sin compresión en absoluto)" echo "g - Guess (velocidad y compresión moderada, elegido por utilidad de compresión basado en el contenido)" echo "9 - El mejor (el más lento, máxima compresión)" read -p "CHOICE: " CHOICE case "$CHOICE" in "0") COMPLEVEL="-0" ;; "9") COMPLEVEL="-9" ;; *) esac cd $ACTIVE_PROJECT zip -ry $COMPLEVEL $ACTIVE_PROJECT.zip . -x META-INF/com/google/android/updater-script-HEAD META-INF/com/google/android/updater-script-SYMLINKS META-INF/com/google/android/updater-script-PERMISSIONS META-INF/com/google/android/updater-script-TAIL META-INF/com/google/android/updater-script-KERNEL cd .. mkdir -p OUTPUT_ZIP mv -f $ACTIVE_PROJECT/$ACTIVE_PROJECT.zip OUTPUT_ZIP/$ACTIVE_PROJECT.zip echo "Hecho, su ROM está disponible en SALIDA postal / $ ACTIVE_PROJECT.zip" read -p "Rename it? [y/n]: " CHOICE case "$CHOICE" in "y") read -p "New name: " NAME mv -f OUTPUT_ZIP/$ACTIVE_PROJECT.zip OUTPUT_ZIP/$NAME ;; *) esac echo "Todo hecho, su ROM debe estar listo!" echo "Gracias por usar ArchiKitchen usted!" PRESS_ENTER exit 0 } DEODEX() { local API=$(grep "ro.build.version.sdk" $ACTIVE_PROJECT/system/build.prop | cut -d'=' -f2) echo "Detectado nivel API $ API" for f in $(find $ACTIVE_PROJECT -type f -iname "*.odex"); do local FILE=$(basename $f) local FILEDIR=$(dirname $f) echo "Deodexing $FILE" echo "Desmontaje $ FILE ..." java -Xmx512m -jar tools/smali/baksmali.jar -a $API -d $ACTIVE_PROJECT/system/framework -x $FILEDIR/$FILE if [ $? -ne 0 ]; then echo "DEODEXING ERROR $ FILE, abortando!" rm -rf out PRESS_ENTER return 1 fi echo "Montaje en classes.dex ..." java -Xmx512m -jar tools/smali/smali.jar -a $API -o classes.dex out if [ ! -e classes.dex ]; then echo "DEODEXING ERROR $ FILE, abortando!" rm -rf out PRESS_ENTER return 1 fi FILE=$(echo $FILE | rev | cut -d'.' -f2- | rev) local FOUND=false for EXTENSION in "jar" "apk"; do if [ -e $FILEDIR/$FILE.$EXTENSION ]; then echo "Embalaje de nuevo en $ FILE. $ EXTENSION ..." zip -rq $FILEDIR/$FILE.$EXTENSION classes.dex rm -f classes.dex FOUND=true break fi done if (! $FOUND); then echo "ERROR, No se han encontrado resultados?!" rm -rf out rm -f classes.dex PRESS_ENTER return 1 fi rm -f $f rm -rf out done echo "Deodexing terminado" PRESS_ENTER } ZIPALIGN() { for f in $(find $ACTIVE_PROJECT/system -type f -iname "*.apk"); do local FILE=$(basename $f) local FILEDIR=$(dirname $f) echo "Zipaligning $FILE..." tools/zipalign/zipalign -f $ALIGN "$FILEDIR/$FILE" "$FILEDIR/$FILE.zipaligned" mv -f "$FILEDIR/$FILE.zipaligned" "$FILEDIR/$FILE" done echo "Zipaligning terminado" PRESS_ENTER } ROOT() { if [ ! -e $ACTIVE_PROJECT/system/xbin/su ]; then mkdir -p $ACTIVE_PROJECT/system/xbin cp -R files/root/system/* $ACTIVE_PROJECT/system/ cp -R files/root/$ARCH/system/* $ACTIVE_PROJECT/system/ cp $ACTIVE_PROJECT/system/xbin/su $ACTIVE_PROJECT/system/xbin/daemonsu mkdir -p $ACTIVE_PROJECT/system/bin/.ext cp $ACTIVE_PROJECT/system/xbin/su $ACTIVE_PROJECT/system/bin/.ext/su REBUILD_UPDATER-SCRIPT "ADD" "PERMISSIONS" "APPEND" "files/root/updater-script-PERMISSIONS" else rm -f $ACTIVE_PROJECT/system/app/Superuser.apk rm -f $ACTIVE_PROJECT/system/xbin/su rm -f $ACTIVE_PROJECT/system/xbin/daemonsu rm -f $ACTIVE_PROJECT/system/bin/.ext/su rm -f $ACTIVE_PROJECT/system/etc/init.d/99SuperSUDaemon rm -f $ACTIVE_PROJECT/system/etc/.installed_su_daemon REBUILD_UPDATER-SCRIPT "DEL" "PERMISSIONS" "u:object_r:su_exec:s0" #TODO1 fi BUILD_UPDATER_SCRIPT } BUSYBOX() { if [ ! -e $ACTIVE_PROJECT/system/xbin/busybox ]; then mkdir -p $ACTIVE_PROJECT/system/xbin cp files/busybox/busybox $ACTIVE_PROJECT/system/xbin/busybox REBUILD_UPDATER-SCRIPT "ADD" "SYMLINK" "APPEND" "files/busybox/updater-script-SYMLINKS" REBUILD_UPDATER-SCRIPT "ADD" "TAIL" "PREPEND" "files/busybox/updater-script-TAIL" else rm -f $ACTIVE_PROJECT/system/xbin/busybox REBUILD_UPDATER-SCRIPT "DEL" "SYMLINK" "busybox" #TODO1 REBUILD_UPDATER-SCRIPT "DEL" "TAIL" "busybox" #TODO1 fi BUILD_UPDATER_SCRIPT } # Main while :; do clear echo "Android Kitchen versión $ VERSION - por JustArchi (@ xda-developers.com)" echo "Originalmente creado por dsixda (@ xda-developers.com)" echo if [ -z "$ACTIVE_PROJECT" ]; then DO_SETPROJECT continue fi echo "-------------------------------------" ALLFINE=true if [ -d $ACTIVE_PROJECT/kernel ]; then ALLFINE=false echo "WARNING: Unpacked kernel found" fi if [ ! -f $ACTIVE_PROJECT/boot.img ]; then ALLFINE=false echo "WARNING: No boot.img found, ROM will not boot properly" fi if [ ! -d $ACTIVE_PROJECT/META-INF ]; then ALLFINE=false echo "ADVERTENCIA: No la carpeta META-INF encontrado, esto no es una ROM" fi echo -n "Estado del proyecto: " if ($ALLFINE); then echo "OK" else echo "WARNING" fi echo "-------------------------------------" echo echo "Arquitectura: [$ ARCH]" echo echo -n "ArchiDroid Init.d? " if [ ! -e $ACTIVE_PROJECT/system/bin/debuggerd.real ]; then echo "[NO]" else echo "[YES]" fi echo echo -n "Deodexed? " if [ -e $ACTIVE_PROJECT/system/framework/framework.odex ]; then echo "[NO]" else echo "[SI]" fi echo -n "Zipaligned? " tools/zipalign/zipalign -c $ALIGN $ACTIVE_PROJECT/system/framework/framework-res.apk if [ $? -ne 0 ]; then echo "[NO]" else echo "[SI]" fi echo -n "Rooted? " if [ ! -e $ACTIVE_PROJECT/system/xbin/su ]; then echo "[NO]" else echo "[SI]" fi echo -n "Busybox? " if [ ! -e $ACTIVE_PROJECT/system/xbin/busybox ]; then echo "[NO]" else echo "[SI]" fi echo echo "-------------------------------------------------------------------------------" echo "a - Cambio de la arquitectura (arm/x86)" echo echo "adi - Activar / Desactivar ArchiDroid indepdendent init.d (gancho debuggerd software)" echo "i - Añadir soporte init.d (NO TOQUE CON TODO) (gancho kernel hardware)" echo echo "d - Deodex Todo" echo "z - Zipalign Todo" echo "r - Activar / Desactivar Root" echo "b - Activar / Desactivar Busybox" echo echo "ku - kernel Desembale" echo "kr - Repack kernel" echo "ka - Abortar reempaque del kernel" echo echo "bb - Construir ROM" echo "x - Salida" echo echo -n "ELECCIÓN: " read CHOICE case "$CHOICE" in "x") exit 0 ;; "a") CHANGE_ARCHITECTURE ;; "adi") ARCHIDROID_INITD ;; "d") DEODEX ;; "z") ZIPALIGN ;; "r") ROOT ;; "b") BUSYBOX ;; "i") INITD ;; "ku") KERNEL_EXTRACT ;; "kr") KERNEL_REPACK ;; "ka") KERNEL_ABORT ;; "bb") if ($ALLFINE); then BUILD else echo "ERROR: No se puede construir ROM en el estado actual, por favor revise las advertencias arriba y corregirlos!" PRESS_ENTER fi ;; *) esac done
__________________
![]() |
#12
|
||||
|
||||
Justo cuando termino mi primera rom cocinada, usando el Android-Kitchen 0.224 aparece una nueva version mas nueva, tendre que probarla en la archlinux que tengo en mi servidor ya que parece necesitar permisos de superusuario al intentar usarla en el cygwin se quejaba de no tener el comando sudo
Última edición por xerkan Día 02/02/14 a las 00:55:35. |
![]() |
![]() |
||||||
|