package yu_rand

import (
	yu_const "gogs.qqck.cn/s/tools/const"
)

// Mac
//
//	@Description: 随机生成小写 mac (53:31:32:41:c3:dd)
func Mac() string {
	j_mac := make([]byte, 17)
	Rand.ReadEx(j_mac, yu_const.HexLowerBytes)
	j_mac[2], j_mac[5], j_mac[8], j_mac[11], j_mac[14] = ':', ':', ':', ':', ':'
	return string(j_mac)
}

// MAC
//
//	@Description: 随机生成大写 mac (BF:49:00:F6:DB:8E)
func MAC() string {
	j_mac := make([]byte, 17)
	Rand.ReadEx(j_mac, yu_const.HexUpperBytes)
	j_mac[2], j_mac[5], j_mac[8], j_mac[11], j_mac[14] = ':', ':', ':', ':', ':'
	return string(j_mac)
}

// AndroidId
//
//	@Description: 随机生成小写 AndroidId (20f6e8a69f30aebb)
func AndroidId() string {
	j_mac := make([]byte, 16)
	Rand.ReadEx(j_mac, yu_const.HexLowerBytes)
	return string(j_mac)
}

// AndroidID
//
//	@Description: 随机生成大写 AndroidId (5D2D187C36CD84E4)
func AndroidID() string {
	j_mac := make([]byte, 16)
	Rand.ReadEx(j_mac, yu_const.HexUpperBytes)
	return string(j_mac)
}

// AndroidId
//
//	@Description: 随机生成 Imei
func Imei() string {
	j_sum := 0 // the control j_sum of digits
	j_final := make([]byte, 15)
	for j_i := 0; j_i < 14; j_i++ { // generating all the base digits
		j_toAdd := Intn(10)
		j_final[j_i] = yu_const.HexLower[j_toAdd]
		if (j_i+1)%2 == 0 { // special proc for every 2nd one
			j_toAdd *= 2
			if j_toAdd >= 10 {
				j_toAdd = (j_toAdd % 10) + 1
			}
		}
		j_sum += j_toAdd // and even add them here!
	}
	j_final[14] = yu_const.HexLower[(j_sum*9)%10] // calculating the control digit
	return string(j_final)
}

const pass_ex = "`!@#$%^&()=+[{]}|;:',./?"

const pass_ex_len = int32(len(pass_ex))

// Pass
//
//	@Description: 根据规则生成指定长度的密码
//	 a|A=0-9        b|B=a-z        c|C=A-Z        d|D=a-Z
//	 e|E=0-9-a-z    f|F=0-9-A-Z    g|G=0-9-a-Z
//	 h|H=【`!@#$%^&()=+[{]}|;:',./?】
//	 i|I=【`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?】
//	 j|J=0-9-a-Z-【`!@#$%^&()=+[{]}|;:',./?】
//	 k|K=0-9-a-Z-【`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?】
//
//	 指令前面可带长度指令，长度指令应在 1-9 范围内，不带长度指令则默认为 1，如：
//	 [1]a 表示 1 个随机 a 指令；
//	 [3]a 表示 3 个随机 a 指令；
//	 [2-5]a 表示随机 2-5 个随机 a 指令
//
//	 "hh" 表示插入 hh 字符
//
//	 示例：aAbB[2]C[1-3]H 或 aAbB [2]C [1-3]H 可能会生成：
//	 16akYU@
//	 27fdAS@!
//	 63isSY%&~
//
//	 示例：a"nihao"AbB[2]C[1-3]H 或 "nihao"aAbB [2]C [1-3]H 可能会生成：
//	 1nihao6akYU@
//	 nihao27fdAS@!
//	 6nihao3isSY%&~
func Pass(rule string) string {
	j_buf := make([]byte, 0, len(rule)*9)
	j_len_min, j_len_max := int32(1), int32(1)
	j_lens, j_len_, j_lene, j_append := false, false, false, false
	for _, j_ascii := range rule {
		if j_ascii == '"' {
			j_append = !j_append
			continue
		}
		if j_append {
			j_buf = append(j_buf, byte(j_ascii))
			continue
		}
		switch j_ascii {
		case '[':
			j_lens = true
		case '1':
			// 默认就是 1
		case '2':
			if j_len_ {
				j_len_max = 2
			} else {
				j_len_min = 2
			}
		case '3':
			if j_len_ {
				j_len_max = 3
			} else {
				j_len_min = 3
			}
		case '4':
			if j_len_ {
				j_len_max = 4
			} else {
				j_len_min = 4
			}
		case '5':
			if j_len_ {
				j_len_max = 5
			} else {
				j_len_min = 5
			}
		case '6':
			if j_len_ {
				j_len_max = 6
			} else {
				j_len_min = 6
			}
		case '7':
			if j_len_ {
				j_len_max = 7
			} else {
				j_len_min = 7
			}
		case '8':
			if j_len_ {
				j_len_max = 8
			} else {
				j_len_min = 8
			}
		case '9':
			if j_len_ {
				j_len_max = 9
			} else {
				j_len_min = 9
			}
		case '-':
			j_len_ = true
		case ']':
			j_lene = true
		case 'a', 'A', 'b', 'B', 'c', 'C', 'd', 'D', 'e', 'E', 'f', 'F', 'g', 'G', 'h', 'H', 'i', 'I', 'j', 'J', 'k', 'K':
			j_len := 1
			if j_lens && j_lene {
				if j_len_ && j_len_min != j_len_max {
					if j_len_min < j_len_max {
						j_len = int(Int31MinMax(j_len_min, j_len_max))
					} else {
						j_len = int(Int31MinMax(j_len_max, j_len_min))
					}
				} else {
					j_len = int(j_len_min)
				}
			}
			j_len_min, j_len_max = 1, 1                  // 复位
			j_lens, j_len_, j_lene = false, false, false // 复位
			switch j_ascii {
			case 'a', 'A':
				for ; j_len > 0; j_len-- {
					j_buf = append(j_buf, byte(Int31n(10))+'0')
				}
			case 'b', 'B':
				for ; j_len > 0; j_len-- {
					j_buf = append(j_buf, byte(Int31n(26))+'a')
				}
			case 'c', 'C':
				for ; j_len > 0; j_len-- {
					j_buf = append(j_buf, byte(Int31n(26))+'A')
				}
			case 'd', 'D':
				for ; j_len > 0; j_len-- {
					if Int31n(2) == 0 {
						j_buf = append(j_buf, byte(Int31n(26))+'a')
					} else {
						j_buf = append(j_buf, byte(Int31n(26))+'A')
					}
				}
			case 'e', 'E':
				for ; j_len > 0; j_len-- {
					if Int31n(2) == 0 {
						j_buf = append(j_buf, byte(Int31n(10))+'0')
					} else {
						j_buf = append(j_buf, byte(Int31n(26))+'a')
					}
				}
			case 'f', 'F':
				for ; j_len > 0; j_len-- {
					if Int31n(2) == 0 {
						j_buf = append(j_buf, byte(Int31n(10))+'0')
					} else {
						j_buf = append(j_buf, byte(Int31n(26))+'A')
					}
				}
			case 'g', 'G':
				for ; j_len > 0; j_len-- {
					switch Int31n(3) {
					case 0:
						j_buf = append(j_buf, byte(Int31n(10))+'0')
					case 1:
						j_buf = append(j_buf, byte(Int31n(26))+'a')
					default:
						j_buf = append(j_buf, byte(Int31n(26))+'A')
					}
				}
			case 'h', 'H':
				for ; j_len > 0; j_len-- {
					j_buf = append(j_buf, pass_ex[Int31n(pass_ex_len)])
				}
			case 'i', 'I':
				for ; j_len > 0; j_len-- {
					j_buf = append(j_buf, str_other[Int31n(str_other_len)])
				}
			case 'j', 'J':
				for ; j_len > 0; j_len-- {
					switch Int31n(4) {
					case 0:
						j_buf = append(j_buf, byte(Int31n(10))+'0')
					case 1:
						j_buf = append(j_buf, byte(Int31n(26))+'a')
					case 2:
						j_buf = append(j_buf, byte(Int31n(26))+'A')
					default:
						j_buf = append(j_buf, pass_ex[Int31n(pass_ex_len)])
					}
				}
			case 'k', 'K':
				for ; j_len > 0; j_len-- {
					j_buf = append(j_buf, byte(Int31n(94))+33) // 33 - 126
				}
			}
		}
	}
	return string(j_buf)
}

// 摘自：https://github.com/KHwang9883/MobileModels/
var m_devices = [][]string{
	{"OnePlus", "AC2001"},  // Nord 印度版
	{"OnePlus", "AC2003"},  // Nord 欧洲版/国际版
	{"OnePlus", "BE2011"},  // Nord N100 北美版
	{"OnePlus", "BE2012"},  // Nord N100 T-Mobile 版
	{"OnePlus", "BE2013"},  // Nord N100 国际版
	{"OnePlus", "BE2015"},  // Nord N100 Metro 版
	{"OnePlus", "BE2025"},  // Nord N10 Metro 版
	{"OnePlus", "BE2026"},  // Nord N10 北美版
	{"OnePlus", "BE2028"},  // Nord N10 T-Mobile 版
	{"OnePlus", "BE2029"},  // Nord N10 欧洲版/国际版
	{"OnePlus", "CPH2381"}, // Nord CE 2 Lite 印度版
	{"OnePlus", "CPH2389"}, // Nord N300
	{"OnePlus", "CPH2399"}, // Nord 2T 国际版
	{"OnePlus", "CPH2401"}, // Nord 2T 印度版
	{"OnePlus", "CPH2409"}, // Nord CE 2 Lite 欧洲版/国际版
	{"OnePlus", "CPH2411"}, // 10R Endurance 印度版
	{"OnePlus", "CPH2413"}, // 10T 印度版
	{"OnePlus", "CPH2415"}, // 10T 欧洲版/国际版
	{"OnePlus", "CPH2417"}, // 10T 北美版
	{"OnePlus", "CPH2419"}, // 10T T-Mobile 版
	{"OnePlus", "CPH2423"}, // 10R 印度版
	{"OnePlus", "CPH2447"}, // 11 印度版
	{"OnePlus", "CPH2449"}, // 11 欧洲版/国际版
	{"OnePlus", "CPH2451"}, // 11 北美版
	{"OnePlus", "CPH2465"}, // Nord CE 3 Lite 国际版
	{"OnePlus", "CPH2467"}, // Nord CE 3 Lite 印度版
	{"OnePlus", "CPH2469"}, // Nord 20 SE
	{"OnePlus", "CPH2487"}, // 11R 印度版
	{"OnePlus", "CPH2491"}, // Nord 3 印度版
	{"OnePlus", "CPH2493"}, // Nord 3 欧洲版
	{"OnePlus", "CPH2513"}, // Nord N30 北美版
	{"OnePlus", "CPH2515"}, // Nord N30 T-Mobile 版
	{"OnePlus", "CPH2569"}, // Nord CE 3 印度版
	{"OnePlus", "CPH2573"}, // 12 印度版
	{"OnePlus", "CPH2581"}, // 12 欧洲版/国际版
	{"OnePlus", "CPH2583"}, // 12 北美版
	{"OnePlus", "CPH2585"}, // 12R 印度版
	{"OnePlus", "CPH2605"}, // Nord N30 SE 欧洲版
	{"OnePlus", "CPH2609"}, // 12R 欧洲版/国际版
	{"OnePlus", "CPH2611"}, // 12R 北美版
	{"OnePlus", "DE2117"},  // Nord N200 北美版
	{"OnePlus", "DE2118"},  // Nord N200 T-Mobile 版
	{"OnePlus", "DN2101"},  // Nord 2 印度版
	{"OnePlus", "DN2103"},  // Nord 2 欧洲版
	{"OnePlus", "EB2101"},  // Nord CE 印度版
	{"OnePlus", "EB2103"},  // Nord CE 欧洲版/国际版
	{"OnePlus", "GM1900"},  // 7 全网通版
	{"OnePlus", "GM1901"},  // 7 印度版
	{"OnePlus", "GM1903"},  // 7 欧洲版
	{"OnePlus", "GM1905"},  // 7 北美版/国际版
	{"OnePlus", "GM1910"},  // 7 Pro 全网通版
	{"OnePlus", "GM1911"},  // 7 Pro 印度版
	{"OnePlus", "GM1913"},  // 7 Pro 欧洲版
	{"OnePlus", "GM1915"},  // 7 Pro 北美版/国际版
	{"OnePlus", "GM1917"},  // 7 Pro T-Mobile 版
	{"OnePlus", "GM1920"},  // 7 Pro 5G 欧洲版
	{"OnePlus", "GM1925"},  // 7 Pro 5G Sprint 版
	{"OnePlus", "GN2200"},  // Nord N20
	{"OnePlus", "CPH2459"}, // Nord N20
	{"OnePlus", "HD1900"},  // 7T 全网通版
	{"OnePlus", "HD1901"},  // 7T 印度版
	{"OnePlus", "HD1903"},  // 7T 欧洲版
	{"OnePlus", "HD1905"},  // 7T 北美版/国际版
	{"OnePlus", "HD1907"},  // 7T T-Mobile 版
	{"OnePlus", "HD1910"},  // 7T Pro 全网通版
	{"OnePlus", "HD1911"},  // 7T Pro 印度版
	{"OnePlus", "HD1913"},  // 7T Pro 欧洲版/国际版
	{"OnePlus", "HD1925"},  // 7T Pro 5G T-Mobile 版 / OnePlus Concept One
	{"OnePlus", "IN2010"},  // 8 全网通版
	{"OnePlus", "IN2011"},  // 8 印度版
	{"OnePlus", "IN2013"},  // 8 欧洲版
	{"OnePlus", "IN2015"},  // 8 北美版/国际版
	{"OnePlus", "IN2017"},  // 8 T-Mobile 版
	{"OnePlus", "IN2019"},  // 8 Visible 版/Verizon 版
	{"OnePlus", "IN2020"},  // 8 Pro 全网通版
	{"OnePlus", "IN2021"},  // 8 Pro 印度版
	{"OnePlus", "IN2023"},  // 8 Pro 欧洲版
	{"OnePlus", "IN2025"},  // 8 Pro 北美版/国际版
	{"OnePlus", "IV2201"},  // Nord CE 2 印度版
	{"OnePlus", "KB2000"},  // 8T 全网通版
	{"OnePlus", "KB2001"},  // 8T 印度版
	{"OnePlus", "KB2003"},  // 8T 欧洲版
	{"OnePlus", "KB2005"},  // 8T 北美版/国际版
	{"OnePlus", "KB2007"},  // 8T+ T-Mobile 版
	{"OnePlus", "LE2100"},  // 9R 全网通版
	{"OnePlus", "LE2101"},  // 9R 印度版
	{"OnePlus", "LE2110"},  // 9 全网通版
	{"OnePlus", "LE2111"},  // 9 印度版
	{"OnePlus", "LE2113"},  // 9 欧洲版
	{"OnePlus", "LE2115"},  // 9 北美版/国际版
	{"OnePlus", "LE2117"},  // 9 T-Mobile 版
	{"OnePlus", "LE2119"},  // 9 Verzion 版
	{"OnePlus", "LE2120"},  // 9 Pro 全网通版
	{"OnePlus", "LE2121"},  // 9 Pro 印度版
	{"OnePlus", "LE2123"},  // 9 Pro 欧洲版
	{"OnePlus", "LE2125"},  // 9 Pro 北美版/国际版
	{"OnePlus", "LE2127"},  // 9 Pro T-Mobile 版
	{"OnePlus", "MT2110"},  // 9RT 全网通版
	{"OnePlus", "MT2111"},  // 9RT 印度版
	{"OnePlus", "NE2210"},  // 10 Pro 全网通版
	{"OnePlus", "NE2211"},  // 10 Pro 印度版
	{"OnePlus", "NE2213"},  // 10 Pro 欧洲版/国际版
	{"OnePlus", "NE2215"},  // 10 Pro 北美版
	{"OnePlus", "NE2217"},  // 10 Pro T-Mobile 版
	{"OnePlus", "PGKM10"},  // Ace 全网通版
	{"OnePlus", "PGP110"},  // Ace Pro 全网通版
	{"OnePlus", "PGZ110"},  // Ace 竞速版 全网通版
	{"OnePlus", "PHB110"},  // 11 全网通版
	{"OnePlus", "PHK110"},  // Ace 2 全网通版
	{"OnePlus", "PHP110"},  // Ace 2V 全网通版
	{"OnePlus", "PJA110"},  // Ace 2 Pro 全网通版
	{"OnePlus", "PJD110"},  // 12 全网通版
	{"OnePlus", "PJE110"},  // Ace 3 全网通版
	{"OnePlus", "PJF110"},  // Ace 3V 全网通版
	{"Samsung", "PJF110"},  // Ace 3V 全网通版

	{"Samsung", "SM-G7810"}, // Galaxy S20 FE 5G
	{"Samsung", "SM-G9730"}, // Galaxy S10 全网通版
	{"Samsung", "SM-G9738"}, // Galaxy S10 4G+
	{"Samsung", "SM-G9750"}, // Galaxy S10+ 全网通版
	{"Samsung", "SM-G9758"}, // Galaxy S10+ 4G+
	{"Samsung", "SM-G9810"}, // Galaxy S20 5G
	{"Samsung", "SM-G9860"}, // Galaxy S20+ 5G
	{"Samsung", "SM-G9880"}, // Galaxy S20 Ultra 5G
	{"Samsung", "SM-G9900"}, // Galaxy S21 FE 5G
	{"Samsung", "SM-G9910"}, // Galaxy S21 5G
	{"Samsung", "SM-G9960"}, // Galaxy S21+ 5G
	{"Samsung", "SM-G9980"}, // Galaxy S21 Ultra 5G
	{"Samsung", "SM-S7110"}, // Galaxy S23 FE
	{"Samsung", "SM-S9010"}, // Galaxy S22
	{"Samsung", "SM-S9060"}, // Galaxy S22+
	{"Samsung", "SM-S9080"}, // Galaxy S22 Ultra
	{"Samsung", "SM-S9110"}, // Galaxy S23
	{"Samsung", "SM-S9160"}, // Galaxy S23+
	{"Samsung", "SM-S9180"}, // Galaxy S23 Ultra
	{"Samsung", "SM-S9210"}, // Galaxy S24
	{"Samsung", "SM-S9260"}, // Galaxy S24+
	{"Samsung", "SM-S9280"}, // Galaxy S24 Ultra
	{"Samsung", "SM-N9700"}, // Galaxy Note10
	{"Samsung", "SM-N9760"}, // Galaxy Note10+ 5G
	{"Samsung", "SM-N9810"}, // Galaxy Note20 5G
	{"Samsung", "SM-N9860"}, // Galaxy Note20 Ultra 5G

	{"Xiaomi", "2107113SG"},  // Xiaomi 11T Pro 国际版
	{"Xiaomi", "2107113SI"},  // Xiaomi 11T Pro 印度版
	{"Xiaomi", "2107113SR"},  // Xiaomi 11T Pro 日本版
	{"Xiaomi", "2107119DC"},  // Xiaomi 11 青春活力版 国行版
	{"Xiaomi", "21081111RG"}, // Xiaomi 11T 国际版
	{"Xiaomi", "21091116I"},  // Xiaomi 11i 印度版
	{"Xiaomi", "21091116UI"}, // Xiaomi 11i HyperCharge 印度版
	{"Xiaomi", "2109119DG"},  // Xiaomi 11 Lite 5G NE 国际版
	{"Xiaomi", "2109119DI"},  // Xiaomi 11 Lite NE 5G 印度版
	{"Xiaomi", "2112123AC"},  // Xiaomi 12X 国行版
	{"Xiaomi", "2112123AG"},  // Xiaomi 12X 国际版
	{"Xiaomi", "2201122C"},   // Xiaomi 12 Pro 国行版
	{"Xiaomi", "2201122G"},   // Xiaomi 12 Pro 国际版
	{"Xiaomi", "2201123C"},   // Xiaomi 12 国行版
	{"Xiaomi", "2201123G"},   // Xiaomi 12 国际版
	{"Xiaomi", "2203121C"},   // Xiaomi 12S Ultra
	{"Xiaomi", "2203129G"},   // Xiaomi 12 Lite 国际版
	{"Xiaomi", "2203129I"},   // Xiaomi 12 Lite 印度版
	{"Xiaomi", "2206122SC"},  // Xiaomi 12S Pro
	{"Xiaomi", "2206123SC"},  // Xiaomi 12S
	{"Xiaomi", "22071212AG"}, // Xiaomi 12T 国际版
	{"Xiaomi", "2207122MC"},  // Xiaomi 12 Pro 天玑版
	{"Xiaomi", "22081212R"},  // Xiaomi 12T Pro 日本版 (SIM Free)
	{"Xiaomi", "22200414R"},  // Xiaomi 12T Pro 日本版 (SIM Free)
	{"Xiaomi", "22081212UG"}, // Xiaomi 12T Pro 国际版
	{"Xiaomi", "2210129SG"},  // Xiaomi 13 Lite 国际版
	{"Xiaomi", "2210132C"},   // Xiaomi 13 Pro 国行版
	{"Xiaomi", "2210132G"},   // Xiaomi 13 Pro 国际版
	{"Xiaomi", "2211133C"},   // Xiaomi 13 国行版
	{"Xiaomi", "2211133G"},   // Xiaomi 13 国际版
	{"Xiaomi", "2304FPN6DC"}, // Xiaomi 13 Ultra 国行版
	{"Xiaomi", "2304FPN6DG"}, // Xiaomi 13 Ultra 国际版
	{"Xiaomi", "2306EPN60G"}, // Xiaomi 13T 国际版
	{"Xiaomi", "2306EPN60R"}, // Xiaomi 13T 日本版 (SIM Free)
	{"Xiaomi", "23078PND5G"}, // Xiaomi 13T Pro 国际版
	{"Xiaomi", "23088PND5R"}, // Xiaomi 13T Pro 日本版 (SIM Free)
	{"Xiaomi", "23116PN5BC"}, // Xiaomi 14 Pro / Xiaomi 14 Pro 钛金属版
	{"Xiaomi", "2311BPN23C"}, // Xiaomi 14 Pro 钛金属版 (卫星通讯)
	{"Xiaomi", "23127PN0CC"}, // Xiaomi 14 国行版
	{"Xiaomi", "23127PN0CG"}, // Xiaomi 14 国际版
	{"Xiaomi", "24030PN60G"}, // Xiaomi 14 Ultra 国际版
	{"Xiaomi", "24031PN0DC"}, // Xiaomi 14 Ultra 国行版
	{"Xiaomi", "A201XM"},     // Xiaomi 12T Pro 日本版 (SoftBank)
	{"Xiaomi", "A301XM"},     // Xiaomi 13T Pro 日本版 (SoftBank)
	{"Xiaomi", "M2001J1E"},   // 小米 10 Pro 国行版
	{"Xiaomi", "M2001J1C"},   // 小米 10 Pro 国行版
	{"Xiaomi", "M2001J1G"},   // 小米 10 Pro 国际版
	{"Xiaomi", "M2001J2E"},   // 小米 10 国行版
	{"Xiaomi", "M2001J2C"},   // 小米 10 国行版
	{"Xiaomi", "M2001J2G"},   // 小米 10 国际版
	{"Xiaomi", "M2001J2I"},   // 小米 10 印度版
	{"Xiaomi", "M2002J9E"},   // 小米 10 青春版 国行版
	{"Xiaomi", "M2002J9G"},   // 小米 10 Lite 国际版
	{"Xiaomi", "M2002J9R"},   // 小米 10 Lite 日本版 (KDDI)
	{"Xiaomi", "XIG01"},      // 小米 10 Lite 日本版 (KDDI)
	{"Xiaomi", "M2002J9S"},   // 小米 10 Lite 韩国版
	{"Xiaomi", "M2007J17G"},  // 小米 10T Lite 国际版
	{"Xiaomi", "M2007J17I"},  // 小米 10i 印度版
	{"Xiaomi", "M2007J1SC"},  // 小米 10 至尊纪念版
	{"Xiaomi", "M2007J3SG"},  // 小米 10T Pro 国际版
	{"Xiaomi", "M2007J3SI"},  // 小米 10T Pro 印度版
	{"Xiaomi", "M2007J3SP"},  // 小米 10T 印度版
	{"Xiaomi", "M2007J3SY"},  // 小米 10T 国际版
	{"Xiaomi", "M2011K2C"},   // 小米 11 国行版
	{"Xiaomi", "M2011K2G"},   // 小米 11 国际版
	{"Xiaomi", "M2012K11AI"}, // 小米 11X 印度版
	{"Xiaomi", "M2012K11G"},  // 小米 11i 国际版
	{"Xiaomi", "M2012K11I"},  // 小米 11X Pro 印度版
	{"Xiaomi", "M2101K9AG"},  // 小米 11 Lite 4G 国际版
	{"Xiaomi", "M2101K9AI"},  // 小米 11 Lite 4G 印度版
	{"Xiaomi", "M2101K9C"},   // 小米 11 青春版 国行版
	{"Xiaomi", "M2101K9G"},   // 小米 11 Lite 5G 国际版
	{"Xiaomi", "M2101K9R"},   // 小米 11 Lite 5G 日本版
	{"Xiaomi", "M2102J2SC"},  // 小米 10S
	{"Xiaomi", "M2102K1AC"},  // 小米 11 Pro
	{"Xiaomi", "M2102K1C"},   // 小米 11 Ultra 国行版
	{"Xiaomi", "M2102K1G"},   // 小米 11 Ultra 国际版
	{"Xiaomi", "XIG04"},      // Xiaomi 13T 日本版 (KDDI)
}

type Device struct {
	Brand string
	Model string
}

func AndroidDevice() Device {
	j_item := m_devices[Intn(len(m_devices))]
	return Device{
		j_item[0],
		j_item[1],
	}
}
