Android CPU序列號(CPU id)


https://blog.csdn.net/awenshim/article/details/104847251 

一.使用

1.1.root 權限

1.2.cat proc/cpuinfo | grep Seria

	public String getCPUinfo() {
		String cpuAddress = "0000000000000000";
		String cmd = "cat /proc/cpuinfo";
		try {
			Process p = Runtime.getRuntime().exec(cmd);

			String data = null;
			BufferedReader ie = new BufferedReader(new InputStreamReader(p.getErrorStream()));
			BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
			String error = null;

			while ((error = ie.readLine()) != null && !error.equals("null")) {
				data += error + "\n";
			}

			String line = null;

			while ((line = in.readLine()) != null && !line.equals("null")) {
				data += line + "\n";
				// Log.d("gatsby", "CPUinfo line->" + line);
				if (line.contains("Serial\t\t:")) {
					String[] SerialStr = line.split(":");
					if (SerialStr.length == 2) {
						String mSerial = SerialStr[1];
						// Cpu 序列號
						// Log.d("gatsby", "CPUinfo mSerial ->" + mSerial.trim());
						cpuAddress = mSerial.trim();
						return cpuAddress;
					}
				}
			}
		} catch (IOException ioe) {
			ioe.printStackTrace();
		}
		return cpuAddress;
	}

1.3.Android 標准api

Build.SERIAL

 從build.prop 獲取系統屬性

private static final String TAG = "Build";
/**當構建屬性未知時使用的值。*/
public static final String UNKNOWN = "未知";
/**一個變更列表號,或者一個像“M4-rc20”這樣的標簽。*/
public static final String ID = getString("ro.build.id");
/**一個用於顯示給用戶的構建ID字符串*/
public static final String DISPLAY = getString("ro.build.display.id");
/**整體產品的名稱。*/
public static final String PRODUCT = getString("ro.product.name");
/**工業設計名稱。*/
public static final String DEVICE = getString("ro.product.device");
/**底層板的名稱,如“金魚”。*/
public static final String BOARD = getString("ro.product.board");
/**
*本機代碼的指令集名稱(CPU類型+ ABI約定)。
*
使用{@link #SUPPORTED_ABIS}代替。
*/
@Deprecated
public static final String CPU_ABI;
/**
*本機代碼的第二個指令集(CPU類型+ ABI約定)的名稱。
*
使用{@link #SUPPORTED_ABIS}代替。
*/
@Deprecated
public static final String CPU_ABI2;
/**產品/五金的制造商。*/
public static final String MANUFACTURER = getString("ro.product.manufacturer");
/**與產品或硬件相關的消費者可見品牌。*/
public static final String BRAND = getString("ro.product.brand");
/**最終用戶可見的最終產品名稱。*/
public static final String MODEL = getString("ro.product.model");
/**系統引導程序版本號。*/
public static final String BOOTLOADER = getString("ro.bootloader");
/**
*無線電固件版本號。
*
* @deprecated無線電固件版本通常不
*當該類初始化時可用,導致一個空白或
這個字符串的未知值。使用
* {@link #getRadioVersion}代替。
*/
@Deprecated
public static final String RADIO = getString(TelephonyProperties.PROPERTY_BASEBAND_VERSION);
/**硬件的名稱(從內核命令行或/proc)。*/
public static final String HARDWARE = getString("ro.hardware");
/**
*此構建是否為模擬器設備。
* @hide
*/
@TestApi
public static final boolean IS_EMULATOR = getString("ro.kernel.qemu").equals("1");
/**
*硬件序列號(如果可用)。字母,不區分大小寫的。
*此字段總是設置為{@link Build#UNKNOWN}。
*
使用{@link #getSerial()}代替。
* * /
@Deprecated
// IMPORTANT:這個字段應該通過函數調用來初始化
//在編譯過程中防止它的值被內聯到應用程序中
//稍后我們將根據應用程序的目標SDK設置它的值。
public static final String SERIAL = getString("no.such.thing");

  

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM