C贸mo Compilar Samourai Wallet
view this post on our onion site
7 min read

C贸mo Compilar Samourai Wallet

C贸mo Compilar Samourai Wallet

Compilar es el proceso de convertir el c贸digo escrito en un lenguaje de programaci贸n, que puede ser entendido por los humanos, en c贸digo m谩quina, que puede ser ejecutado por los ordenadores.

En este art铆culo veremos c贸mo compilar Samourai Wallet y por qu茅 es importante.

隆No es tan dif铆cil como podr铆a parecer!


1. Porque Compilar el software?

Supongamos que est谩s en un restaurante y acabas de comer un trozo de tarta que te ha gustado mucho. Le dices al cocinero lo mucho que te ha gustado y le pides la receta, que te da encantado.

Ahora bien, 驴c贸mo puedes saber si esa receta produce realmente esa tarta? La 煤nica forma de asegurarlo es seguir los pasos de la receta y comprobar si el resultado es esa misma tarta.

Por supuesto, la analog铆a no es perfecta. Cocinar no es matem谩tico y dif铆cilmente se acabar谩 obteniendo la tarta exacta, sobre todo si no se es cocinero. Pero por suerte no tenemos ese problema con el software.

Por lo tanto, la primera raz贸n para compilar es:

No conf铆es, verifica

  • Si compilas y subes el software a tu tel茅fono, no est谩s confiando en nadie;
  • Si descargas el apk y verificas la firma, est谩s confiando en el desarrollador; pero
  • Si descargas el monedero de Google o Apple, est谩s confiando en todos: los desarrolladores, el proveedor de la tienda, el gobierno;

Personalizar

La segunda raz贸n es la personalizaci贸n. Si hay alg煤n detalle en la cartera que no te gusta o que preferir铆as cambiar, el software de c贸digo abierto nos permite modificarlo.

Claro que esto es m谩s dif铆cil que simplemente compilar, pero veremos algunos ejemplos sencillos.

Aportar

Esta 煤ltima raz贸n es sin duda la m谩s dif铆cil. En caso de que creas que tus cambios ser铆an 煤tiles para otros, puedes solicitar que tu c贸digo se fusione con el monedero, haci茅ndolo parte de una futura versi贸n y beneficiando a todos los usuarios.


2. Compilaci贸n

Vamos a utilizar Ubuntu Linux en este tutorial, pero el proceso es pr谩cticamente el mismo para cualquier distribuci贸n de Linux. Vamos a ver cada paso.

2.1 Obtener el c贸digo de Samourai Wallet

Necesitamos git VCS (sistema de control de versiones) instalado para obtener el c贸digo. Si a煤n no lo tienes, se puede instalar en las distros basadas en Debian con sudo apt install git.

Ahora, vamos a clonar el repositorio de Samourai con:

 
 $ git clone https://code.samourai.io/wallet/samourai-wallet-android
 $ cd samourai-wallet-android
 

Hemos descargado el c贸digo en el directorio samourai-wallet-android y lo hemos introducido. Si ahora escribes git status, ver谩s un mensaje como On branch develop.
Los repositorios Git se organizan en ramas y actualmente estamos en la rama develop, que est谩 destinada al c贸digo en el que se est谩 trabajando para formar parte de una futura versi贸n.

Dado que nuestro prop贸sito aqu铆 es construir Samourai para nuestro propio uso, debemos comprobar una rama que corresponde a una liberaci贸n, por lo que tendr铆amos el mismo c贸digo que fue liberado.

Primero, comprueba las ramas disponibles con git branch -a.

En el momento de escribir esto, la 煤ltima versi贸n liberada es la 0.99.98f. Cambiemos a esa versi贸n usando git checkout 0.99.98f. Ahora los archivos del directorio han sido cambiados por los de la versi贸n 0.99.98f.

2.2 Instalar Android Studio

Vaya a la p谩gina de descarga de Android Studio y obtenga la 煤ltima versi贸n para Linux, que actualmente es Android Studio Dolphin | 2021.3.1 Patch 1 para Linux 64-bit:

Extrae el contenido de ese paquete en alg煤n lugar usando la GUI o con tar xvf android-studio-2021.3.1.17-linux.tar.gz. En mi caso, los extraje a /home/user/android-studio.

2.3 Abrir el proyecto

Dentro del directorio de Android Studio est谩 el directorio bin con el ejecutable del IDE. In铆cialo con ./studio.sh. Android Studio comenzar谩 a cargar.
Las opciones por defecto est谩n bien para aceptarlas. En la pantalla de bienvenida, selecciona Open y elige el lugar donde has clonado el proyecto. Si te pregunta si quieres confiar en el proyecto, conf铆rmalo:

Abrir el proyecto puede llevar un tiempo. Es posible que aparezcan algunos errores del IDE y que en la parte inferior aparezcan muchos mensajes sobre las cosas que se est谩n indexando. Espera hasta que esos mensajes desaparezcan.

Finalmente, Gradle descargar谩 las dependencias del proyecto. Ten paciencia. Escrib铆 este tutorial en una m谩quina virtual, as铆 que es muy probable que a m铆 me lleve m谩s tiempo que a ti :)

Despu茅s de que todas esas indexaciones y descargas est茅n hechas, es muy probable que el IDE ofrezca actualizaciones en el plugin de Gradle o incluso en el propio Android Studio. Te recomiendo que las instales todas (yo tambi茅n reviso los pasos recomendados), reiniciando el IDE si te lo pide.

2.4 Construir el proyecto

Ahora que hemos actualizado todo y no quedan m谩s notificaciones, estamos listos para construir el monedero. Abre el men煤 Build y selecciona Generate Signed Bundle / APK..., luego elige APK.

A continuaci贸n, te pedir谩 un almac茅n de claves para firmar el APK. Haz clic en Crear nuevo..., y luego elige una ruta y una contrase帽a. Tambi茅n necesitar谩s un alias para la clave con su propia contrase帽a (puede ser la misma contrase帽a del almac茅n de claves) y un nombre para el certificado. En el cuadro de di谩logo anterior, introducir谩 la informaci贸n de este almac茅n de claves (vea las im谩genes de abajo):

Por 煤ltimo, tenemos que seleccionar la variante de construcci贸n. Podemos elegir una compilaci贸n de producci贸n o de ensayo y tambi茅n una de lanzamiento o de depuraci贸n.

production est谩 pensada para ser utilizada en la red principal, mientras que staging es m谩s adecuada para la red de pruebas. Hay algunas diferencias entre ambas versiones. Por ejemplo, la versi贸n de producci贸n no permite grabar o capturar la pantalla de entrada del PIN por motivos de seguridad.

Una cosa a tener en cuenta aqu铆 es que no se puede tener m谩s de un APK de producci贸n o staging en el mismo tel茅fono al mismo tiempo. Por lo tanto, si desea por ahora s贸lo probar este procedimiento, probablemente deber铆a elegir la puesta en escena. Cuando te sientas m谩s c贸modo con el uso de tu propia versi贸n compilada en mainnet, puedes ir con production. En este 煤ltimo caso, tendr谩s que desinstalar primero tu cartera Samourai ya existente (隆recuerda comprobar primero tu copia de seguridad!) y luego instalar tu APK.

La otra opci贸n es debug o release. Como su nombre indica, la primera est谩 indicada para la depuraci贸n, mientras que la liberaci贸n generar谩 una versi贸n optimizada. Aqu铆 no vamos a depurar nada, as铆 que elige release.

Si quieres tener un tercer Samourai en tu tel茅fono (como para probar las transacciones de PayNym entre 2 carteras de testnet), puedes crear f谩cilmente una nueva variante de build. Abre el archivo app/build.gradle y, en productFlavors, a帽ade una variante m谩s. Aqu铆, estoy creando una variante dev:

    
    dev {
    applicationId 'com.samourai.wallet.dev'
    versionCode 193
    versionName "0.99.98f"
    resValue "string", "app_name", "Samourai Dev"
    resValue "string", "version_name", "0.99.98f"
    }
    

3. Personalizaci贸n

Como he dicho antes, cambiar el c贸digo fuente requiere tener conocimientos de desarrollo en Android, por lo que queda fuera del alcance del tutorial, pero vamos a ver algunos ejemplos de cosas sencillas que se pueden hacer.

Cambiar el idioma de la aplicaci贸n: Me gusta usar mi Samourai Wallet en ingl茅s en lugar del idioma del tel茅fono. No hay forma de configurar esto en la propia app, pero podemos conseguirlo f谩cilmente entrando en el directorio app/src/main/res/values/strings y borrando los archivos strings.xml no deseados. En mi caso, borro los que est谩n dentro de los directorios como values-es, values-de etc, manteniendo s贸lo el directorio values.

Cambiar el icono y el nombre de la aplicaci贸n: esto es un poco tonto, pero la aplicaci贸n puede disfrazarse de un potencial atacante f铆sico. Puedes disfrazar tu app como TikTok, por ejemplo.
Descargue la aplicaci贸n TikTok de un sitio web como Apkpure, descomprima el apk y obtenga el icono de uno de los directorios bajo res. El icono se llama a.png o b.png.
C谩mbiale el nombre a tiktok.png y c贸pialo en app/src/main/res/drawable-hdpi.

Edita AndroidManifest.xml y, en < application >, cambia el valor de **android:icon **a @drawable/tiktok y de android:label a TikTok:

0:00
/

Pedir el PIN antes de las transacciones: esto es un poco m谩s avanzado, pero tambi茅n me gusta que mi cartera me pida el PIN antes de cada transacci贸n, as铆 que he creado una preferencia para ello:

4. Conclusi贸n

Construir el monedero no es realmente tan dif铆cil y nos permite asegurarnos de que no estamos confiando en nadie: efectivamente estamos utilizando el c贸digo abierto publicado. Adem谩s, uno puede cambiar partes del monedero, con c贸digo hecho por 茅l mismo o por otros.

Es cierto que hay que seguir muchos pasos, pero la mayor铆a de ellos s贸lo hay que hacerlos una vez.
Para futuros lanzamientos, s贸lo tendr铆amos que obtener el nuevo c贸digo con git pull, cambiar a la rama de lanzamiento m谩s reciente con git checkout, reconstruir y subir el APK al tel茅fono.

Traducido por Dafer
Escrito originalmente: otto
馃А
Found this post helpful? Consider sending the author a tip
銋ゃ叅銋ゃ叅銋ゃ叅銋ゃ叅銋ゃ叅銋ゃ叅銋ゃ叅銋ゃ叅銋ゃ叅銋ゃ叅銋ゃ叅銋ゃ叅銋ゃ叅銋ゃ叅銋ゃ叅銋ゃ叅銋ゃ叅銋ゃ叅銋ゃ叅銋ゃ叅銋ゃ叅銋ゃ叅銋