bugfix
This commit is contained in:
@@ -129,6 +129,7 @@
|
|||||||
"2311BPN23C" "Xiaomi 14 Pro 鈦金屬版 (衛星通訊)"
|
"2311BPN23C" "Xiaomi 14 Pro 鈦金屬版 (衛星通訊)"
|
||||||
"24031PN0DC" "Xiaomi 14 Ultra 國行版"
|
"24031PN0DC" "Xiaomi 14 Ultra 國行版"
|
||||||
"24030PN60G" "Xiaomi 14 Ultra 國際版"
|
"24030PN60G" "Xiaomi 14 Ultra 國際版"
|
||||||
|
"24053PY09I" "Xiaomi 14 Civi 印度版"
|
||||||
"2406APNFAG" "Xiaomi 14T 國際版"
|
"2406APNFAG" "Xiaomi 14T 國際版"
|
||||||
"XIG06" "Xiaomi 14T 日本版 (KDDI)"
|
"XIG06" "Xiaomi 14T 日本版 (KDDI)"
|
||||||
"2407FPN8EG" "Xiaomi 14T Pro 國際版"
|
"2407FPN8EG" "Xiaomi 14T Pro 國際版"
|
||||||
@@ -358,8 +359,8 @@
|
|||||||
"23100RN82L" "Redmi 13C 拉美版"
|
"23100RN82L" "Redmi 13C 拉美版"
|
||||||
"23108RN04Y" "Redmi 13C 國際版 (NFC)"
|
"23108RN04Y" "Redmi 13C 國際版 (NFC)"
|
||||||
"23124RN87C" "Redmi 13C 5G 國行版 / Redmi 13R 5G"
|
"23124RN87C" "Redmi 13C 5G 國行版 / Redmi 13R 5G"
|
||||||
"23124RN87G" "Redmi 13C 5G 國際版"
|
|
||||||
"23124RN87I" "Redmi 13C 5G 印度版"
|
"23124RN87I" "Redmi 13C 5G 印度版"
|
||||||
|
"23124RN87G" "Redmi 13C 5G 國際版"
|
||||||
"2014018" "紅米 Note 聯通 3G 標準版"
|
"2014018" "紅米 Note 聯通 3G 標準版"
|
||||||
"2013121" "紅米 Note 聯通 3G 增強版"
|
"2013121" "紅米 Note 聯通 3G 增強版"
|
||||||
"2014017" "紅米 Note 移動 3G 標準版"
|
"2014017" "紅米 Note 移動 3G 標準版"
|
||||||
@@ -518,6 +519,7 @@
|
|||||||
"23090RA98G" "Redmi Note 13 Pro+ 5G 國際版"
|
"23090RA98G" "Redmi Note 13 Pro+ 5G 國際版"
|
||||||
"23090RA98I" "Redmi Note 13 Pro+ 5G 印度版"
|
"23090RA98I" "Redmi Note 13 Pro+ 5G 印度版"
|
||||||
"24040RA98R" "Redmi Note 13 Pro+ 5G 日本版"
|
"24040RA98R" "Redmi Note 13 Pro+ 5G 日本版"
|
||||||
|
"2406ERN9CC" "Redmi Note 13R"
|
||||||
"2311FRAFDC" "Redmi Note 13R Pro"
|
"2311FRAFDC" "Redmi Note 13R Pro"
|
||||||
"M2004J7AC" "Redmi 10X 5G"
|
"M2004J7AC" "Redmi 10X 5G"
|
||||||
"M2004J7BC" "Redmi 10X Pro 5G"
|
"M2004J7BC" "Redmi 10X Pro 5G"
|
||||||
@@ -580,6 +582,9 @@
|
|||||||
"23129RN51X" "Redmi A3 國際版"
|
"23129RN51X" "Redmi A3 國際版"
|
||||||
"23129RN51H" "Redmi A3 印度版"
|
"23129RN51H" "Redmi A3 印度版"
|
||||||
"2312CRNCCL" "Redmi A3 拉美版"
|
"2312CRNCCL" "Redmi A3 拉美版"
|
||||||
|
"24048RN6CG" "Redmi A3x 國際版"
|
||||||
|
"24048RN6CI" "Redmi A3x 印度版"
|
||||||
|
"24044RN32L" "Redmi A3x 拉美版"
|
||||||
"22081283C" "Redmi Pad 國行版"
|
"22081283C" "Redmi Pad 國行版"
|
||||||
"22081283G" "Redmi Pad 國際版"
|
"22081283G" "Redmi Pad 國際版"
|
||||||
"23073RPBFC" "Redmi Pad SE 國行版"
|
"23073RPBFC" "Redmi Pad SE 國行版"
|
||||||
@@ -587,6 +592,7 @@
|
|||||||
"23073RPBFL" "Redmi Pad SE 拉美版"
|
"23073RPBFL" "Redmi Pad SE 拉美版"
|
||||||
"2405CRPFDC" "Redmi Pad Pro 國行版"
|
"2405CRPFDC" "Redmi Pad Pro 國行版"
|
||||||
"2405CRPFDG" "Redmi Pad Pro 國際版"
|
"2405CRPFDG" "Redmi Pad Pro 國際版"
|
||||||
|
"2405CRPFDL" "Redmi Pad Pro 拉美版"
|
||||||
"24074RPD2C" "Redmi Pad Pro 5G 國行版"
|
"24074RPD2C" "Redmi Pad Pro 5G 國行版"
|
||||||
"24074RPD2G" "Redmi Pad Pro 5G 國際版"
|
"24074RPD2G" "Redmi Pad Pro 5G 國際版"
|
||||||
"M1805E10A" "POCO F1"
|
"M1805E10A" "POCO F1"
|
||||||
@@ -596,14 +602,12 @@
|
|||||||
"22021211RG" "POCO F4 國際版"
|
"22021211RG" "POCO F4 國際版"
|
||||||
"22021211RI" "POCO F4 印度版"
|
"22021211RI" "POCO F4 印度版"
|
||||||
"21121210G" "POCO F4 GT 國際版"
|
"21121210G" "POCO F4 GT 國際版"
|
||||||
"21121210I" "POCO F4 GT 印度版"
|
|
||||||
"23049PCD8G" "POCO F5 國際版"
|
"23049PCD8G" "POCO F5 國際版"
|
||||||
"23049PCD8I" "POCO F5 印度版"
|
"23049PCD8I" "POCO F5 印度版"
|
||||||
"23013PC75G" "POCO F5 Pro 國際版"
|
"23013PC75G" "POCO F5 Pro 國際版"
|
||||||
"24069PC21G" "POCO F6 國際版"
|
"24069PC21G" "POCO F6 國際版"
|
||||||
"24069PC21I" "POCO F6 印度版"
|
"24069PC21I" "POCO F6 印度版"
|
||||||
"23113RKC6G" "POCO F6 Pro 國際版"
|
"23113RKC6G" "POCO F6 Pro 國際版"
|
||||||
"23113RKC6I" "POCO F6 Pro 印度版"
|
|
||||||
"M1912G7BI" "POCO X2 印度版"
|
"M1912G7BI" "POCO X2 印度版"
|
||||||
"M2007J20CI" "POCO X3 印度版"
|
"M2007J20CI" "POCO X3 印度版"
|
||||||
"M2007J20CG" "POCO X3 NFC 國際版"
|
"M2007J20CG" "POCO X3 NFC 國際版"
|
||||||
@@ -643,6 +647,7 @@
|
|||||||
"2404APC5FG" "POCO M6 國際版"
|
"2404APC5FG" "POCO M6 國際版"
|
||||||
"2404APC5FI" "POCO M6 印度版"
|
"2404APC5FI" "POCO M6 印度版"
|
||||||
"23128PC33I" "POCO M6 5G 印度版"
|
"23128PC33I" "POCO M6 5G 印度版"
|
||||||
|
"24066PC95I" "POCO M6 Plus 5G 印度版"
|
||||||
"2312FPCA6G" "POCO M6 Pro 國際版"
|
"2312FPCA6G" "POCO M6 Pro 國際版"
|
||||||
"23076PC4BI" "POCO M6 Pro 5G 印度版"
|
"23076PC4BI" "POCO M6 Pro 5G 印度版"
|
||||||
"M2006C3MI" "POCO C3 印度版"
|
"M2006C3MI" "POCO C3 印度版"
|
||||||
@@ -1048,6 +1053,10 @@
|
|||||||
"G1MNW" "Pixel 8 Pro (mmWave)"
|
"G1MNW" "Pixel 8 Pro (mmWave)"
|
||||||
"GC3VE" "Pixel 8 Pro (Global)"
|
"GC3VE" "Pixel 8 Pro (Global)"
|
||||||
"GE9DP" "Pixel 8 Pro (Japan)"
|
"GE9DP" "Pixel 8 Pro (Japan)"
|
||||||
|
"G8HNN" "Pixel 8a (mmWave)"
|
||||||
|
"GKV4X" "Pixel 8a (North America, Sub 6GHz)"
|
||||||
|
"G6GPR" "Pixel 8a (Global)"
|
||||||
|
"G576D" "Pixel 8a (Japan)"
|
||||||
"G9FPL" "Pixel Fold (US, EU)"
|
"G9FPL" "Pixel Fold (US, EU)"
|
||||||
"G0B96" "Pixel Fold (Japan)"
|
"G0B96" "Pixel Fold (Japan)"
|
||||||
"C1502W" "Pixel C"
|
"C1502W" "Pixel C"
|
||||||
@@ -1105,6 +1114,7 @@
|
|||||||
"TB132FU" "聯想小新 Pad Pro 2022 迅鯤版"
|
"TB132FU" "聯想小新 Pad Pro 2022 迅鯤版"
|
||||||
"TB371FC" "聯想小新 Pad Pro 12.7 驍龍版"
|
"TB371FC" "聯想小新 Pad Pro 12.7 驍龍版"
|
||||||
"TB370FU" "聯想小新 Pad Pro 12.7 天璣版"
|
"TB370FU" "聯想小新 Pad Pro 12.7 天璣版"
|
||||||
|
"TB351FU" "聯想小新 Pad Studio"
|
||||||
"TB372FC" "聯想小新學習平板 12.7"
|
"TB372FC" "聯想小新學習平板 12.7"
|
||||||
"Lenovo YT3-850F" "聯想 YOGA Tab 3 8」 Wi-Fi 版"
|
"Lenovo YT3-850F" "聯想 YOGA Tab 3 8」 Wi-Fi 版"
|
||||||
"Lenovo YT3-850L" "聯想 YOGA Tab 3 8」 LTE 版"
|
"Lenovo YT3-850L" "聯想 YOGA Tab 3 8」 LTE 版"
|
||||||
@@ -1238,6 +1248,8 @@
|
|||||||
"M461Q" "魅族 21 公開版"
|
"M461Q" "魅族 21 公開版"
|
||||||
"M461H" "魅族 21 國際版"
|
"M461H" "魅族 21 國際版"
|
||||||
"M481Q" "魅族 21 PRO"
|
"M481Q" "魅族 21 PRO"
|
||||||
|
"M468Q" "魅族 21 Note 公開版"
|
||||||
|
"M468H" "魅族 21 Note 國際版"
|
||||||
"M852Q" "魅族 X8 公開版"
|
"M852Q" "魅族 X8 公開版"
|
||||||
"M852H" "魅族 X8 國際版"
|
"M852H" "魅族 X8 國際版"
|
||||||
"M813Q" "魅族 V8 高配版"
|
"M813Q" "魅族 V8 高配版"
|
||||||
@@ -1381,6 +1393,7 @@
|
|||||||
"XT2321-2" "moto razr 40 Ultra"
|
"XT2321-2" "moto razr 40 Ultra"
|
||||||
"XT2343-3" "moto g54"
|
"XT2343-3" "moto g54"
|
||||||
"XT2363-4" "moto g34"
|
"XT2363-4" "moto g34"
|
||||||
|
"XT2401-2" "moto X50 Ultra"
|
||||||
"TA-1000" "Nokia 6"
|
"TA-1000" "Nokia 6"
|
||||||
"TA-1054" "Nokia 6 (第二代)"
|
"TA-1054" "Nokia 6 (第二代)"
|
||||||
"TA-1041" "Nokia 7"
|
"TA-1041" "Nokia 7"
|
||||||
@@ -1487,101 +1500,102 @@
|
|||||||
"ONE E1000" "OnePlus X 全網通版"
|
"ONE E1000" "OnePlus X 全網通版"
|
||||||
"ONE E1003" "OnePlus X 國際版"
|
"ONE E1003" "OnePlus X 國際版"
|
||||||
"ONE E1005" "OnePlus X 北美版"
|
"ONE E1005" "OnePlus X 北美版"
|
||||||
"ONEPLUS A3000" "OnePlus 3 全網通版"
|
"ONEPLUS A3000" "OnePlus 3 國行版"
|
||||||
"ONEPLUS A3003" "OnePlus 3 國際版"
|
"ONEPLUS A3003" "OnePlus 3 國際版"
|
||||||
"ONEPLUS A3010" "OnePlus 3T 全網通版"
|
"ONEPLUS A3010" "OnePlus 3T 國行版"
|
||||||
"ONEPLUS A3013" "OnePlus 3T 國際版"
|
"ONEPLUS A3013" "OnePlus 3T 國際版"
|
||||||
"ONEPLUS A5000" "OnePlus 5 全網通版"
|
"ONEPLUS A5000" "OnePlus 5"
|
||||||
"ONEPLUS A5010" "OnePlus 5T 全網通版"
|
"ONEPLUS A5010" "OnePlus 5T"
|
||||||
"ONEPLUS A6000" "OnePlus 6 全網通版"
|
"ONEPLUS A6000" "OnePlus 6 國行版"
|
||||||
"ONEPLUS A6003" "OnePlus 6 國際版"
|
"ONEPLUS A6003" "OnePlus 6 國際版"
|
||||||
"ONEPLUS A6010" "OnePlus 6T 全網通版"
|
"ONEPLUS A6010" "OnePlus 6T 國行版"
|
||||||
"ONEPLUS A6013" "OnePlus 6T 國際版"
|
"ONEPLUS A6013" "OnePlus 6T 國際版"
|
||||||
"GM1900" "OnePlus 7 全網通版"
|
"GM1900" "OnePlus 7 國行版"
|
||||||
"GM1901" "OnePlus 7 印度版"
|
"GM1901" "OnePlus 7 印度版"
|
||||||
"GM1903" "OnePlus 7 歐洲版"
|
"GM1903" "OnePlus 7 歐洲版"
|
||||||
"GM1905" "OnePlus 7 北美版/國際版"
|
"GM1905" "OnePlus 7 北美版/國際版"
|
||||||
"GM1910" "OnePlus 7 Pro 全網通版"
|
"GM1910" "OnePlus 7 Pro 國行版"
|
||||||
"GM1911" "OnePlus 7 Pro 印度版"
|
"GM1911" "OnePlus 7 Pro 印度版"
|
||||||
"GM1913" "OnePlus 7 Pro 歐洲版"
|
"GM1913" "OnePlus 7 Pro 歐洲版"
|
||||||
"GM1915" "OnePlus 7 Pro 北美版/國際版"
|
"GM1915" "OnePlus 7 Pro 北美版/國際版"
|
||||||
"GM1917" "OnePlus 7 Pro T-Mobile 版"
|
"GM1917" "OnePlus 7 Pro T-Mobile 版"
|
||||||
"GM1920" "OnePlus 7 Pro 5G 歐洲版"
|
"GM1920" "OnePlus 7 Pro 5G 歐洲版"
|
||||||
"GM1925" "OnePlus 7 Pro 5G Sprint 版"
|
"GM1925" "OnePlus 7 Pro 5G Sprint 版"
|
||||||
"HD1900" "OnePlus 7T 全網通版"
|
"HD1900" "OnePlus 7T 國行版"
|
||||||
"HD1901" "OnePlus 7T 印度版"
|
"HD1901" "OnePlus 7T 印度版"
|
||||||
"HD1903" "OnePlus 7T 歐洲版"
|
"HD1903" "OnePlus 7T 歐洲版"
|
||||||
"HD1905" "OnePlus 7T 北美版/國際版"
|
"HD1905" "OnePlus 7T 北美版/國際版"
|
||||||
"HD1907" "OnePlus 7T T-Mobile 版"
|
"HD1907" "OnePlus 7T T-Mobile 版"
|
||||||
"HD1910" "OnePlus 7T Pro 全網通版"
|
"HD1910" "OnePlus 7T Pro 國行版"
|
||||||
"HD1911" "OnePlus 7T Pro 印度版"
|
"HD1911" "OnePlus 7T Pro 印度版"
|
||||||
"HD1913" "OnePlus 7T Pro 歐洲版/國際版"
|
"HD1913" "OnePlus 7T Pro 歐洲版/國際版"
|
||||||
"HD1925" "OnePlus 7T Pro 5G T-Mobile 版 / OnePlus Concept One"
|
"HD1925" "OnePlus 7T Pro 5G T-Mobile 版 / OnePlus Concept One"
|
||||||
"IN2010" "OnePlus 8 全網通版"
|
"IN2010" "OnePlus 8 國行版"
|
||||||
"IN2011" "OnePlus 8 印度版"
|
"IN2011" "OnePlus 8 印度版"
|
||||||
"IN2013" "OnePlus 8 歐洲版"
|
"IN2013" "OnePlus 8 歐洲版"
|
||||||
"IN2015" "OnePlus 8 北美版/國際版"
|
"IN2015" "OnePlus 8 北美版/國際版"
|
||||||
"IN2017" "OnePlus 8 T-Mobile 版"
|
"IN2017" "OnePlus 8 T-Mobile 版"
|
||||||
"IN2019" "OnePlus 8 Visible 版/Verizon 版"
|
"IN2019" "OnePlus 8 Visible 版/Verizon 版"
|
||||||
"IN2020" "OnePlus 8 Pro 全網通版"
|
"IN2020" "OnePlus 8 Pro 國行版"
|
||||||
"IN2021" "OnePlus 8 Pro 印度版"
|
"IN2021" "OnePlus 8 Pro 印度版"
|
||||||
"IN2023" "OnePlus 8 Pro 歐洲版"
|
"IN2023" "OnePlus 8 Pro 歐洲版"
|
||||||
"IN2025" "OnePlus 8 Pro 北美版/國際版"
|
"IN2025" "OnePlus 8 Pro 北美版/國際版"
|
||||||
"KB2000" "OnePlus 8T 全網通版"
|
"KB2000" "OnePlus 8T 國行版"
|
||||||
"KB2001" "OnePlus 8T 印度版"
|
"KB2001" "OnePlus 8T 印度版"
|
||||||
"KB2003" "OnePlus 8T 歐洲版"
|
"KB2003" "OnePlus 8T 歐洲版"
|
||||||
"KB2005" "OnePlus 8T 北美版/國際版"
|
"KB2005" "OnePlus 8T 北美版/國際版"
|
||||||
"KB2007" "OnePlus 8T+ T-Mobile 版"
|
"KB2007" "OnePlus 8T+ T-Mobile 版"
|
||||||
"LE2100" "OnePlus 9R 全網通版"
|
"LE2100" "OnePlus 9R 國行版"
|
||||||
"LE2101" "OnePlus 9R 印度版"
|
"LE2101" "OnePlus 9R 印度版"
|
||||||
"LE2110" "OnePlus 9 全網通版"
|
"LE2110" "OnePlus 9 國行版"
|
||||||
"LE2111" "OnePlus 9 印度版"
|
"LE2111" "OnePlus 9 印度版"
|
||||||
"LE2113" "OnePlus 9 歐洲版"
|
"LE2113" "OnePlus 9 歐洲版"
|
||||||
"LE2115" "OnePlus 9 北美版/國際版"
|
"LE2115" "OnePlus 9 北美版/國際版"
|
||||||
"LE2117" "OnePlus 9 T-Mobile 版"
|
"LE2117" "OnePlus 9 T-Mobile 版"
|
||||||
"LE2119" "OnePlus 9 Verzion 版"
|
"LE2119" "OnePlus 9 Verzion 版"
|
||||||
"LE2120" "OnePlus 9 Pro 全網通版"
|
"LE2120" "OnePlus 9 Pro 國行版"
|
||||||
"LE2121" "OnePlus 9 Pro 印度版"
|
"LE2121" "OnePlus 9 Pro 印度版"
|
||||||
"LE2123" "OnePlus 9 Pro 歐洲版"
|
"LE2123" "OnePlus 9 Pro 歐洲版"
|
||||||
"LE2125" "OnePlus 9 Pro 北美版/國際版"
|
"LE2125" "OnePlus 9 Pro 北美版/國際版"
|
||||||
"LE2127" "OnePlus 9 Pro T-Mobile 版"
|
"LE2127" "OnePlus 9 Pro T-Mobile 版"
|
||||||
"MT2110" "OnePlus 9RT 全網通版"
|
"MT2110" "OnePlus 9RT 國行版"
|
||||||
"MT2111" "OnePlus 9RT 印度版"
|
"MT2111" "OnePlus 9RT 印度版"
|
||||||
"NE2210" "OnePlus 10 Pro 全網通版"
|
"NE2210" "OnePlus 10 Pro 國行版"
|
||||||
"NE2211" "OnePlus 10 Pro 印度版"
|
"NE2211" "OnePlus 10 Pro 印度版"
|
||||||
"NE2213" "OnePlus 10 Pro 歐洲版/國際版"
|
"NE2213" "OnePlus 10 Pro 歐洲版/國際版"
|
||||||
"NE2215" "OnePlus 10 Pro 北美版"
|
"NE2215" "OnePlus 10 Pro 北美版"
|
||||||
"NE2217" "OnePlus 10 Pro T-Mobile 版"
|
"NE2217" "OnePlus 10 Pro T-Mobile 版"
|
||||||
"PGKM10" "OnePlus Ace 全網通版"
|
"PGKM10" "OnePlus Ace 國行版"
|
||||||
"CPH2423" "OnePlus 10R 印度版"
|
"CPH2423" "OnePlus 10R 印度版"
|
||||||
"CPH2411" "OnePlus 10R Endurance 印度版"
|
"CPH2411" "OnePlus 10R Endurance 印度版"
|
||||||
"PGZ110" "OnePlus Ace 競速版 全網通版"
|
"PGZ110" "OnePlus Ace 競速版 國行版"
|
||||||
"PGP110" "OnePlus Ace Pro 全網通版"
|
"PGP110" "OnePlus Ace Pro 國行版"
|
||||||
"CPH2413" "OnePlus 10T 印度版"
|
"CPH2413" "OnePlus 10T 印度版"
|
||||||
"CPH2415" "OnePlus 10T 歐洲版/國際版"
|
"CPH2415" "OnePlus 10T 歐洲版/國際版"
|
||||||
"CPH2417" "OnePlus 10T 北美版"
|
"CPH2417" "OnePlus 10T 北美版"
|
||||||
"CPH2419" "OnePlus 10T T-Mobile 版"
|
"CPH2419" "OnePlus 10T T-Mobile 版"
|
||||||
"PHB110" "OnePlus 11 全網通版"
|
"PHB110" "OnePlus 11 國行版"
|
||||||
"CPH2447" "OnePlus 11 印度版"
|
"CPH2447" "OnePlus 11 印度版"
|
||||||
"CPH2449" "OnePlus 11 歐洲版/國際版"
|
"CPH2449" "OnePlus 11 歐洲版/國際版"
|
||||||
"CPH2451" "OnePlus 11 北美版"
|
"CPH2451" "OnePlus 11 北美版"
|
||||||
"PHK110" "OnePlus Ace 2 全網通版"
|
"PHK110" "OnePlus Ace 2 國行版"
|
||||||
"CPH2487" "OnePlus 11R 印度版"
|
"CPH2487" "OnePlus 11R 印度版"
|
||||||
"PHP110" "OnePlus Ace 2V 全網通版"
|
"PHP110" "OnePlus Ace 2V 國行版"
|
||||||
"CPH2491" "OnePlus Nord 3 印度版"
|
"CPH2491" "OnePlus Nord 3 印度版"
|
||||||
"CPH2493" "OnePlus Nord 3 歐洲版"
|
"CPH2493" "OnePlus Nord 3 歐洲版"
|
||||||
"PJA110" "OnePlus Ace 2 Pro 全網通版"
|
"PJA110" "OnePlus Ace 2 Pro 國行版"
|
||||||
"PJD110" "OnePlus 12 全網通版"
|
"PJD110" "OnePlus 12 國行版"
|
||||||
"CPH2573" "OnePlus 12 印度版"
|
"CPH2573" "OnePlus 12 印度版"
|
||||||
"CPH2581" "OnePlus 12 歐洲版/國際版"
|
"CPH2581" "OnePlus 12 歐洲版/國際版"
|
||||||
"CPH2583" "OnePlus 12 北美版"
|
"CPH2583" "OnePlus 12 北美版"
|
||||||
"PJE110" "OnePlus Ace 3 全網通版"
|
"PJE110" "OnePlus Ace 3 國行版"
|
||||||
"CPH2585" "OnePlus 12R 印度版"
|
"CPH2585" "OnePlus 12R 印度版"
|
||||||
"CPH2609" "OnePlus 12R 歐洲版/國際版"
|
"CPH2609" "OnePlus 12R 歐洲版/國際版"
|
||||||
"CPH2611" "OnePlus 12R 北美版"
|
"CPH2611" "OnePlus 12R 北美版"
|
||||||
"PJF110" "OnePlus Ace 3V 全網通版"
|
"PJF110" "OnePlus Ace 3V 國行版"
|
||||||
"CPH2587" "OnePlus Nord 4 印度版"
|
"CPH2619" "OnePlus Nord 4 印度版"
|
||||||
"CPH2589" "OnePlus Nord 4 歐洲版/國際版"
|
"CPH2621" "OnePlus Nord 4 歐洲版/國際版"
|
||||||
|
"PJX110" "OnePlus Ace 3 Pro 國行版"
|
||||||
"AC2001" "OnePlus Nord 印度版"
|
"AC2001" "OnePlus Nord 印度版"
|
||||||
"AC2003" "OnePlus Nord 歐洲版/國際版"
|
"AC2003" "OnePlus Nord 歐洲版/國際版"
|
||||||
"DN2101" "OnePlus Nord 2 印度版"
|
"DN2101" "OnePlus Nord 2 印度版"
|
||||||
|
|||||||
101
tools/tools.sh
101
tools/tools.sh
@@ -446,12 +446,12 @@ fi
|
|||||||
Socname="$(getprop ro.soc.model)"
|
Socname="$(getprop ro.soc.model)"
|
||||||
if [[ $Socname != "" ]]; then
|
if [[ $Socname != "" ]]; then
|
||||||
if [[ -f $tools_path/soc.json ]]; then
|
if [[ -f $tools_path/soc.json ]]; then
|
||||||
jq -r --arg device "$Socname" '.[$device] | "處理器:\(.VENDOR) \(.NAME)"' $tools_path/soc.json &>/dev/null
|
jq -r --arg device "$Socname" '.[$device] | "處理器:\(.VENDOR) \(.NAME)"' "$tools_path/soc.json" &>/dev/null
|
||||||
if [[ $? = 0 ]]; then
|
if [[ $? = 0 ]]; then
|
||||||
DEVICE_NAME="$(jq -r --arg device "$Socname" '.[$device] | "處理器:\(.VENDOR) \(.NAME)"' $tools_path/soc.json 2>/dev/null)"
|
DEVICE_NAME="$(jq -r --arg device "$Socname" '.[$device] | "處理器:\(.VENDOR) \(.NAME)"' "$tools_path/soc.json" 2>/dev/null)"
|
||||||
jq -r --arg device "$Socname" '.[$device] | "RAM:\(.MEMORY) \(.CHANNELS)"' $tools_path/soc.json &>/dev/null
|
jq -r --arg device "$Socname" '.[$device] | "RAM:\(.MEMORY) \(.CHANNELS)"' "$tools_path/soc.json" &>/dev/null
|
||||||
if [[ $? = 0 ]]; then
|
if [[ $? = 0 ]]; then
|
||||||
RAMINFO="$(jq -r --arg device "$Socname" '.[$device] | "RAM:\(.MEMORY) \(.CHANNELS)"' $tools_path/soc.json 2>/dev/null)"
|
RAMINFO="$(jq -r --arg device "$Socname" '.[$device] | "RAM:\(.MEMORY) \(.CHANNELS)"' "$tools_path/soc.json" 2>/dev/null)"
|
||||||
else
|
else
|
||||||
RAMINFO="RAM:null"
|
RAMINFO="RAM:null"
|
||||||
fi
|
fi
|
||||||
@@ -990,7 +990,6 @@ Backup_apk() {
|
|||||||
[[ ! -f $app_details ]] && echo "{\n}">"$app_details"
|
[[ ! -f $app_details ]] && echo "{\n}">"$app_details"
|
||||||
apk_version="$(jq -r '.[] | select(.apk_version != null).apk_version' "$app_details")"
|
apk_version="$(jq -r '.[] | select(.apk_version != null).apk_version' "$app_details")"
|
||||||
apk_version2="$(pm list packages --show-versioncode --user "$user" "$name2" 2>/dev/null | cut -f3 -d ':' | head -n 1)"
|
apk_version2="$(pm list packages --show-versioncode --user "$user" "$name2" 2>/dev/null | cut -f3 -d ':' | head -n 1)"
|
||||||
apk_version3="$(dumpsys package "$name2" 2>/dev/null | awk '/versionName=/{print $1}' | cut -f2 -d '=' | head -1)"
|
|
||||||
if [[ $apk_version = $apk_version2 ]]; then
|
if [[ $apk_version = $apk_version2 ]]; then
|
||||||
[[ $(sed -e '/^$/d' "$txt2" | awk '{print $2}' | grep -w "^${name2}$" | head -1) = "" ]] && echo "${Backup_folder##*/} $name2" >>"$txt2"
|
[[ $(sed -e '/^$/d' "$txt2" | awk '{print $2}' | grep -w "^${name2}$" | head -1) = "" ]] && echo "${Backup_folder##*/} $name2" >>"$txt2"
|
||||||
unset xb
|
unset xb
|
||||||
@@ -1032,17 +1031,16 @@ Backup_apk() {
|
|||||||
[[ $(sed -e '/^$/d' "$txt2" 2>/dev/null | awk '{print $2}' | grep -w "^${name2}$" | head -1) = "" ]] && echo "${Backup_folder##*/} $name2" >>"$txt2"
|
[[ $(sed -e '/^$/d' "$txt2" 2>/dev/null | awk '{print $2}' | grep -w "^${name2}$" | head -1) = "" ]] && echo "${Backup_folder##*/} $name2" >>"$txt2"
|
||||||
[[ $apk_version != "" ]] && {
|
[[ $apk_version != "" ]] && {
|
||||||
echoRgb "覆蓋app_details"
|
echoRgb "覆蓋app_details"
|
||||||
jq -c --arg apk_version "$apk_version2" --arg version_name "$apk_version3" --arg software "$name1" '.[$software].apk_version = $apk_version | .[$software].versionName = $version_name' "$app_details" > temp.json && mv temp.json "$app_details"
|
jq --arg apk_version "$apk_version2" --arg software "$name1" '.[$software].apk_version = $apk_version' "$app_details" > temp.json && cp temp.json "$app_details" && rm -rf temp.json
|
||||||
} || {
|
} || {
|
||||||
echoRgb "新增app_details"
|
echoRgb "新增app_details"
|
||||||
extra_content="{
|
extra_content="{
|
||||||
\"$name1\": {
|
\"$name1\": {
|
||||||
\"PackageName\": \"$name2\",
|
\"PackageName\": \"$name2\",
|
||||||
\"apk_version\": \"$apk_version2\",
|
\"apk_version\": \"$apk_version2\"
|
||||||
\"versionName\": \"$apk_version3\"
|
|
||||||
}
|
}
|
||||||
}"
|
}"
|
||||||
jq -c --argjson new_content "$extra_content" '. += $new_content' "$app_details" > temp.json && mv temp.json "$app_details"
|
jq --argjson new_content "$extra_content" '. += $new_content' "$app_details" > temp.json && cp temp.json "$app_details" && rm -rf temp.json
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
rm -rf "$Backup_folder"
|
rm -rf "$Backup_folder"
|
||||||
@@ -1068,6 +1066,32 @@ Backup_apk() {
|
|||||||
fi
|
fi
|
||||||
[[ $name2 = bin.mt.plus && ! -f $Backup/$name1.apk ]] && cp -r "$apk_path" "$Backup/$name1.apk"
|
[[ $name2 = bin.mt.plus && ! -f $Backup/$name1.apk ]] && cp -r "$apk_path" "$Backup/$name1.apk"
|
||||||
}
|
}
|
||||||
|
Backup_ssaid() {
|
||||||
|
Ssaid="$(jq -r '.[] | select(.Ssaid != null).Ssaid' "$app_details")"
|
||||||
|
ssaid="$(get_ssaid "$name2")"
|
||||||
|
echoRgb "SSAID:$(get_ssaid "$name2")"
|
||||||
|
if [[ $ssaid != null && $ssaid != $Ssaid ]]; then
|
||||||
|
echoRgb "$Ssaid>$ssaid"
|
||||||
|
SSAID_apk="$(echo "$name1 \"$name2\"")"
|
||||||
|
SSAID_apk2="$(echo "$SSAID_apk\n$SSAID_apk2")"
|
||||||
|
jq --arg entry "$name1" --arg new_value "$ssaid" '.[$entry].Ssaid |= $new_value' "$app_details" > temp.json && cp temp.json "$app_details" && rm -rf temp.json
|
||||||
|
echo_log "備份ssaid" "備份" "$name1"
|
||||||
|
fi
|
||||||
|
[[ $ssaid = null ]] && ssaid=
|
||||||
|
}
|
||||||
|
Backup_Permissions() {
|
||||||
|
get_Permissions="$(jq -r '.[] | select(.permissions != null).permissions' "$app_details")"
|
||||||
|
Get_Permissions="$(get_Permissions "$name2" | jq -nR '[inputs | select(length>0) | split(" ") | {(.[0]): .[-1]}] | add')"
|
||||||
|
if [[ $Get_Permissions != "" ]]; then
|
||||||
|
if [[ $get_Permissions = "" ]]; then
|
||||||
|
jq --arg packageName "$name1" --argjson permissions "$Get_Permissions" '.[$packageName].permissions |= $permissions' "$app_details" > temp.json && cp temp.json "$app_details" && rm -rf temp.json
|
||||||
|
#jq --arg packageName "$name1" --argjson permissions "$Get_Permissions" '.[$packageName] |= . + {permissions: $permissions}' "$app_details" > temp.json && cp temp.json "$app_details" && rm -rf temp.json
|
||||||
|
echo_log "備份權限" "備份" "$name1"
|
||||||
|
else
|
||||||
|
[[ $get_Permissions != $Get_Permissions ]] && jq --arg packageName "$name1" --argjson permissions "$Get_Permissions" '.[$packageName] |= . + {permissions: $permissions}' "$app_details" > temp.json && cp temp.json "$app_details" && rm -rf temp.json && echo_log "備份權限" "備份" "$name1"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
#檢測數據位置進行備份
|
#檢測數據位置進行備份
|
||||||
Backup_data() {
|
Backup_data() {
|
||||||
data_path="$path/$1/$name2"
|
data_path="$path/$1/$name2"
|
||||||
@@ -1089,7 +1113,7 @@ Backup_data() {
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
if [[ -d $data_path ]]; then
|
if [[ -d $data_path ]]; then
|
||||||
unset Filesize m_size k_size get_size ssaid Get_Permissions result
|
unset Filesize m_size k_size get_size ssaid Get_Permissions result Permissions
|
||||||
Filesize="$(du -s "$data_path" | awk '{print $1}')"
|
Filesize="$(du -s "$data_path" | awk '{print $1}')"
|
||||||
if [[ $Size != $Filesize ]]; then
|
if [[ $Size != $Filesize ]]; then
|
||||||
k_size="$(awk 'BEGIN{printf "%.2f\n", "'$Filesize'"'*1024'/'1024'}')"
|
k_size="$(awk 'BEGIN{printf "%.2f\n", "'$Filesize'"'*1024'/'1024'}')"
|
||||||
@@ -1099,28 +1123,11 @@ Backup_data() {
|
|||||||
else
|
else
|
||||||
[[ $(echo "$m_size" | cut -d '.' -f1) -lt 1000 ]] && get_size="${m_size}MB" || get_size="$(awk 'BEGIN{printf "%.2f\n", "'$m_size'"/'1024'}')GB"
|
[[ $(echo "$m_size" | cut -d '.' -f1) -lt 1000 ]] && get_size="${m_size}MB" || get_size="$(awk 'BEGIN{printf "%.2f\n", "'$m_size'"/'1024'}')GB"
|
||||||
fi
|
fi
|
||||||
if [[ $1 = user ]]; then
|
case $1 in
|
||||||
Ssaid="$(jq -r '.[] | select(.Ssaid != null).Ssaid' "$app_details")"
|
user)
|
||||||
ssaid="$(get_ssaid "$name2")"
|
Backup_ssaid
|
||||||
echoRgb "SSAID:$(get_ssaid "$name2")"
|
Backup_Permissions ;;
|
||||||
if [[ $ssaid != null && $ssaid != $Ssaid ]]; then
|
esac
|
||||||
echoRgb "$Ssaid>$ssaid"
|
|
||||||
SSAID_apk="$(echo "$name1 \"$name2\"")"
|
|
||||||
SSAID_apk2="$(echo "$SSAID_apk\n$SSAID_apk2")"
|
|
||||||
jq -c --arg entry "$name1" --arg new_value "$ssaid" '.[$entry].Ssaid |= $new_value' "$app_details" > temp.json && mv temp.json "$app_details"
|
|
||||||
echo_log "備份ssaid" "備份" "$name1"
|
|
||||||
fi
|
|
||||||
[[ $ssaid = null ]] && ssaid=
|
|
||||||
Get_Permissions="$(get_Permissions "$name2")"
|
|
||||||
if [[ $Get_Permissions != "" ]]; then
|
|
||||||
if [[ $Permissions = "" ]]; then
|
|
||||||
echo "Permissions=\"$Get_Permissions\"">"$app_Permissions"
|
|
||||||
echo_log "備份權限" "備份" "$name1"
|
|
||||||
else
|
|
||||||
[[ $Permissions != $Get_Permissions ]] && echo "Permissions=\"$Get_Permissions\"">"$app_Permissions" && echo_log "備份權限" "備份" "$name1"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
#停止應用
|
#停止應用
|
||||||
case $1 in
|
case $1 in
|
||||||
user|data|obb) kill_app ;;
|
user|data|obb) kill_app ;;
|
||||||
@@ -1153,20 +1160,14 @@ Backup_data() {
|
|||||||
\"Size\": \"$Filesize\"
|
\"Size\": \"$Filesize\"
|
||||||
}
|
}
|
||||||
}"
|
}"
|
||||||
jq -c --argjson new_content "$extra_content" '. += $new_content' "$app_details" > temp.json && mv temp.json "$app_details"
|
jq --argjson new_content "$extra_content" '. += $new_content' "$app_details" > temp.json && cp temp.json "$app_details" && rm -rf temp.json
|
||||||
else
|
else
|
||||||
extra_content="{
|
extra_content="{
|
||||||
\"$name1\": {
|
|
||||||
\"PackageName\": \"$name2\",
|
|
||||||
\"apk_version\": \"$apk_version2\",
|
|
||||||
\"versionName\": \"$apk_version3\",
|
|
||||||
\"Ssaid\": \"$(jq -r '.[] | select(.Ssaid != null).Ssaid' "$app_details")\"
|
|
||||||
},
|
|
||||||
\"$1\": {
|
\"$1\": {
|
||||||
\"Size\": \"$Filesize\"
|
\"Size\": \"$Filesize\"
|
||||||
}
|
}
|
||||||
}"
|
}"
|
||||||
jq -c --argjson new_content "$extra_content" '. += $new_content' "$app_details" > temp.json && mv temp.json "$app_details"
|
jq --argjson new_content "$extra_content" '. += $new_content' "$app_details" > temp.json && cp temp.json "$app_details" && rm -rf temp.json
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
rm -rf "$Backup_folder/$1".tar.*
|
rm -rf "$Backup_folder/$1".tar.*
|
||||||
@@ -1365,10 +1366,15 @@ get_name(){
|
|||||||
find "$MODDIR" -maxdepth 2 -name "apk.*" -type f 2>/dev/null | sort | while read; do
|
find "$MODDIR" -maxdepth 2 -name "apk.*" -type f 2>/dev/null | sort | while read; do
|
||||||
Folder="${REPLY%/*}"
|
Folder="${REPLY%/*}"
|
||||||
[[ $rgb_a -ge 229 ]] && rgb_a=118
|
[[ $rgb_a -ge 229 ]] && rgb_a=118
|
||||||
unset PackageName NAME DUMPAPK ChineseName versionName apk_version Ssaid dataSize obbSize userSize
|
unset PackageName NAME DUMPAPK ChineseName apk_version Ssaid dataSize obbSize userSize
|
||||||
if [[ -f $Folder/app_details.json ]]; then
|
if [[ -f $Folder/app_details.json ]]; then
|
||||||
ChineseName="$(jq -r 'to_entries[] | select(.key != null).key' "$Folder/app_details.json" | head -n 1)"
|
ChineseName="$(jq -r 'to_entries[] | select(.key != null).key' "$Folder/app_details.json" | head -n 1)"
|
||||||
PackageName="$(jq -r '.[] | select(.PackageName != null).PackageName' "$Folder/app_details.json")"
|
PackageName="$(jq -r '.[] | select(.PackageName != null).PackageName' "$Folder/app_details.json")"
|
||||||
|
if [[ -f $Folder/Permissions ]]; then
|
||||||
|
unset Permissions
|
||||||
|
. "$Folder/Permissions"
|
||||||
|
jq --arg packageName "$ChineseName" --argjson permissions "$(echo "$Permissions" | jq -nR '[inputs | select(length>0) | split(" ") | {(.[0]): .[-1]}] | add')" '.[$packageName] |= . + {permissions: $permissions}' "$Folder/app_details.json" > temp.json && cp temp.json "$Folder/app_details.json" && rm -rf "$Folder/Permissions" temp.json && echoRgb "更新$Folder/app_details.json"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
if [[ -f $Folder/app_details ]]; then
|
if [[ -f $Folder/app_details ]]; then
|
||||||
. "$Folder/app_details" &>/dev/null
|
. "$Folder/app_details" &>/dev/null
|
||||||
@@ -1376,7 +1382,6 @@ get_name(){
|
|||||||
\"$ChineseName\": {
|
\"$ChineseName\": {
|
||||||
\"PackageName\": \"$PackageName\",
|
\"PackageName\": \"$PackageName\",
|
||||||
\"apk_version\": \"$apk_version\",
|
\"apk_version\": \"$apk_version\",
|
||||||
\"versionName\": \"$versionName\",
|
|
||||||
\"Ssaid\": \"$Ssaid\"
|
\"Ssaid\": \"$Ssaid\"
|
||||||
},
|
},
|
||||||
\"data\": {
|
\"data\": {
|
||||||
@@ -1390,7 +1395,7 @@ get_name(){
|
|||||||
}
|
}
|
||||||
}"
|
}"
|
||||||
echo "{\n}">"$Folder/app_details.json"
|
echo "{\n}">"$Folder/app_details.json"
|
||||||
jq -c --argjson new_content "$extra_content" '. += $new_content' "$Folder/app_details.json" > temp.json && rm -rf "$Folder/app_details" && mv temp.json "$Folder/app_details.json"
|
jq --argjson new_content "$extra_content" '. += $new_content' "$Folder/app_details.json" > temp.json && cp temp.json "$Folder/app_details.json" && rm -rf temp.json
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
[[ ! -f $txt ]] && echo "#不需要恢復還原的應用請在開頭使用#注釋 比如:#酷安 com.coolapk.market" >"$txt"
|
[[ ! -f $txt ]] && echo "#不需要恢復還原的應用請在開頭使用#注釋 比如:#酷安 com.coolapk.market" >"$txt"
|
||||||
@@ -1534,8 +1539,10 @@ Set_screen_pause_seconds () {
|
|||||||
restore_permissions () {
|
restore_permissions () {
|
||||||
echoRgb "恢復權限"
|
echoRgb "恢復權限"
|
||||||
appops reset --user "$user" "$name2" &>/dev/null
|
appops reset --user "$user" "$name2" &>/dev/null
|
||||||
[[ $(echo "$Permissions" | grep "true$") != "" ]] && Set_true_Permissions "$name2" "$(echo "$Permissions" | grep "true$" | sed 's/ true$//' | xargs)" &>/dev/null
|
true_permissions="$(jq -r '.[] | select(.permissions != null).permissions | with_entries(select(.value == "true")) | keys[]' "$app_details")"
|
||||||
[[ $(echo "$Permissions" | grep "false$") != "" ]] && Set_false_Permissions "$name2" "$(echo "$Permissions" | grep "false$" | sed 's/ false$//' | xargs)" &>/dev/null
|
false_permissions="$(jq -r '.[] | select(.permissions != null).permissions | with_entries(select(.value == "false")) | keys[]' "$app_details")"
|
||||||
|
[[ $true_permissions != "" ]] && Set_true_Permissions "$name2" "$(echo "$true_permissions" | xargs)" &>/dev/null
|
||||||
|
[[ $false_permissions != "" ]] && Set_false_Permissions "$name2" "$(echo "$false_permissions" | xargs)" &>/dev/null
|
||||||
}
|
}
|
||||||
case $operate in
|
case $operate in
|
||||||
backup)
|
backup)
|
||||||
@@ -1727,7 +1734,7 @@ backup)
|
|||||||
echoRgb "備份第$i/$r個應用 剩下$((r - i))個" "3"
|
echoRgb "備份第$i/$r個應用 剩下$((r - i))個" "3"
|
||||||
notification --tag="101" --title="App備份" --text="備份 $name1 \"$name2\""
|
notification --tag="101" --title="App備份" --text="備份 $name1 \"$name2\""
|
||||||
echoRgb "備份 $name1 \"$name2\"" "2"
|
echoRgb "備份 $name1 \"$name2\"" "2"
|
||||||
unset Backup_folder ChineseName PackageName nobackup No_backupdata result apk_version versionName apk_version2 apk_version3 zsize zmediapath Size data_path Ssaid ssaid Permissions
|
unset Backup_folder ChineseName PackageName nobackup No_backupdata result apk_version apk_version2 zsize zmediapath Size data_path Ssaid ssaid Permissions
|
||||||
if [[ $Backup_Mode = true ]]; then
|
if [[ $Backup_Mode = true ]]; then
|
||||||
if [[ $name1 = !* || $name1 = !* ]]; then
|
if [[ $name1 = !* || $name1 = !* ]]; then
|
||||||
name1="$(echo "$name1" | sed 's/!//g ; s/!//g')"
|
name1="$(echo "$name1" | sed 's/!//g ; s/!//g')"
|
||||||
@@ -1750,7 +1757,7 @@ backup)
|
|||||||
if [[ -f $app_details ]]; then
|
if [[ -f $app_details ]]; then
|
||||||
PackageName="$(jq -r '.[] | select(.PackageName != null).PackageName' "$app_details")"
|
PackageName="$(jq -r '.[] | select(.PackageName != null).PackageName' "$app_details")"
|
||||||
if [[ $PackageName != $name2 ]]; then
|
if [[ $PackageName != $name2 ]]; then
|
||||||
unset Backup_folder ChineseName PackageName nobackup No_backupdata result apk_version versionName apk_version2 apk_version3 zsize zmediapath Size data_path Ssaid ssaid Permissions
|
unset Backup_folder ChineseName PackageName nobackup No_backupdata result apk_version apk_version2 zsize zmediapath Size data_path Ssaid ssaid Permissions
|
||||||
Backup_folder="$Backup/${name1}[${name2}]"
|
Backup_folder="$Backup/${name1}[${name2}]"
|
||||||
app_details="$Backup_folder/app_details.json"
|
app_details="$Backup_folder/app_details.json"
|
||||||
app_Permissions="$Backup_folder/Permissions"
|
app_Permissions="$Backup_folder/Permissions"
|
||||||
|
|||||||
Reference in New Issue
Block a user