@@ -92,29 +92,63 @@ export const deobfuscateAppleGPU = (
92
92
93
93
gl . deleteProgram ( program ) ;
94
94
gl . deleteBuffer ( vertexArray ) ;
95
-
96
- renderers =
97
- ( {
95
+ const id = pixels . join ( '' ) ;
96
+ const { older, newer } = deviceInfo ?. isIpad
97
+ ? {
98
+ newer : [
99
+ 'apple a12 gpu' , // ipad 8th gen / ipad air 3rd gen / ipad mini 5th gen
100
+ 'apple a12x gpu' , // pro 11 1st gen / pro 12.9 3rd gen
101
+ 'apple a12z gpu' , // pro 12.9 4th gen / pro 11 2nd gen
102
+ 'apple a14 gpu' , // ipad air 4th gen
103
+ 'apple m1 gpu' // ipad pro 11 2nd gen / 12.9 5th gen
104
+ ] ,
105
+ older : [
106
+ // Commented out because they don't support ios version >= 13
107
+ // 'apple a4 gpu', // ipad 1st gen
108
+ // 'apple a5 gpu', // ipad 2 / ipad mini 1st gen
109
+ // 'apple a5x gpu', // ipad 3rd gen
110
+ // 'apple a6x gpu', // ipad 4th gen
111
+ 'apple a8 gpu' , // pad mini 4
112
+ 'apple a8x gpu' , // ipad air 2
113
+ 'apple a9 gpu' , // ipad 5th gen
114
+ 'apple a9x gpu' , // pro 9.7 2016 / pro 12.9 2015
115
+ 'apple a10 gpu' , // ipad 7th gen / ipad 6th gen
116
+ 'apple a10x gpu' // pro 10.5 2017 / pro 12.9 2nd gen, 2017
117
+ ]
118
+ }
119
+ : {
120
+ newer : [
121
+ 'apple a11 gpu' , // 8 / 8 plus / X
122
+ 'apple a12 gpu' , // XS / XS Max / XR
123
+ 'apple a13 gpu' , // 11 / 11 pro / 11 pro max / se 2nd gen
124
+ 'apple a14 gpu' // 12 / 12 mini / 12 pro / 12 pro max
125
+ ] ,
126
+ older : [
127
+ // Commented out because they don't support ios version >= 13
128
+ // 'apple a4 gpu', // 4 / ipod touch 4th gen
129
+ // 'apple a5 gpu', // 4S / ipod touch 5th gen
130
+ // 'apple a6 gpu', // 5 / 5C
131
+ // 'apple a7 gpu', // 5S
132
+ // 'aple a8 gpu', // 6 / 6 plus / ipod touch 6th gen
133
+ 'apple a9 gpu' , // 6s / 6s plus/ se 1st gen
134
+ 'apple a10 gpu' // 7 / 7 plus / iPod Touch 7th gen
135
+ ]
136
+ } ;
137
+ renderers = (
138
+ {
98
139
// iPhone 11, 11 Pro, 11 Pro Max (Apple A13 GPU)
99
140
// iPad Pro (Apple A12X GPU)
100
141
// iPhone XS, XS Max, XR (Apple A12 GPU)
101
142
// iPhone 8, 8 Plus (Apple A11 GPU)
102
- '801621810' : deviceInfo ?. isIpad
103
- ? [ 'apple a12x gpu' ]
104
- : [
105
- 'apple a11 gpu' ,
106
- 'apple a12 gpu' ,
107
- 'apple a13 gpu' ,
108
- 'apple a14 gpu' ,
109
- ] ,
143
+ '801621810' : newer ,
144
+ '80162181255' : newer ,
110
145
// iPhone SE, 6S, 6S Plus (Apple A9 GPU)
111
146
// iPhone 7, 7 Plus (Apple A10 GPU)
112
147
// iPad Pro (Apple A10X GPU)
113
- '8016218135' : deviceInfo ?. isIpad
114
- ? [ 'apple a9x gpu' , 'apple a10 gpu' , 'apple a10x gpu' ]
115
- : [ 'apple a9 gpu' , 'apple a10 gpu' ] ,
148
+ '8016218135' : older ,
116
149
// eslint-disable-next-line @typescript-eslint/no-explicit-any
117
- } as any ) [ pixels . join ( '' ) ] || renderers ;
150
+ } as any
151
+ ) [ id ] ?? [ ...newer , ...older ] ;
118
152
119
153
debug ?.(
120
154
`iOS 12.2+ obfuscates its GPU type and version, using closest matches: ${ renderers } `
0 commit comments