ROMs y desarrollo Samsung Galaxy S III i9300 ROMs y desarrollo Samsung Galaxy S III (modelo i9300)

Respuesta
 
Herramientas
  #1  
Viejo 31/01/14, 16:16:20
Array

[xs_avatar]
RaYmunDooo RaYmunDooo no está en línea
Cocinero Amigo
· Votos compra/venta: (8)
 
Fecha de registro: jul 2011
Localización: Tenerife (Zona Norte)-ESPAÑA
Mensajes: 4,967
Modelo de smartphone: LG G3 y S6 edge+
Tu operador: Movistar
noticia [KITCHEN] ArchiKitchen - Android Kitchen Continuation (WIP) [Linux]




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:
  • Reworked rooting
  • Updated SuperSU to v1.92
  • Added Koush Superuser v1.0.2.8
  • Removed obsolete ChainsDD superuser + old su
  • Updated Busybox to 1.22.1
  • Updated Baksmali/Smali to 2.0.3
  • Bumped default API level to 18
  • Added support for deodexing priv-app folder
  • Added support for Nexus 5
  • Added support for GT-I9502 (Chinese S4)

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
__________________



Responder Con Cita
Los siguientes 2 usuarios han agradecido a RaYmunDooo su comentario:


  #2  
Viejo 31/01/14, 16:31:15
Array

[xs_avatar]
mrbojangle69 mrbojangle69 no está en línea
Progressive Metaltester
 
Fecha de registro: jun 2011
Localización: Las Palmas de Gran Canaria
Mensajes: 2,548
Modelo de smartphone: Motorola Moto G XT1032
Tu operador: Movistar
Ahora si he preguntado antes de disparar jeje.

Ray, ¿este es el que estás usando para tus trabajos?.
Responder Con Cita
  #3  
Viejo 31/01/14, 16:35:14
Array

[xs_avatar]
RaYmunDooo RaYmunDooo no está en línea
Cocinero Amigo
· Votos compra/venta: (8)
 
Fecha de registro: jul 2011
Localización: Tenerife (Zona Norte)-ESPAÑA
Mensajes: 4,967
Modelo de smartphone: LG G3 y S6 edge+
Tu operador: Movistar
 Cita: Originalmente Escrito por mrbojangle69 Ver Mensaje
Ahora si he preguntado antes de disparar jeje.

Ray, ¿este es el que estás usando para tus trabajos?.
No una versión particular con modificaciones. Pero esta kitchen es superior. La testare en Linux esta noche.
__________________



Responder Con Cita
Gracias de parte de:
  #4  
Viejo 31/01/14, 17:57:28
Array

[xs_avatar]
lentey lentey no está en línea
Miembro del foro
 
Fecha de registro: may 2010
Localización: Fuenlabrada
Mensajes: 155
Modelo de smartphone: OnePlus One 64 Gb - Motorola XOOM Wifi 32 Gb
Tu operador: Lowi
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
Responder Con Cita
  #5  
Viejo 31/01/14, 18:45:37
Array

[xs_avatar]
RaYmunDooo RaYmunDooo no está en línea
Cocinero Amigo
· Votos compra/venta: (8)
 
Fecha de registro: jul 2011
Localización: Tenerife (Zona Norte)-ESPAÑA
Mensajes: 4,967
Modelo de smartphone: LG G3 y S6 edge+
Tu operador: Movistar
Exclamation

 Cita: Originalmente Escrito por lentey Ver Mensaje
Esta la uso yo y va fenomenal, incluso con el root en las nuevas bases
La colgarón extamente hoy a las (Last edited by JustArchi; Today at 03:49 AM.)

__________________



Responder Con Cita
  #6  
Viejo 31/01/14, 19:01:54
Array

[xs_avatar]
lentey lentey no está en línea
Miembro del foro
 
Fecha de registro: may 2010
Localización: Fuenlabrada
Mensajes: 155
Modelo de smartphone: OnePlus One 64 Gb - Motorola XOOM Wifi 32 Gb
Tu operador: Lowi
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
Responder Con Cita
  #7  
Viejo 31/01/14, 19:07:25
Array

[xs_avatar]
mrbojangle69 mrbojangle69 no está en línea
Progressive Metaltester
 
Fecha de registro: jun 2011
Localización: Las Palmas de Gran Canaria
Mensajes: 2,548
Modelo de smartphone: Motorola Moto G XT1032
Tu operador: Movistar
Ya decía yo lentey que no encontraba el Kitchen Master en el github de archi. La pena que sólo sea para Linux.
Responder Con Cita
  #8  
Viejo 31/01/14, 20:02:00
Array

[xs_avatar]
lentey lentey no está en línea
Miembro del foro
 
Fecha de registro: may 2010
Localización: Fuenlabrada
Mensajes: 155
Modelo de smartphone: OnePlus One 64 Gb - Motorola XOOM Wifi 32 Gb
Tu operador: Lowi
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
Responder Con Cita
  #9  
Viejo 01/02/14, 01:24:03
Array

[xs_avatar]
padelking padelking no está en línea
Usuario muy activo
 
Fecha de registro: dic 2010
Localización: murcia
Mensajes: 1,607
Modelo de smartphone: DHD , S3 , Note Edge y Mi6
Tu operador: Vodafone
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
Responder Con Cita
  #10  
Viejo 01/02/14, 11:09:39
Array

[xs_avatar]
lentey lentey no está en línea
Miembro del foro
 
Fecha de registro: may 2010
Localización: Fuenlabrada
Mensajes: 155
Modelo de smartphone: OnePlus One 64 Gb - Motorola XOOM Wifi 32 Gb
Tu operador: Lowi
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
Responder Con Cita
  #11  
Viejo 02/02/14, 00:03:41
Array

[xs_avatar]
RaYmunDooo RaYmunDooo no está en línea
Cocinero Amigo
· Votos compra/venta: (8)
 
Fecha de registro: jul 2011
Localización: Tenerife (Zona Norte)-ESPAÑA
Mensajes: 4,967
Modelo de smartphone: LG G3 y S6 edge+
Tu operador: Movistar
sorteo Traduccion

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
__________________



Responder Con Cita
  #12  
Viejo 02/02/14, 00:38:31
Array

[xs_avatar]
xerkan xerkan no está en línea
Usuario muy activo
 
Fecha de registro: jun 2012
Localización: Valencia
Mensajes: 821

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.
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Foros Samsung > Otros smartphones de Samsung antiguos > Samsung Galaxy S III > ROMs y desarrollo Samsung Galaxy S III i9300



Hora actual: 16:39:50 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /