Note: On current Bass OS builds (Android 13+), wired Ethernet is managed by Ethernet Config, which exposes the same blissethernet AIDL API. Prefer those docs for new deployments. This page documents the legacy Bliss Ethernet Manager app.

BlissEthernetManager

Setting Up Ethernet Interfaces

If your version of BlissBass comes with the Eternet Manager, then you are able to setup multiple ethernet interfaces and configure them.

alt_text
alt_text

Clicking on the Interfaces item allows you to select the target Ethernet interface to view/edit. You may need to click the refresh button at the top for changes to be reflected.

alt_text
alt_text
alt_text
alt_text

From there, you can set the interface as Up/Down, Unassigned/DHCP/Static, and depending on selection, you can set the interface IP, Gateway and DNS.

  • IP and Subnet mask are handled in the IP Address field (<IP Address>/<Subnet Mask>)
  • Gateway Address is handled through the Gateway Address field
  • DNS is handled through the DNS Addresses field
alt_text
alt_text
alt_text
alt_text

Bliss Ethernet Manager AIDL Interface:

The source package for BlissEthernet Manager contains the framework and system libs for the AIDL interface.

Gradle:

implementation fileTree(dir: 'system_libs/', include: ['*.jar'])

Java:

BlissEthernetManager blissEthernetManager = BlissEthernetManager.getInstance(<Context>); 
blissEthernetManager.*

AIDLs:

IBlissEthernet.aidl:

package org.blissos.ethernet;

import org.blissos.ethernet.IBlissEthernetServiceListener;

interface IBlissEthernet {
    String[] getAvailableInterfaces();
    boolean isAvailable(String iface);
    void setListener(in IBlissEthernetServiceListener listener);

    void setInterfaceUp(String iface);
    void setInterfaceDown(String iface);

    String getEthernetMacAddress(String ifname);
    int getIpAssignment(String iface);
    void setIpAssignment(String iface, int assignment);
    String getIpAddress(String iface);
    void setIpAddress(String iface, String ipAddress);
    String getGateway(String iface);
    void setGateway(String iface, String gateway);
    String[] getDnses(String iface);
    void setDnses(String iface, in String[] dnses);

}

IBlissEthernetServiceListener.aidl:

package org.blissos.ethernet;

oneway interface IBlissEthernetServiceListener {
    void onAvailabilityChanged(String iface, boolean isAvailable);

}
alt_text
alt_text
alt_text
alt_text

Bliss Ethernet Manager ADB Interface:

We also supply a simple interface using the service framework provided by Android that allows you to set IP, DNS, and Gateway.

ADB Interface:

adb shell service call blissethernet <code> <type parameter>

<code> is the method number in aidl

1: getAvaliableInterfaces

2: isAvaliable

3: Etc…

Examples:

  1. getAvaliableInterfaces: x86_64:/ # service call blissethernet 1 s16 eth0 Result: Parcel( 0x00000000: 00000000 00000002 00000004 00740065 '............e.t.' 0x00000010: 00300068 00000000 00000004 00740065 'h.0.........e.t.' 0x00000020: 00310068 00000000 'h.1..... ')

  2. isAvaliable: x86_64:/ # service call blissethernet 2 s16 eth0 Result: Parcel(00000000 00000001 '........')

  3. setIpAddress: x86_64:/ # service call blissethernet 10 s16 eth1 s16 10.1.1.112/24 Result: Parcel(00000000 '....')