# Configuración de properties.local

El archivo `properties.local` es el archivo de configuración del sistema para el servicio FIRERPA, generalmente almacenado en el dispositivo, que contiene cadenas de texto en formato `key=value`. Al editar este archivo, puede configurar FIRERPA para que se conecte automáticamente a OpenVPN, un proxy, reenvío de puertos, o para establecer una contraseña de inicio de sesión o un certificado, entre otras configuraciones del sistema, al iniciarse. Al arrancar, FIRERPA buscará y cargará este archivo desde `/data/usr`. Puede obtener los elementos configurables del archivo [properties.local.example](https://github.com/firerpa/lamda/blob/HEAD/properties.local.example) en el proyecto y seleccionarlos según sus necesidades. Sin embargo, tenga en cuenta que no debe copiar este archivo directamente; solo incluya las partes que necesite.


```{attention}
El directorio /data/usr es el directorio de datos de usuario de FIRERPA y no existe antes del primer arranque. Si necesita preconfigurar `properties.local`, deberá crear este directorio manualmente.
```

En las secciones de cada funcionalidad también se explica cómo escribir la configuración de inicio en `properties.local`. También puede consultar `properties.local.example` como referencia.

## Lista de parámetros de configuración

### Configuración básica del núcleo

Configura el entorno de ejecución básico del servicio LAMDA, incluyendo el puerto de escucha, la autenticación, las credenciales de inicio de sesión y la política de origen cruzado (CORS).

| Nombre del parámetro | Valor por defecto | Valor de ejemplo | Introducido | Eliminado | Descripción |
| :--- | :--- | :--- | :--- | :--- | :--- |
| `port` | `65000` | `65000` | - | - | Puerto de escucha por defecto para el servicio LAMDA. |
| `brandname` | `FIRERPA` | `LAMDA-DEV` | - | - | Nombre del dispositivo que se muestra en el escritorio remoto (máximo 10 caracteres). |
| `cert` | Ninguno | `TEFNREEg...` | - | - | Certificado codificado en Base64, utilizado para el cifrado y la autenticación TLS. |
| `ssl-web-credential` | Ninguno | `pwd123` | - | - | Contraseña de respaldo para el inicio de sesión en el escritorio remoto (6-32 caracteres). |
| `allow_origin` | Ninguno | `https://a.com` | - | - | Establece la cabecera CORS para permitir la incrustación de la WebUI. |
| `logfile` | Ninguno | `/data/log.txt` | - | - | Ruta de almacenamiento del archivo de registro (el directorio debe crearse previamente). |

### Optimización y compatibilidad del sistema

Controla la lógica de negocio subyacente y las estrategias de sigilo para mejorar las operaciones de automatización o para realizar ajustes de retroceso cuando surgen problemas de compatibilidad en el dispositivo.

| Nombre del parámetro | Valor por defecto | Valor de ejemplo | Introducido | Eliminado | Descripción |
| :--- | :--- | :--- | :--- | :--- | :--- |
| `disable-client-api` | `false` | `true` | - | - | Deshabilita la API del cliente de Python. Establézcalo en `true` si el dispositivo se bloquea. |
| `enhanced-stealth-mode` | `false` | `true` | 7.65 | - | Modo de sigilo mejorado para evitar la detección de componentes. |
| `enhanced-automation` | `false` | `true` | - | - | Habilita el soporte de automatización mejorada. |
| `touch.backend` | `native` | `system` | - | - | Backend táctil: `system` (corrige el desplazamiento) o `native` (por defecto). |
| `intercept-intent` | `false` | `true` | 8.20 | - | Habilita la función de intercepción de Intent (`get_last_activities`). |

### Servicio OpenVPN

Configuración del cliente OpenVPN integrado que permite al dispositivo comunicarse a través de un túnel VPN, con soporte para el reenvío de todo el tráfico y la autenticación de usuarios.

| Nombre del parámetro | Valor por defecto | Valor de ejemplo | Introducido | Eliminado | Descripción |
| :--- | :--- | :--- | :--- | :--- | :--- |
| `openvpn.enable` | `false` | `true` | - | - | Habilita el servicio OpenVPN integrado. |
| `openvpn.global` | `false` | `false` | - | - | Habilita el reenvío de todo el tráfico a través de la VPN. |
| `openvpn.proto` | `udp` | `udp` | - | - | Protocolo de comunicación de la VPN. |
| `openvpn.cipher` | `AES-256-GCM` | `AES-256-GCM` | - | - | Algoritmo de cifrado. |
| `openvpn.host` | Ninguno | `123.123.123.123` | - | - | Dirección del servidor OpenVPN. |
| `openvpn.port` | Ninguno | `1190` | - | - | Puerto del servidor OpenVPN. |
| `openvpn.ca` | Ninguno | `LS0t...` | - | - | Certificado CA en Base64. |
| `openvpn.cert` | Ninguno | `LS0t...` | - | - | Certificado del cliente en Base64. |
| `openvpn.key` | Ninguno | `LS0t...` | - | - | Clave privada del cliente en Base64. |

### Servicio de proxy global

Configura LAMDA para conectarse automáticamente a un proxy HTTP o SOCKS5 al arrancar, permitiendo que el tráfico del dispositivo se enrute a través de un servidor intermediario especificado desde el inicio del servicio.

| Nombre del parámetro | Valor por defecto | Valor de ejemplo | Introducido | Eliminado | Descripción |
| :--- | :--- | :--- | :--- | :--- | :--- |
| `gproxy.enable` | `false` | `true` | - | - | Conecta automáticamente al proxy al arrancar. |
| `gproxy.type` | Ninguno | `http-connect` | - | - | Tipo de proxy: `http-connect` o `socks5`. |
| `gproxy.host` | Ninguno | `172.1.1.1` | - | - | Dirección del servidor proxy. |
| `gproxy.port` | Ninguno | `8080` | - | - | Puerto del servidor proxy. |
| `gproxy.login` | Ninguno | `admin` | - | - | Nombre de usuario para el inicio de sesión en el proxy. |
| `gproxy.password` | Ninguno | `pwd123` | - | - | Contraseña para el inicio de sesión en el proxy. |

### Servicio de reenvío de puertos FRP

Basado en la tunelización de intranet de FRP, mapea los puertos de servicio del dispositivo a un servidor público, resolviendo problemas de acceso remoto en entornos sin una IP pública.

| Nombre del parámetro | Valor por defecto | Valor de ejemplo | Introducido | Eliminado | Descripción |
| :--- | :--- | :--- | :--- | :--- | :--- |
| `fwd.enable` | `false` | `true` | - | - | Habilita el servicio de reenvío FRP. |
| `fwd.host` | Ninguno | `123.123.123.123` | - | - | Dirección del servidor FRP. |
| `fwd.port` | Ninguno | `9911` | - | - | Puerto de control del servidor FRP. |
| `fwd.protocol` | `tcp` | `tcp` | - | - | Tipo de protocolo de reenvío. |
| `fwd.token` | Ninguno | `abc123` | - | - | Token de autenticación para el inicio de sesión en FRP. |
| `fwd.rport` | `0` | `10086` | - | - | Puerto de reenvío remoto (0 para aleatorio). |

### Servicios de desarrollo y gestión

Proporciona interruptores para herramientas comunes de gestión del sistema, incluyendo el servicio ADB, el acceso a shell remoto a través de SSH y la gestión de tareas programadas.

| Nombre del parámetro | Valor por defecto | Valor de ejemplo | Introducido | Eliminado | Descripción |
| :--- | :--- | :--- | :--- | :--- | :--- |
| `adb.enable` | `true` | `true` | - | - | Habilita el servicio ADB integrado. |
| `adb.directory` | `/data/local/tmp` | `/data/local/tmp` | - | - | Directorio de trabajo de ADB. |
| `adb.privileged` | `false` | `true` | - | - | Habilita los privilegios de Root (de lo contrario, privilegios de shell). |
| `sshd.enable` | `true` | `true` | - | - | Habilita el servicio SSH. |
| `cron.enable` | `true` | `true` | - | - | Habilita el servicio de tareas programadas (cron). |

### Servicio de proxy en modo puente (bridge)

Un modo de proxy de red avanzado que permite puentear el tráfico a través de una interfaz de red específica (como la red de datos móviles), permitiendo el acceso a Internet a través de la red del dispositivo como un proxy, con soporte para la autenticación de usuarios.

| Nombre del parámetro | Valor por defecto | Valor de ejemplo | Introducido | Eliminado | Descripción |
| :--- | :--- | :--- | :--- | :--- | :--- |
| `tunnel2.enable` | `false` | `true` | - | - | Habilita el servicio de proxy en modo puente. |
| `tunnel2.login` | Ninguno | `lamda` | - | - | Nombre de usuario del proxy en modo puente. |
| `tunnel2.password` | Ninguno | `1234` | - | - | Contraseña del proxy en modo puente. |
| `tunnel2.iface` | Ninguno | `rmnet` | - | - | Interfaz de salida: `rmnet` (datos móviles) o `wlan` (WiFi). |

### Servicio de descubrimiento por difusión (broadcast)

Servicio de descubrimiento automático de dispositivos basado en el protocolo mDNS. Cuando está habilitado, permite localizar e identificar rápidamente dispositivos LAMDA en la red local a través de un nombre de dominio o metadatos.

| Nombre del parámetro | Valor por defecto | Valor de ejemplo | Introducido | Eliminado | Descripción |
| :--- | :--- | :--- | :--- | :--- | :--- |
| `mdns.enable` | `false` | `false` | - | - | Habilita el descubrimiento por difusión mDNS. |
| `mdns.meta` | `false` | `true` | - | - | Difunde los metadatos del dispositivo (modelo, ID, etc.). |
| `mdns.name` | Ninguno | `LAMDA.local` | - | - | Nombre de difusión local personalizado. |
| `mdns.service` | `lamda` | `lamda` | - | - | Nombre del servicio que se difunde. |