Ethernet Config
Ethernet Config is the privileged system app used on current Bass OS builds (Android 13+) to manage wired Ethernet. It replaces the older Bliss Ethernet Manager while keeping the same blissethernet AIDL contract so existing integrations continue to work.
Setting up Ethernet interfaces
Open Ethernet Config from the launcher (or Settings shortcuts on builds that expose it).
- Select the target interface (for example
eth0). Tap Refresh if the list is empty. - Choose DHCP (Auto) or Static IP (Manual).
- For static mode, enter IP, subnet mask, gateway, and DNS.
- Tap Apply configuration.
- Confirm link state and addresses in the status panel.
Notes:
- IP and subnet may be shown as separate fields in the UI; the AIDL API uses
<IP>/<prefix>(for example192.168.1.100/24). - On Android 13+, Ethernet changes require a platform-signed privileged install. Bass ROM builds include Ethernet Config that way via
ethernet_config.mk.
Prop-based auto-config (Bass)
Bass can apply a static (or DHCP) Ethernet profile at boot from persistent system properties. BlissEthernetService reads these props and applies them when the service starts or when the interface becomes available.
Set props on a running device
adb shell setprop persist.bass.ethernet.mode static
adb shell setprop persist.bass.ethernet.iface eth0
adb shell setprop persist.bass.ethernet.ip 192.168.1.199
adb shell setprop persist.bass.ethernet.mask 255.255.255.0
adb shell setprop persist.bass.ethernet.gateway 192.168.1.1
adb shell setprop persist.bass.ethernet.dns1 8.8.8.8
adb shell setprop persist.bass.ethernet.dns2 8.8.4.4
Restart the service (or reboot) so props are applied. Changing the device IP will drop a network ADB session — reconnect to the new address. Full steps: Testing Guide.
Build-time defaults
Uncomment or add in product makefiles (for example vendor/bass/branding.mk or ethernet_config.mk):
PRODUCT_PROPERTY_OVERRIDES += \
persist.bass.ethernet.mode=static \
persist.bass.ethernet.iface=eth0 \
persist.bass.ethernet.ip=192.168.1.199 \
persist.bass.ethernet.mask=255.255.255.0 \
persist.bass.ethernet.gateway=192.168.1.1 \
persist.bass.ethernet.dns1=8.8.8.8 \
persist.bass.ethernet.dns2=8.8.4.4
Boot start
BlissEthernetService registers the blissethernet binder. On Bass ROM builds it is started without opening the UI:
If the binder is missing after boot:
adb shell /system/bin/sh /system_ext/bin/start-bliss-ethernet
# or:
adb shell am start-service -n com.example.ethernetconfig/.aidl.BlissEthernetService --user 0
adb shell service list | grep blissethernet
AOSP / Bass integration
$(call inherit-product, packages/apps/EthernetConfig/ethernet_config.mk)
The product makefile installs the platform-signed privileged app, priv-app permissions, init rc, and start-bliss-ethernet helper under system_ext.
Related docs
- AIDL Interface — Java/Kotlin client API and
service callcodes - Testing Guide — prop auto-config, AIDL smoke tests, ADB reconnect
- Bliss Ethernet Manager — legacy app docs (older builds)