Ver Mensaje Individual
  #488  
Viejo 20/12/13, 22:01:04
Array

[xs_avatar]
Scorpyo82
Usuario invitado
 
Mensajes: n/a

 Cita: Originalmente Escrito por LUCAS MH Ver Mensaje
Yo no he podido probar si me falla el gps.... La verdad que no lo uso. Pero una cosa tengo clara: Te lo curras.....
Gracias. Creo que hablo en nombre de todos

Gracias

Ahora estoy probando el tema este y por ahora solo encuentro un fallo... el instalador del kernel está bien, pero el parche delink2sd (para quien tiene link2sd instalado, que en este caso somos casi todos porque biene en la rom) genera un bucle infinito que solo para cuando la memoria de la tarjeta sd se llena entera... y el archivo que crece es el log..... no sé en que me estoy equivocando pero cuelgo aquí los scripts que he creado:

DELINK2SD
Código:
#!/system/bin/sh

VERSION=DELINK2SD_v1
LOG=/data/$VERSION.log

echo "#######################################" > $LOG;
echo "##    Delink2sd para usar data2sd    ##" >> $LOG;
echo "##       Escrito por Scorpyo82       ##" >> $LOG;
echo "##        Para GingerCerecilla       ##" >> $LOG;
echo "#######################################" >> $LOG;

## Se comprueba si existe la segunda partición

if [ ! -e /dev/block/mmcblk0p2 ]
    then
    busybox echo "mmcblk0p2 no se ha encontrado, la partición data quedará montada en su lugar estado original" > $LOG;
    exit
else
    busybox echo "Partición secundaria encontrada en la SD, empezando a ejecutar órdenes:" > $LOG;
fi;

echo "" >> $LOG
echo "Comenzando operaciones de delink2sd" >> $LOG
# Eliminando aplicación Link2SD
echo "Eliminando aplicación link2sd" >> $LOG
rm /system/app/Link2SD.apk
rm /data/app/com.buak.Link2SD*.apk
rm /sd-ext/*Link2SD*.apk
rm /sd-ext/data/com.buak.Link2SD*.apk
# Eliminado script de inicio y punto de montaje
echo "Eliminando script de inicio y punto de montaje" >> $LOG
rm /system/etc/init.d/11link2sd
rm -r /data/sdext2/
# Eliminando resto de aplicación
echo "Eliminando datos de link2sd" >> $LOG
rm -r /data/data/com.buak.Link2SD
# Eliminado logs de /data
echo "Eliminando logs de /data/*link2sd*.log" >> $LOG
rm /data/*link2sd*.log

# Localizando y eliminando enlaces simbólicos creados por link2sd
echo "Localizando y eliminando enlaces simbóligos creados por link2sd" >> $LOG
echo "Eliminando los siguientes archivos enlaces:"
echo "$(find /data/app/ -type l -exec ls -al {} \; | grep "data/sdext2/" | awk '{ print $9}')" >> $LOG
rm $(find /data/app/ -type l -exec ls -al {} \; | grep "data/sdext2/" | awk '{ print $9}')
echo "Eliminando los siguientes enlaces:"
echo "$(find /data/data/ -type l -exec ls -al {} \; | grep "data/sdext2/" | awk '{ print $9}')" >> $LOG
rm $(find /data/data/ -type l -exec ls -al {} \; | grep "data/sdext2/" | awk '{ print $9}')

## Eliminando el script "06remount_fullext4" de init.d para evitar posibles conflictos
if [ -e /system/etc/init.d/06remount_fullext4 ]
    then
    rm /system/etc/init.d/06remount_fullext4
    echo "Se elimina /system/etc/init.d/06remount_fullext4" >> $LOG
fi;

# Creando carpeta para backup y estructura...
echo "Preparando backup..." >> $LOG
mkdir /sd-ext/backup-data
mkdir /sd-ext/backup-data/app
chown -R system:system /sd-ext/backup-data

# Moviendo datos generados por link2sd a backup...
echo "Creando backup..." >> $LOG
mv /sd-ext/*.apk /sd-ext/backup-data/app/
mv /sd-ext/data /sd-ext/backup-data/
mv /sd-ext/dalvik-cache /sd-ext/backup-data/

echo "Ejecutando data2sd" >> $LOG
echo "" >> $LOG

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

busybox echo "#######################################" >> $LOG
busybox echo "##   DATA2SD para usar partición SD  ##" >> $LOG
busybox echo "##         para montar data          ##" >> $LOG
busybox echo "##       Escrito por Scorpyo82       ##" >> $LOG
busybox echo "##       Para GingerCerecilla        ##" >> $LOG
busybox echo "#######################################" >> $LOG

# Este script buscará la partición externa llamada /dev/block/mmcblk0p2
# Si existe montará data en esa partición, si no proseguirá de forma cotidiana

busybox echo "" >> $LOG

## Se comprueba si existe la segunda partición

if [ ! -e /dev/block/mmcblk0p2 ]
    then
    busybox echo "mmcblk0p2 no se ha encontrado, la partición data quedará montada en su lugar estado original" >> $LOG;
    exit
else
    busybox echo "Partición secundaria encontrada en la SD, se procede a sustituir el punto de montaje de DATA" >> $LOG;
fi;


# Se desmonta data y se monta en una carpeta provicional llamada data-old

busybox echo "Creando carpeta data-old para ospedar la partición data original" >> $LOG;
busybox mount -o remount,rw /;
busybox mkdir /data-old;

## Cambiando punto de montaje de data a data-old
busybox echo "Cambiando punto de montaje de data a data-old" >> $LOG;
busybox umount /data;
busybox mount -t rfs /dev/block/stl11 /data-old/;

## Se desmonta mmcblk0p2 y se monta en /data
busybox umount /sd-ext;
busybox echo "Cambiando punto de montaje de /data" >> /data-old/$VERSION.log;
busybox mount -o noatime,nodiratime,nosuid,nodev /dev/block/mmcblk0p2 /data;
busybox chown 1000:1000 /data;
busybox chmod 771 /data;

## Se comprueba que DATA2SD no se haya ejecutado con aneterioridad:
if [ -e /data/ctrldata2sd.log ]
    then
    busybox echo "DATA2SD ya se ejecutó anteriormente y se interrumpe la ejecución para conservar los archivos actuales" >> $LOG;
    busybox echo "Para ver la salida original de DATA2SD puede comprobar el archivo /data/ctrldata2sd.log" >> $LOG;
    busybox umount /data-old
    exit
else

    ## Moviendo el archivo de log
    busybox mv /data-old/$VERSION.log /data/;

    ## Moviendo archivos existentes en /data-old a /data
    busybox echo "** Moviendo arvhivos de /data-old/ a /data **" >> $LOG;
    for i in `ls /data-old`;
    do
        if [ ! -e /data/$i ]
            then
            busybox echo "        Moviendo /data-old/$i a /data/$i" >> $LOG;
            busybox mv /data-old/$i /data/$i;

            ## Eliminando los directorios traspasados
            busybox echo "        Eliminando /data-old/$i" >> $LOG;
            busybox rm -rf /data-old/$i;
        fi;
    done;
    ## Generando punto de control para que el script sepa que ya se ejecutó en su día:
    busybox echo "Este archivo se genera para que DATA2SD no se ejecute de nuevo" > /data/ctrldata2sd.log
    busybox echo "La última vez que se ejecutó enteramente $VERSION en este sistema se obtuvo este log:" >> /data/ctrldata2sd.log
    busybox echo "" >> /data/ctrldata2sd.log
    busybox echo "Fecha: `date`" >> /data/ctrldata2sd.log
    busybox cat /data/$LOG >> /data/ctrldata2sd.log
    busybox echo "############### Fin del resumen de DATA2SD ###############" >> /data/ctrldata2sd.log

    busybox echo "" >> $LOG;
    busybox echo "Desmontando el viejo data" >> $LOG;
    sync;
    busybox umount /data-old

    busybox echo "" >> $LOG;
    busybox echo "Ejecución de data2sd terminada" >> $LOG;

fi;

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

echo "" >> $LOG
echo "********* Fin de resumen de data2sd *************" >> $LOG
 cat $LOG >> $LOG
echo "********* Fin de Resumen *************" >> $LOG
echo "" >> $LOG

## Moviendo el backup creado anteriormente
echo "Restaruando backup conservando atributos..." >> $LOG
cp -a -p -R /data/backup-data/* /data/
rm -r /data/backup-data/

echo "Delink2sd ha terminado de hacer las operaciones" >> $LOG
echo "################################################################" >> $LOG
sync;
busybox umount /sd-ext
busybox umount /data
exit
Y este es el parche que e incluido en el kernel (que habrá que mejorar):

DATA2SD
Código:
#!/sbin/busybox sh

VERSION=DATA2SD_v1
LOG=/data/$VERSION.log

busybox echo "#######################################" > $LOG
busybox echo "##   DATA2SD para usar partición SD  ##" >> $LOG
busybox echo "##         para montar data          ##" >> $LOG
busybox echo "##       Escrito por Scorpyo82       ##" >> $LOG
busybox echo "##       Para GingerCerecilla        ##" >> $LOG
busybox echo "#######################################" >> $LOG

# Este script buscará la partición externa llamada /dev/block/mmcblk0p2
# Si existe montará data en esa partición, si no proseguirá de forma cotidiana

busybox echo "" >> $LOG

## Se comprueba si existe la segunda partición

if [ ! -e /dev/block/mmcblk0p2 ]
    then
    busybox echo "mmcblk0p2 no se ha encontrado, la partición data quedará montada en su lugar estado original" >> $LOG;
    exit
else
    busybox echo "Partición secundaria encontrada en la SD, se procede a sustituir el punto de montaje de DATA" >> $LOG;
fi;


# Se desmonta data y se monta en una carpeta provicional llamada data-old

busybox echo "Creando carpeta data-old para ospedar la partición data original" >> $LOG;
busybox mount -o remount,rw /;
busybox mkdir /data-old;

## Cambiando punto de montaje de data a data-old
busybox echo "Cambiando punto de montaje de data a data-old" >> $LOG;
busybox umount /data;
busybox mount -t rfs /dev/block/stl11 /data-old/;

## Se desmonta mmcblk0p2 y se monta en /data
busybox umount /sd-ext;
busybox echo "Cambiando punto de montaje de /data" >> /data-old/$VERSION.log;
busybox mount -o noatime,nodiratime,nosuid,nodev /dev/block/mmcblk0p2 /data;
busybox chown 1000:1000 /data;
busybox chmod 771 /data;

## Se comprueba que DATA2SD no se haya ejecutado con aneterioridad:
if [ -e /data/ctrldata2sd.log ]
    then
    busybox echo "DATA2SD ya se ejecutó anteriormente y se interrumpe la ejecución para conservar los archivos actuales" >> $LOG;
    busybox echo "Para ver la salida original de $VERSION puede comprobar el archivo /data/ctrldata2sd.log" >> $LOG;
    busybox umount /data-old
    exit
else

    ## Moviendo el archivo de log
    busybox mv /data-old/$VERSION.log /data/;

    ## Moviendo archivos existentes en /data-old a /data
    busybox echo "** Moviendo arvhivos de /data-old/ a /data **" >> $LOG;
    for i in `ls /data-old`;
    do
        if [ ! -e /data/$i ]
            then
            busybox echo "        Moviendo /data-old/$i a /data/$i" >> $LOG;
            busybox mv /data-old/$i /data/$i;

            ## Eliminando los directorios traspasados
            busybox echo "        Eliminando /data-old/$i" >> $LOG;
            busybox rm -rf /data-old/$i;
        fi;

    done;
    ## Generando punto de control para que el script sepa que ya se ejecutó en su día:
    busybox echo "Este archivo se genera para que DATA2SD no se ejecute de nuevo" > /data/ctrldata2sd.log
    busybox echo "La última vez que se ejecutó enteramente $VERSION en este sistema se obtuvo este log:" >> /data/ctrldata2sd.log
    busybox echo "" >> /data/ctrldata2sd.log
    busybox echo "Fecha: `date`" >> /data/ctrldata2sd.log
    busybox cat /data/$LOG >> /data/ctrldata2sd.log
    busybox echo "############### Fin del resumen de $VERSION ###############" >> /data/ctrldata2sd.log

    busybox echo "" >> $LOG;
    busybox echo "Desmontando el viejo data" >> $LOG;
    sync;
    busybox umount /data-old

    busybox echo "" >> $LOG;
    busybox echo "Ejecución de data2sd terminada" >> $LOG;

fi;
Si véis algo extraño lo comentáis a ver, ahora voy a descansar un poco y voy a cenar.

Un saludo.

EDITO:
El fallo estúpido para variar está en esta línea que he marcado en negrita del script delink2sd:
 Cita:
cat $LOG >> $LOG
Una variable que se enriquece de si misma.... ¿¿¿como carajos he estado para escribir eso??? y encima no tiene sentido... ¿para que quería hacer eso? es algo que solo Malder y Scally pueden llegar a descubrir con la ayuda de Mac Guivers y Chucnorrys..... bueno, todo eso contando con que el "hombre de negro" lo permita investigar. jajajaja

Total, sigo probando a ver si ya se ejecuta bien.

Última edición por Scorpyo82 Día 20/12/13 a las 23:53:53.
Responder Con Cita
Los siguientes 2 usuarios han agradecido a su comentario: