fix: filter out submissions with ts or pp less than 0.01
Browse files- src/components/visualizations.py +3 -0
- src/core/glicko2_ranking.py +3 -4
- src/services/firebase.py +12 -3
- src/utils/android_device_cache.json +191 -1
src/components/visualizations.py
CHANGED
|
@@ -2,6 +2,7 @@
|
|
| 2 |
Core module for data visualization components.
|
| 3 |
"""
|
| 4 |
|
|
|
|
| 5 |
import streamlit as st
|
| 6 |
import plotly.express as px
|
| 7 |
import pandas as pd
|
|
@@ -647,4 +648,6 @@ def render_device_rankings(df: pd.DataFrame):
|
|
| 647 |
)
|
| 648 |
|
| 649 |
except Exception as e:
|
|
|
|
|
|
|
| 650 |
st.error(f"Error calculating Glicko-2 rankings: {str(e)}")
|
|
|
|
| 2 |
Core module for data visualization components.
|
| 3 |
"""
|
| 4 |
|
| 5 |
+
import traceback
|
| 6 |
import streamlit as st
|
| 7 |
import plotly.express as px
|
| 8 |
import pandas as pd
|
|
|
|
| 648 |
)
|
| 649 |
|
| 650 |
except Exception as e:
|
| 651 |
+
print(f"Error calculating Glicko-2 rankings: {str(e)}")
|
| 652 |
+
print(traceback.format_exc())
|
| 653 |
st.error(f"Error calculating Glicko-2 rankings: {str(e)}")
|
src/core/glicko2_ranking.py
CHANGED
|
@@ -79,9 +79,9 @@ def preprocess_benchmark_data(
|
|
| 79 |
print(f"Final device count: {filtered_devices}")
|
| 80 |
|
| 81 |
# Print removed devices for verification
|
| 82 |
-
print(
|
| 83 |
-
|
| 84 |
-
)
|
| 85 |
|
| 86 |
return filtered_df
|
| 87 |
|
|
@@ -473,7 +473,6 @@ def analyze_device_glicko2_matches(
|
|
| 473 |
if d != device_id1
|
| 474 |
]
|
| 475 |
|
| 476 |
-
|
| 477 |
# Get normalized scores using the aggregated data
|
| 478 |
norm_scores = normalize_scores(device_agg)
|
| 479 |
# print("norm_scores: ", norm_scores)
|
|
|
|
| 79 |
print(f"Final device count: {filtered_devices}")
|
| 80 |
|
| 81 |
# Print removed devices for verification
|
| 82 |
+
# print(
|
| 83 |
+
# f"Removed {set(df['Normalized Device ID'].unique()) - set(filtered_df['Normalized Device ID'].unique())} "
|
| 84 |
+
# )
|
| 85 |
|
| 86 |
return filtered_df
|
| 87 |
|
|
|
|
| 473 |
if d != device_id1
|
| 474 |
]
|
| 475 |
|
|
|
|
| 476 |
# Get normalized scores using the aggregated data
|
| 477 |
norm_scores = normalize_scores(device_agg)
|
| 478 |
# print("norm_scores: ", norm_scores)
|
src/services/firebase.py
CHANGED
|
@@ -76,6 +76,12 @@ def format_leaderboard_data(submissions: List[dict]) -> pd.DataFrame:
|
|
| 76 |
if device_info.get("isEmulator", False):
|
| 77 |
continue
|
| 78 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 79 |
# Get device ID for iOS devices
|
| 80 |
device_id = device_info.get("deviceId", "Unknown")
|
| 81 |
platform = device_info.get("systemName", "Unknown").lower()
|
|
@@ -105,8 +111,8 @@ def format_leaderboard_data(submissions: List[dict]) -> pd.DataFrame:
|
|
| 105 |
benchmark_result.get("modelNParams", 0)
|
| 106 |
),
|
| 107 |
"Model File Size": benchmark_result.get("modelSize", 0),
|
| 108 |
-
"Prompt Processing": round(
|
| 109 |
-
"Token Generation": round(
|
| 110 |
"Memory Usage (%)": benchmark_result.get("peakMemoryUsage", {}).get(
|
| 111 |
"percentage"
|
| 112 |
),
|
|
@@ -164,7 +170,10 @@ def format_leaderboard_data(submissions: List[dict]) -> pd.DataFrame:
|
|
| 164 |
filtered_df, anomalies = filter_anomalies(
|
| 165 |
formatted_df, z_threshold=9.0, min_samples=5
|
| 166 |
)
|
| 167 |
-
print(
|
|
|
|
|
|
|
|
|
|
| 168 |
return filtered_df
|
| 169 |
|
| 170 |
|
|
|
|
| 76 |
if device_info.get("isEmulator", False):
|
| 77 |
continue
|
| 78 |
|
| 79 |
+
# Skip if benchmark failed (zero or missing performance metrics)
|
| 80 |
+
pp_avg = benchmark_result.get("ppAvg", 0)
|
| 81 |
+
tg_avg = benchmark_result.get("tgAvg", 0)
|
| 82 |
+
if pp_avg <= 0.01 or tg_avg <= 0.01:
|
| 83 |
+
continue
|
| 84 |
+
|
| 85 |
# Get device ID for iOS devices
|
| 86 |
device_id = device_info.get("deviceId", "Unknown")
|
| 87 |
platform = device_info.get("systemName", "Unknown").lower()
|
|
|
|
| 111 |
benchmark_result.get("modelNParams", 0)
|
| 112 |
),
|
| 113 |
"Model File Size": benchmark_result.get("modelSize", 0),
|
| 114 |
+
"Prompt Processing": round(pp_avg, 2),
|
| 115 |
+
"Token Generation": round(tg_avg, 2),
|
| 116 |
"Memory Usage (%)": benchmark_result.get("peakMemoryUsage", {}).get(
|
| 117 |
"percentage"
|
| 118 |
),
|
|
|
|
| 170 |
filtered_df, anomalies = filter_anomalies(
|
| 171 |
formatted_df, z_threshold=9.0, min_samples=5
|
| 172 |
)
|
| 173 |
+
print(
|
| 174 |
+
"Anomalies: ",
|
| 175 |
+
anomalies[["Device ID", "Model", "Metric", "Value", "Mean", "Std"]],
|
| 176 |
+
)
|
| 177 |
return filtered_df
|
| 178 |
|
| 179 |
|
src/utils/android_device_cache.json
CHANGED
|
@@ -438,5 +438,195 @@
|
|
| 438 |
"oneplus:cph2645": "OnePlus 13R",
|
| 439 |
"alldocube:iplay50 pro": "iPlay50 Pro",
|
| 440 |
"lge:lg-h930": "V30",
|
| 441 |
-
"asus:asus_ai2202": "Zenfone 9"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 442 |
}
|
|
|
|
| 438 |
"oneplus:cph2645": "OnePlus 13R",
|
| 439 |
"alldocube:iplay50 pro": "iPlay50 Pro",
|
| 440 |
"lge:lg-h930": "V30",
|
| 441 |
+
"asus:asus_ai2202": "Zenfone 9",
|
| 442 |
+
"realme:rmx5011": "realme GT 7 Pro",
|
| 443 |
+
"motorola:moto g(60)": "moto g(60)",
|
| 444 |
+
"motorola:moto g34 5g": "moto g34 5G",
|
| 445 |
+
"samsung:sm-f741n": "Galaxy Z Flip6",
|
| 446 |
+
"xiaomi:redmi note 7 pro": "Redmi Note 7 Pro",
|
| 447 |
+
"vivo:v2250": "V29",
|
| 448 |
+
"xiaomi:25010pn30g": "Xiaomi 15 Ultra",
|
| 449 |
+
"samsung:sm-s916b": "Galaxy S23+",
|
| 450 |
+
"poco:24117rk2cg": "POCO F7 Pro",
|
| 451 |
+
"google:pixel 9a": "Pixel 9a",
|
| 452 |
+
"redmi:2201117tg": "Redmi Note 11",
|
| 453 |
+
"samsung:sm-s921n": "Galaxy S24",
|
| 454 |
+
"samsung:sm-n9860": "Galaxy Note20 Ultra 5G",
|
| 455 |
+
"vivo:v2249": "Y27",
|
| 456 |
+
"xiaomi:2410crp4cg": "Xiaomi Pad 7",
|
| 457 |
+
"itel:itel p661n": "itel P55 5G",
|
| 458 |
+
"redmi:24115ra8ec": "Redmi Note 14 Pro+",
|
| 459 |
+
"redmi:24115ra8eg": "Redmi Note 14 Pro+ 5G",
|
| 460 |
+
"oppo:cph2211": "CPH2211",
|
| 461 |
+
"samsung:sm-f946u": "Galaxy Z Fold5",
|
| 462 |
+
"xiaomi:redmi note 5 pro": "Redmi Note 5 Pro",
|
| 463 |
+
"huawei:clt-l29": "P20 Pro",
|
| 464 |
+
"infinix:infinix x6851b": "NOTE 40 Pro+ 5G",
|
| 465 |
+
"honor:dnp-nx9": "HONOR 400 Pro",
|
| 466 |
+
"doogee:v20pro": "V20Pro",
|
| 467 |
+
"redmi:25053rt47c": "REDMI Turbo 4 Pro",
|
| 468 |
+
"samsung:sm-t295": "Galaxy Tab A (8.0, 2019)",
|
| 469 |
+
"realme:rmx3933": "RMX3993",
|
| 470 |
+
"redmi:23090ra98g": "Redmi Note 13 Pro+ 5G",
|
| 471 |
+
"xiaomi:25042pn24c": "Xiaomi 15S Pro",
|
| 472 |
+
"samsung:sm-s921u": "Galaxy S24",
|
| 473 |
+
"samsung:sm-s9110": "Galaxy S23",
|
| 474 |
+
"samsung:sm-a346e": "Galaxy A34 5G",
|
| 475 |
+
"nothing:a059": "Nothing Phone (3a)",
|
| 476 |
+
"google:pixel 2 xl": "Pixel 2 XL",
|
| 477 |
+
"samsung:sm-g950f": "Galaxy S8",
|
| 478 |
+
"redmi:24090ra29g": "Redmi Note 14 Pro 5G",
|
| 479 |
+
"oneplus:hd1913": "OnePlus 7T Pro",
|
| 480 |
+
"redmi:21091116ai": "Redmi Note 11T 5G",
|
| 481 |
+
"motorola:moto g84 5g": "moto g84 5G",
|
| 482 |
+
"samsung:sm-f731u": "Galaxy Z Flip5",
|
| 483 |
+
"oneplus:cph2691": "OnePlus 13R",
|
| 484 |
+
"hmd:hmd skyline": "HMD Skyline",
|
| 485 |
+
"infinix:infinix x626b": "S4",
|
| 486 |
+
"samsung:sm-g980f": "Galaxy S20",
|
| 487 |
+
"samsung:sm-s936w": "Galaxy S25+",
|
| 488 |
+
"samsung:sm-s901u1": "Galaxy S22",
|
| 489 |
+
"oneplus:opd2203": "OnePlus Pad",
|
| 490 |
+
"poco:2412dpc0ai": "POCO X7 Pro",
|
| 491 |
+
"doogee:t10": "T10",
|
| 492 |
+
"vivo:v2405a": "X200 Pro",
|
| 493 |
+
"xiaomi:24053py09c": "Xiaomi Civi 4",
|
| 494 |
+
"samsung:sm-a336e": "Galaxy A33 5G",
|
| 495 |
+
"redmi:23117ra68g": "Redmi Note 13 Pro",
|
| 496 |
+
"motorola:xt2153-1": "motorola edge s pro",
|
| 497 |
+
"redmi:23078rkd5c": "Redmi K60 Ultra",
|
| 498 |
+
"motorola:xt2201-6": "moto X30 \u5c4f\u4e0b\u6444\u50cf\u7248",
|
| 499 |
+
"samsung:sm-g770u1": "Galaxy S10 Lite",
|
| 500 |
+
"vivo:v2203a": "V2203A",
|
| 501 |
+
"vivo:v2338": "V2338",
|
| 502 |
+
"umidigi:tg2403gba": "G7_Tab_Pro",
|
| 503 |
+
"redmi:2312draabg": "Redmi Note 13 5G",
|
| 504 |
+
"samsung:sm-x826n": "Galaxy Tab S10+ 5G",
|
| 505 |
+
"oppo:cph2671": "Find N5",
|
| 506 |
+
"samsung:sm-x926b": "Galaxy Tab S10 Ultra 5G",
|
| 507 |
+
"motorola:motorola razr 50 ultra": "motorola razr 50 ultra",
|
| 508 |
+
"infinix:infinix x6528": "Infinix HOT 40i",
|
| 509 |
+
"oneplus:kb2001": "OnePlus 8T",
|
| 510 |
+
"samsung:sm-a566b": "Galaxy A56 5G",
|
| 511 |
+
"realme:rmx3708": "realmeGT Neo5 240W",
|
| 512 |
+
"samsung:sm-a145f": "Galaxy A14",
|
| 513 |
+
"samsung:sm-x115": "Galaxy Tab A9",
|
| 514 |
+
"bncf:bpad": "BPad",
|
| 515 |
+
"samsung:sm-g970u": "Galaxy S10e",
|
| 516 |
+
"motorola:moto g(9) plus": "moto g(9) plus",
|
| 517 |
+
"nothing:a059p": "Nothing Phone (3a) Pro",
|
| 518 |
+
"meizu:meizu 21 pro": "meizu 21 PRO",
|
| 519 |
+
"poco:2310fpca4g": "POCO C65",
|
| 520 |
+
"oneplus:gm1903": "OnePlus 7",
|
| 521 |
+
"redmi:2209116ag": "Redmi Note 12 Pro",
|
| 522 |
+
"motorola:motorola edge plus 2023": "motorola edge plus 2023",
|
| 523 |
+
"sony:xq-es72": "Xperia 10 VI",
|
| 524 |
+
"xiaomi:m2007j3sg": "Mi 10T Pro",
|
| 525 |
+
"samsung:sm-s906u1": "Galaxy S22+",
|
| 526 |
+
"samsung:sm-g990b": "Galaxy S21 FE 5G",
|
| 527 |
+
"oneplus:cph2663": "OnePlus Nord 4",
|
| 528 |
+
"samsung:sm-f731b": "Galaxy Z Flip5",
|
| 529 |
+
"xiaomi:2201123g": "Xiaomi 12",
|
| 530 |
+
"vivo:v2254a": "iQOO 11 Pro",
|
| 531 |
+
"samsung:scg10": "Galaxy S21+ 5G",
|
| 532 |
+
"vivo:v2417a": "V2417A",
|
| 533 |
+
"vivo:v2238a": "iQOO Neo7 SE",
|
| 534 |
+
"oppo:cph2625": "Reno12 5G",
|
| 535 |
+
"alldocube:iplay50_mini_pro": "iPlay50_mini_Pro",
|
| 536 |
+
"motorola:motorola razr 2025": "motorola razr 2025",
|
| 537 |
+
"umidigi:mp34": "UMIDIGI A15C",
|
| 538 |
+
"realme:rmx3706": "realmeGT Neo5",
|
| 539 |
+
"oneplus:mt2111": "OnePlus 9RT 5G",
|
| 540 |
+
"samsung:sm-e546b": "Galaxy F54 5G",
|
| 541 |
+
"infinix:infinix x6882": "Infinix HOT 50",
|
| 542 |
+
"redmi:m2004j19c": "Redmi 9",
|
| 543 |
+
"oneplus:cph2647": "OnePlus 13R",
|
| 544 |
+
"samsung:sm-a546u1": "Galaxy A54 5G",
|
| 545 |
+
"poco:22041216g": "POCO X4 GT",
|
| 546 |
+
"motorola:motorola edge 50": "motorola edge 50",
|
| 547 |
+
"lenovo:tb370fu": "Lenovo Tab P12",
|
| 548 |
+
"vivo:v2324ha": "X100s Pro",
|
| 549 |
+
"samsung:sm-g988u1": "Galaxy S20 Ultra 5G",
|
| 550 |
+
"samsung:sm-s921q": "Galaxy S24",
|
| 551 |
+
"infinix:infinix x6837": "Infinix HOT 40 Pro",
|
| 552 |
+
"poco:22041219pg": "POCO M4 5G",
|
| 553 |
+
"samsung:sm-n985f": "Galaxy Note20 Ultra",
|
| 554 |
+
"samsung:sm-x516b": "Galaxy Tab S9 FE 5G",
|
| 555 |
+
"samsung:sm-a705f": "Galaxy A70",
|
| 556 |
+
"samsung:sm-s938u": "Galaxy S25 Ultra",
|
| 557 |
+
"motorola:motorola razr 50": "motorola razr 50",
|
| 558 |
+
"samsung:sm-g781v": "Galaxy S20 FE 5G",
|
| 559 |
+
"samsung:sm-m146b": "Galaxy M14 5G",
|
| 560 |
+
"samsung:sm-m356b": "Galaxy M35 5G",
|
| 561 |
+
"redmi:21091116ug": "Redmi Note 11 Pro+ 5G",
|
| 562 |
+
"samsung:sm-g996w": "Galaxy S21+ 5G",
|
| 563 |
+
"redmi:2312dra50i": "Redmi Note 13 Pro 5G",
|
| 564 |
+
"htc:htc u23 pro": "HTC U23 pro",
|
| 565 |
+
"cubot:kingkong star": "KINGKONG STAR",
|
| 566 |
+
"nokia:nokia c22": "Nokia C22",
|
| 567 |
+
"xiaomi:2210129sg": "Xiaomi 13 Lite",
|
| 568 |
+
"samsung:sm-p613": "Galaxy Tab S6 Lite",
|
| 569 |
+
"motorola:moto g - 2025": "moto g - 2025",
|
| 570 |
+
"motorola:motorola razr 2024": "motorola razr 2024",
|
| 571 |
+
"samsung:sm-s926u": "Galaxy S24+",
|
| 572 |
+
"sony:xq-at52": "Xperia 1 II",
|
| 573 |
+
"poco:24122rkc7g": "POCO F7 Ultra",
|
| 574 |
+
"fossibot:f102": "F102",
|
| 575 |
+
"samsung:sm-x826b": "Galaxy Tab S10+ 5G",
|
| 576 |
+
"realme:rmx3771": "realme 10 Pro 5G",
|
| 577 |
+
"redmi:23021raaeg": "Redmi Note 12",
|
| 578 |
+
"redmi:m2101k7bl": "Redmi Note 10S",
|
| 579 |
+
"motorola:moto g85 5g": "moto g85 5G",
|
| 580 |
+
"samsung:sm-e156b": "Galaxy M15 5G",
|
| 581 |
+
"asus:asus_ai2302": "Zenfone 10 (AI2302)",
|
| 582 |
+
"itel:itel s667ln": "itel S24",
|
| 583 |
+
"samsung:sm-g991n": "Galaxy S21 5G",
|
| 584 |
+
"samsung:sm-m127g": "Galaxy M12",
|
| 585 |
+
"samsung:sm-s9080": "Galaxy S22 Ultra",
|
| 586 |
+
"tecno:tecno ck7n": "CAMON 20 Pro",
|
| 587 |
+
"samsung:sm-x800": "Galaxy Tab S8+",
|
| 588 |
+
"oppo:pcam00": "Reno \u6807\u51c6\u7248",
|
| 589 |
+
"google:pixel 4 xl": "Pixel 4 XL",
|
| 590 |
+
"oppo:cph2577": "A58",
|
| 591 |
+
"oneplus:dn2101": "OnePlus Nord2 5G",
|
| 592 |
+
"xiaomi:2112123ac": "Xiaomi 12X",
|
| 593 |
+
"motorola:motorola edge 40 pro": "motorola edge 40 pro",
|
| 594 |
+
"tecno:tecno cl8": "TECNO CAMON 30 Pro 5G",
|
| 595 |
+
"vivo:v2247": "Y27s",
|
| 596 |
+
"oppo:phz110": "Find X7",
|
| 597 |
+
"samsung:sm-x806b": "Galaxy Tab S8+ 5G",
|
| 598 |
+
"vivo:v2403a": "iQOO Neo9S Pro+",
|
| 599 |
+
"realme:rmx3151": "realme 8i",
|
| 600 |
+
"realme:rmx2193": "realme 7i",
|
| 601 |
+
"redmi:m2101k7ai": "Redmi Note 10",
|
| 602 |
+
"motorola:motorola edge 30 neo": "motorola edge 30 neo",
|
| 603 |
+
"vivo:v2425a": "iQOO Neo10",
|
| 604 |
+
"xiaomi:24129pn74g": "Xiaomi 15",
|
| 605 |
+
"motorola:moto g14": "moto g14",
|
| 606 |
+
"oppo:cph2697": "Reno13 Pro 5G",
|
| 607 |
+
"samsung:sm-a166p": "Galaxy A16 5G",
|
| 608 |
+
"oneplus:cph2399": "OnePlus Nord 2T 5G",
|
| 609 |
+
"samsung:sm-g975f": "Galaxy S10+",
|
| 610 |
+
"samsung:sm-s938n": "Galaxy S25 Ultra",
|
| 611 |
+
"redmi:redmi note 9 pro": "Redmi Note 9 Pro",
|
| 612 |
+
"vivo:v2427": "V50",
|
| 613 |
+
"redmi:23117rk66c": "Redmi K70 Pro",
|
| 614 |
+
"oppo:cph2325": "CPH2325",
|
| 615 |
+
"realme:rmx3370": "realme GT Neo 2",
|
| 616 |
+
"samsung:sm-a920f": "Galaxy A9 (2018)",
|
| 617 |
+
"samsung:sm-s9310": "Galaxy S25",
|
| 618 |
+
"samsung:sm-a5360": "Galaxy A53 5G",
|
| 619 |
+
"vivo:v2419a": "V2419A",
|
| 620 |
+
"realme:rmx3363": "realme GT Master Edition",
|
| 621 |
+
"samsung:sm-a5560": "Galaxy A55 5G",
|
| 622 |
+
"realme:rmx3461": "realme 9 5G Speed Edition",
|
| 623 |
+
"samsung:sm-s938q": "Galaxy S25 Ultra",
|
| 624 |
+
"oneplus:cph2411": "OnePlus 10R 5G",
|
| 625 |
+
"oppo:cph2495": "A78 5G",
|
| 626 |
+
"realme:rmx3624": "realme C33",
|
| 627 |
+
"tecno:tecno ci8n": "CAMON 19 Pro",
|
| 628 |
+
"redmi:22071219ai": "Redmi 11 Prime",
|
| 629 |
+
"vivo:vivo 1921": "vivo 1921",
|
| 630 |
+
"blackview:bv7100": "BV7100",
|
| 631 |
+
"realme:rmx3563": "realme GT NEO 3 150W"
|
| 632 |
}
|