瑞芯微Rockchip开发者社区
直播中

一曲作罢

9年用户 847经验值
擅长:可编程逻辑 电源/新能源 MEMS/传感技术
私信 关注
[问答]

怎样去设置RK3399 Android7.1.1系统的静态ip地址呢

怎样去设置RK3399 Android7.1.1系统的静态ip地址呢?

回帖(1)

张颖

2022-3-9 16:28:42
  测试平台
  Platform: RK3399/RK3328
  OS: Android7.1.1/9.0/10.0
  现象
  在设置-以太网中设置ip地址(如dhcp-》static或static ip修改),生效后,立刻断电,重新上电开机后发现ip状态恢复到设置前。
  分析
  查看了一下以太网的ip设置是以文件方式保存的,怀疑是因为文件存在缓存中没有真正保存导致的。
  保存地址:/data/misc/ethernet/ipconfig.txt
  再次测试,在设置后运行命令adb shell sync :/data/misc/ethernet/ipconfig.txt 之后再断电,重新上电开机后发现ip状态正确。所以写入文件后sync是可以解决问题的。
  解决方案
  diff --git a/frameworks/base/services/core/java/com/android/server/net/IpConfigStore.java b/frameworks/base/services/core/java/com/android/server/net/IpConfigStore.java
  index d8718a2..3c1750a 100644
  --- a/frameworks/base/services/core/java/com/android/server/net/IpConfigStore.java
  +++ b/frameworks/base/services/core/java/com/android/server/net/IpConfigStore.java
  @@ -38,6 +38,13 @@ import java.io.IOException;
  import java.net.InetAddress;
  import java.net.Inet4Address;
  +import java.io.File;
  +import java.io.FileDescriptor;
  +import java.io.FileInputStream;
  +import java.io.FileOutputStream;
  +import java.io.IOException;
  +import java.io.RandomAccessFile;
  +
  public class IpConfigStore {
  private static final String TAG = “IpConfigStore”;
  private static final boolean DBG = false;
  @@ -167,6 +174,7 @@ public class IpConfigStore {
  }
  out.writeUTF(EOS);
  + out.flush();
  return written;
  }
  @@ -178,10 +186,33 @@ public class IpConfigStore {
  for(int i = 0; i 《 networks.size(); i++) {
  writeConfig(out, networks.keyAt(i), networks.valueAt(i));
  }
  + Log.v(“sjfe”,“2 writeIpAndProxyConfigurations”);
  + try{
  + sync(filePath);
  + }catch (IOException e){
  + Log.v(“sjfe”,“2 sync error:”+e.toString());
  + }
  +
  }
  });
  }
  + public void sync(String filepath) throws IOException {
  + File f = new File(filepath);
  + RandomAccessFile raf = null;
  +
  + try {
  + raf = new RandomAccessFile(f, “r”);
  + FileDescriptor fd = raf.getFD();
  + fd.sync();
  +
  + } finally {
  + if (raf != null) {
  + raf.close();
  + }
  + }
  + }
  +
  public SparseArray《IpConfiguration》 readIpAndProxyConfigurations(String filePath) {
  SparseArray《IpConfiguration》 networks = new SparseArray《IpConfiguration》();
举报

更多回帖

发帖
×
20
完善资料,
赚取积分