Je pense que ça va marcher :
En /init.rc
ajouter
service ethernet /eth0.sh
et créer /eth0.sh
#!/system/bin/sh
netcfg eth0 up 192.168.0.2
J'ai toujours des problèmes pour attacher le disque RAM mais ça devrait marcher.
Voir http://elinux.org/Android_Networking
Je n'ai pas été en mesure de modifier le disque RAM, j'ai donc créé une application simple qui exécute la commande netcfg après le démarrage et après la connexion du périphérique USB.
Voici les points essentiels à cet égard :
<manifest ...
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-feature android:name="android.hardware.usb.host" />
<uses-permission android:name="android.permission.USB_PERMISSION" />
<application ... >
<receiver
android:name=".MyBroadcastReceiver"
android:enabled="true"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
</intent-filter>
</receiver>
...
et la fonction sudo dans le récepteur :
public static void sudo(String...strings) {
try{
Process su = Runtime.getRuntime().exec("su");
DataOutputStream outputStream = new DataOutputStream(su.getOutputStream());
for (String s : strings) {
outputStream.writeBytes(s+"\n");
outputStream.flush();
}
outputStream.writeBytes("exit\n");
outputStream.flush();
try {
su.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}
outputStream.close();
}catch(IOException e){
e.printStackTrace();
}
}