Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions src/internal/deobfuscateAppleGPU.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,9 @@ export function deobfuscateAppleGPU(
['a15', codeA, 15], // ipad mini 6th gen / ipad 10th gen
['m1', codeA, 15], // ipad pro 11 5nd gen / ipad pro 12.9 5th gen / ipad air 5th gen
['m2', codeA, 15], // ipad pro 11 6nd gen / ipad pro 12.9 6th gen
['m3', codeA, 15], // ipad air 11-inch (m3, 2025) / ipad air 13-inch (m3, 2025)
['m4', codeA, 15], // ipad pro 11-inch (m4, 2024) / ipad pro 13-inch (m4, 2024)
['m5', codeA, 15], // ipad pro 11-inch (m5, 2025) / ipad pro 13-inch (m5, 2025)
]
: [
// ['a4', 7], // 4 / ipod touch 4th gen
Expand All @@ -72,6 +75,10 @@ export function deobfuscateAppleGPU(
['a15', codeA, 15], // 13 / 13 mini / 13 pro / 13 pro max / se 3rd gen / 14 / 14 plus
['a16', codeA, 15], // 14 pro / 14 pro max / 15 / 15 plus
['a17', codeA, 15], // 15 pro / 15 pro max
['a18', codeA, 15], // iphone 16 / iphone 16 plus / iphone 16e
['a18 pro', codeA, 15], // iphone 16 pro / iphone 16 pro max
['a19', codeA, 15], // iphone 17
['a19 pro', codeA, 15], // iphone 17 air / iphone 17 pro / iphone 17 pro max
];
let chipsets: typeof possibleChipsets;

Expand Down
52 changes: 52 additions & 0 deletions test/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,42 @@ for (const { input, expected } of [
renderer: 'Apple a10 GPU',
},
},
{
expected: {
gpu: 'apple a18 gpu',
},
input: {
isMobile: true,
renderer: 'Apple a18 GPU',
},
},
{
expected: {
gpu: 'apple a18 pro gpu',
},
input: {
isMobile: true,
renderer: 'Apple a18 pro GPU',
},
},
{
expected: {
gpu: 'apple m3',
},
input: {
isMobile: false,
renderer: 'Apple M3',
},
},
{
expected: {
gpu: 'apple m4',
},
input: {
isMobile: false,
renderer: 'Apple M4',
},
},
{
expected: {
gpu: 'intel mesa dri intel uhd graphics 630',
Expand Down Expand Up @@ -278,6 +314,22 @@ for (const { input, expected } of [
isMobile: false,
renderer: 'this renderer does not exist',
},
{
isMobile: true,
renderer: 'Apple a19 GPU',
},
{
isMobile: true,
renderer: 'Apple a19 pro GPU',
},
{
isMobile: true,
renderer: 'Apple a19pro GPU',
},
{
isMobile: false,
renderer: 'Apple M5',
},
].map((settings) => {
test(`${settings.renderer} should return FALLBACK`, async () => {
expectGPUResults(
Expand Down