Translate

viernes, febrero 23, 2018

Como cambiar el CID en una Samsung Evo+

Como cambiar el CID en una Samsung Evo+

 1.1 Hardware y software:

  • Portátil con lector de tarjeta SD interno conectado a un bus IDE o PCI. NOsirven lectores USB internos o externos. También se puede usar un telefono o tablet android con lector de SD y con acceso ROOT.
  • Tarjeta Samsung Evo+ con CID cambiable.
  • Programa evoplus_cid que se descarga de: https://github.com/raburton/evoplus_cid
  • Si se usa un portátil necesitamos tener instalada una distribución linux de 64bits, aunque también sirve perfectamente un live disc, o un usb (www.slax.org).
  • Nota: para hacer un live usb con linux 64bits con almacenamiento persistente (para guardar los docuemntos y no se borren en el siguiente boot) usar: https://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/


Nota 1: No todas las Samsung Evo+ sirven, en 32GB estos son los modelos que funcionan:
MB-SC32D/EU
MB-MC32DA/EU
y en 64GB aparentemente son todos los modelos.

Nota 2: Según parece todas las tarjetas que se venden como Samsung y que no permiten el cambio, o son modelos importadas de otros mercados, o son directamente copias falsas. Las auténticas que se venden en el mercado europeo deberían soportar todas el cambio de CID.

1.2 Que es el CID.

El CID es el Card Identification Register, un registro interno de las SD que incorpora información sobre la tarjeta como el fabricante, nº de serie, fecha defabricación, etc. Es un registro de 16 bytes de longitud, en el que 15 bytes son datos y el último byte se usa como suma de control de los anteriores.
El CID se supone que se estampa en el proceso de fabricación, y es de solo lectura, pero recientemente se han descubierto una serie de comandos internos que permiten modificarlo a nuestro antojo.


2.1 Lectura del CID

Para la obtención del CID se busca en linux el fichero en la siguiente ruta:

/sys/class/mmc_host/mmc1/mmc1:0001/cid

se copia el contenido en un fichero txt "originalCID.txt" y se guarda en el disco duro.

Es posible, dependiendo del sistema, que parte de la ruta sea distinta, en vez de "mmc1" sea "mmc0", para averiguarlo, se entra dentro de la ruta /sys/class/mmc_host/  y en ese momento se mete y se saca en el lector la sd card y actualizando con F5 vemos aparecer/desaparecer el directorio "mmcX".

El CID tiene un tamaño de 15+1 bytes (32 caracteres), siendo el último una suma de control. Es habitual que en el último byte aparezca como 00, esto es un error en la mayoria de los firmwares de los lectores de tarjetas, y que no son capaces de mostrar el último byte y por defecto muestra 00. Esto no es muy importante ya que el programa evoplus_cid admite la escritura de los 15 primeros bytes, calculando y escribiendo por nosotros el último byte.


2.2 Compilación en Ubuntu 16.04 LTS 64b

Una vez descomprimido el fichero que hemos descargado de github, debemos abrir un terminal dentro de la carpeta jni y compilar con el siguiente comando:

"gcc -o evoplus_cid evoplus_cid.c"


2.3 Cambio del CID

En el mismo terminal ejecutamos el nuevo comando compilado, que tiene la siguiente sintaxis:

./evoplus_cid

Un ejemplo sería:

"./evoplus_cid /dev/block/mmcblk1 744a454e2f412020106c6d77470104c3"

Hecho esto ya deberíamos tener el nuevo CID cambiado. Si el último byte del CID es 00 (por probable error de lectura) podremos omitirlo, y con eso el programa calculará el último byte y lo escribirá por nosotros. El comando anterior en ese caso quedaría asi:

"./evoplus_cid /dev/block/mmcblk1 744a454e2f412020106c6d77470104"

La ruta del dispositivo puede no ser "mmcblk1", pudiendo ser "mmcblk0" u otra, dependiendo del hardware y de la distribución linux empleada, asi que antes de ejecutar el comando se debería ver en el explorador de archivos si la ruta es correcta, usando la misma tecnica que en el apartado 2.1 (meter y sacar la tarjeta y ver lo que aparece en "/dev/block/")

Bye.


Fuentes:
http://richard.burtons.org/2016/07/01/changing-the-cid-on-an-sd-card/
http://richard.burtons.org/2016/07/31/cid-change-on-sd-card-update-evoplus_cid/
http://www.cameramemoryspeed.com/sd-memory-card-faq/reading-sd-card-cid-serial-psn-internal-numbers/

miércoles, enero 17, 2018

Convertir ficheros *.svg (inkscape) y *.dxf (autocad) en piezas para imprimir




Convertir ficheros *.svg (inkscape) y *.dxf (autocad) en piezas para imprimir



Software que necesitamos:

-Google Scketchup PRO 8 (solo la version pro permite imporar dxf)
-Img2Cad
-Inkscape

Como usar:

1.Pieza svg en inkscape:
 -modos de trayecto (F2) y selecionar todos los lados de la pieza manteniendo shift presionado
-Menu trayecto --> borde a trayecto
-Archivo --> exportar imagen png:
                      -Boton seleccion
                      -Poner ruta y nombre de fichero a exporar
                      -boton exportar
2.Imporar el fichero png desde app img2cad:
  -boton add files
  -boton options:
             -center line
             -value 600
             -do not override,ok
             -browse desino y convert fichero dxf
3. sketchup pro 8:
          - File import e imporatamos el fichero dxf
          -Ya podemos trabajar en 3d con el fichero, para dar volumen hay que usar primero el lapiz



   


viernes, diciembre 22, 2017

Habilitar Crontab en Android (PROGRAMAR TAREAS EN LINUX - android)

Habilitar Crontab en Android

Está probado en Android 6.

Bajar fichero :

https://mega.nz/#!NNFm3IrZ!ScxGNO8dCIYHwuOcNvsAE-ilXI_9ZJqsd3X_LnD554g

-Dejar en el almacenamiento interno del telefono descomprimido por ejemplo en la carpeta /mnt/sdcard.
-Puedes entrar en la shell por adb o usando una app como termius contra localhost
-como root ejecutaremos el comando Install.sh
-Poner el sistema en modo lectura: mount -o rw,remount /


-El fichero con las tareas programadas está en /system/etc/cron.d/root y lo editamos como root para agregar nuestras tareas programadas, yo he creado una para que se ejecute el modo vuelo automaticamente a las 23:30 todas las noches de todos los dias de la semana, el script airOn. sh y airOff.sh lo teneis mas abajo:
       30 23 * * *  su -l root -c '/bin/airOn.sh'
  Salir del editor (yo uso vi). 
-Poner el sistema en modo read only: mount -o ro,remount /





Hay que hacer dos scripts, uno para activar el modo vuelo y otro para desactivarlo:
airOn.sh:
#!/sbin/sh

settings put global airplane_mode_on 1
am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true

airOff.sh
#!/sbin/sh

settings put global airplane_mode_on 0
am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false
Yo los he dejado en /bin para que coja el Path, 
hay que darles permisos de ejecución para todos los usuarios chmod 777 
Con crontab podemos programar la hora de activacion y desactivación, todos
los dias a las 6:45:
45 06  * * *  su -l root -c '/system/bin/reboot'