三、修改安卓aosp代码更改硬件参数

系列文章目录

第一章 安卓aosp源码编译环境搭建
第二章 手机硬件参数介绍和校验算法
第三章 修改安卓aosp代码更改硬件参数
第四章 编译定制rom并刷机实现硬改(一)
第五章 编译定制rom并刷机实现硬改(二)
第六章 不root不magisk不xposed lsposed frida原生修改定位
第七章 安卓手机环境检测软件分享
第八章 硬改之设备画像
第九章 修改Art虚拟机对指定app的指定函数进行拦截(一)
第十章 修改Art虚拟机对指定app的指定函数进行拦截(二)


文章目录

  • 系列文章目录
  • 前言
  • 需要修改的文件
    • Build.java
    • TelephonyManager.java
    • Settings.java
    • WifiInfo.java
    • InterfaceConfiguration.java
    • BluetoothAdapter.java
    • BluetoothAdapter.java
  • 补充
  • 视频教程


前言

傻瓜式操作, 人人都能编译操作系统, 每个感兴趣的人都可以基于谷歌安卓aosp源码定制自己的系统


需要修改的文件

aosp代码版本:android-8.1.0_r1 OPM1.171019.011

1: frameworks/base/core/java/android/os/Build.java
2: frameworks/base/telephony/java/android/telephony/TelephonyManager.java
3: frameworks/base/core/java/android/provider/Settings.java
4: frameworks/base/wifi/java/android/net/wifi/WifiInfo.java
5: frameworks/base/core/java/android/net/InterfaceConfiguration.java
6: libcore/ojluni/src/main/java/java/net/NetworkInterface.java
7: frameworks/base/core/java/android/bluetooth/BluetoothAdapter.iava
8: build/core/Makefile
9: build/make/tools/buildinfo.sh
//分别修改其中的函数。

Build.java

先看第一个文件,主要是手机品牌型号等。

//gedit frameworks/base/core/java/android/os/Build.java
public static String getSerial() {
       return new String("填你的值");
}


// android.os.Build 所涉及的全部值
private static String getString(String property) {
    String result = SystemProperties.getlproperty, UNKNOWN);
    if (property.equals("ro.product.brand") || property.equals("ro.product.manufacturer")) {
    result = new Strina("填你的值");
    } else if (property.equals("ro.product.model")) {
    result = new String("填你的值");
    } else if (poroperty.equalsl("ro.product name") || property.equals( "ro.product.board") || property.equals("ro,product device")||property.equals( "ro.build.product")){
    result = new String("填你的值");
    } else if (property.equals("ro.build.id")) {
    result = new String("填你的值");
    } else if (property.equals("ro.build.version.incremental")) {
    result = new String("填你的值");
    } else if (propertyequals("ro.serialno")) (
    result = new String("填你的值");
。。。。。
    }
    return result;
 }

TelephonyManager.java

这个类提供了一系列获取手机与通讯相关的状态和信息的方法,包括手机的信息、手机卡的状态、电信网络的状态等。

//gedit frameworks/base/telephony/java/android/telephony/TelephonyManager.java
 public String getDeviceld() {
    return new String("填你的值");
 }
 public String getDeviceld(int slotlndex) {
    if (slotlndex == 0) {
        return new String("填你的值");
    } else{ 
        return new String("填你的值");
    }
}

public String getlmei(int slotlndex) {
     if (slotlndex == 0) {
         return new String("填你的值"); 
     } else {
         return new String("填你的值");
     }
}

public String getMeid(int slotlndex) {
     if (slotlndex == 0) {
          return new String("填你的值");
     } else {
          return new String("填你的值");
     }
}

public String getSubscriberld(int subld) {
     if (subld == 0) {
          return new String("填你的值");
     } else {
          return new String("填你的值");
     }
}

Settings.java

android id

//gedit frameworks/base/core/java/android/provider/Settings.java
public static String getString(ContentResolver resolver, String name) {
   String result = getStringForUser(resolver, name, UserHandle.myUserld());
   if (name.equals("android id")) {
       result = new String("填你的值");
   }
   return result;
}

WifiInfo.java

wifi地址和蓝牙地址

//gedit frameworks/base/wifi/java/android/net/wifi/WifiInfo.java
public String getMacAddress() {
   this.mMacAddress ="填你的值";
   return this.mMacAddress;
}

InterfaceConfiguration.java

wifi地址和蓝牙地址

//gedit frameworks/base/core/java/android/net/InterfaceConfiguration.java 
public String getHardwareAddress() {
  return new String("填你的值");
}
public void setHardwareAddress(String hwAddr) {
  mHwAddr = new String("填你的值");
}

BluetoothAdapter.java

wifi地址和蓝牙地址

//gedit frameworks/base/core/java/android/bluetooth/BluetoothAdapter.java 
public String getAddress() {
   return new String("填你的值");
}

BluetoothAdapter.java

网络接口,字节数组方式返回地址

//gedit libcore/ojluni/src/main/java/java/net/NetworkInterface.java
public byte[] getHardwareAddress() throws SocketException
      NetworkInterface ni = getByName(name);
      if (name.equalslgnoreCase("wlan0"))
      {
            bytell mymac = new byte[6];
            mymac[0] = 72;
            mymac[1] = 44;
            mymac[2] = -96;
            mymac[3] = 97;
            mymac[4] = 121;
            mymac[5] = 35;
            return mymac;
}
      if (ni == null) {
           throw new SocketException("Networklnterface doesn't exist anymore");
      }
      return ni.hardwareAddr;

补充

另外,品牌型号除了在Build.java修改外,还需要在下面两个文件中修改。

       //gedit build/core/Makefile
       //gedit build/make/tools/buildinfo.sh
TARGET_BUILD_FLAVOR  
TARGET_DEVICE
PRODUCT_NAME
PRODUCT_BRAND
PRODUCT_DEFAULT_LOCALE
PRODUCT_DEFAULT_WIFI_CHANNELS
PRODUCT_MODEL
PRODUCT_MANUFACTURER

当完成以上修改后,再次恭喜你,需要修改的地方已经全部修改好了,下面我们就开始编译生成ROM镜像刷机。

视频教程

你可能感兴趣的:(rom,android,开发语言)