-
Notifications
You must be signed in to change notification settings - Fork 731
Phone Database
Welcome to the Android-PIN-Bruteforce wiki!
Make | Model | Release year | Android Version | Tested by | Config options | Max Incorrect PINs tested |
---|---|---|---|---|---|---|
Samsung | S5 | 2014 | 6.0.1 | @urbanadventurer | config.samsung.s5 | 1500 |
Samsung | S7 | 2016 | 8.01 | @urbanadventurer | config.samsung.s7 | 20 |
Samsung | J7 | 2015 | 6.01 | @v1adf | ||
Samsung | A5 | 2014 | 7.0 | @v1adf | ||
Samsung | S10e | 2019 | 9.0 | @senorsmile | ||
LG | Nexus 5 | 2013 | 6.0.1 | @v1adf | ||
Motorola | G4 Plus | 2016 | 7.0 | @urbanadventurer | config.motorola-moto-g4-plus | 1001 |
Motorola | G5 Plus | 2017 | 7.0 | @odorisiogallo | config.motorola-moto-g5-plus | |
Xiaomi | Mi Mix 3 | 2019 | 10.0 | @psyhomb | config.xiaomi.mi-mix-3 | 65 |
Xiaomi | Redmi Note 7 | 2019 | 10.0 | @psyhomb | config.xiaomi.mi-mix-3 | 12 |
Make | Model | Release year | Android Version | Tested by | Config options |
---|---|---|---|---|---|
HTC | One M8 | 2014 | 5.01 | @v1adf | |
LG | K20 | 2019 | 9.0 | @v1adf | |
LG | Q6 | 2017 | 8.01 | @v1adf | |
Motorola | E6 | 2019 | 9.0 | @v1adf | |
Motorola | Moto G | 2013 | 9.0 | @simtcrcom | |
Samsung | A50 | 2019 | 10.0 | @v1adf | |
Samsung | S7 Edge | 2016 | 6.0.1 | @v1adf | |
Samsung | S8 | 2017 | 9.0 | @v1adf |
Motorola E6
1 second cooldown, 1 attack every 60 after 40 incorrect
I do not have a Motorola G5 Plus to test with, so I cannot confirm that this is correct.
@odorisiogallo shared a number sequence of the cooldown timing in issue #9. The lockscreen delays appear to follow the exponential pattern, 15 x 2n, where n denotes the nth term in the series.
The following Ruby script generates the series of delays up to 25 terms.
irb(main):001:0> (1..25).map { |n| 15*2**n }
=> [30, 60, 120, 240, 480, 960, 1920, 3840, 7680, 15360, 30720, 61440, 122880, 245760, 491520, 983040, 1966080, 3932160, 7864320, 15728640, 31457280, 62914560, 125829120, 251658240, 503316480]
irb(main):002:0>
The following script translates these delay times from seconds into days, hours, minutes, and seconds.
# from https://gist.github.com/shunchu/3175001
def formatted_duration(total_seconds)
days = total_seconds / (60 * 60 * 24)
hours = total_seconds / (60 * 60)
hours -= (24 * days) if days >= 1
minutes = (total_seconds / 60) % 60
seconds = total_seconds % 60
"#{days}d #{hours}h #{minutes}min #{seconds}s"
end
irb(main):015:0> (1..25).each { |x| seconds = 15*2**x; puts "#{x}\t#{seconds}\t\t#{formatted_duration(seconds)}" }
1 30 0d 0h 0min 30s
2 60 0d 0h 1min 0s
3 120 0d 0h 2min 0s
4 240 0d 0h 4min 0s
5 480 0d 0h 8min 0s
6 960 0d 0h 16min 0s
7 1920 0d 0h 32min 0s
8 3840 0d 1h 4min 0s
9 7680 0d 2h 8min 0s
10 15360 0d 4h 16min 0s
11 30720 0d 8h 32min 0s
12 61440 0d 17h 4min 0s
13 122880 1d 10h 8min 0s
14 245760 2d 20h 16min 0s
15 491520 5d 16h 32min 0s
16 983040 11d 9h 4min 0s
17 1966080 22d 18h 8min 0s
18 3932160 45d 12h 16min 0s
19 7864320 91d 0h 32min 0s
20 15728640 182d 1h 4min 0s
21 31457280 364d 2h 8min 0s
22 62914560 728d 4h 16min 0s
23 125829120 1456d 8h 32min 0s
24 251658240 2912d 17h 4min 0s
25 503316480 5825d 10h 8min 0s
def formatted_duration(total_seconds) days = total_seconds / (60 * 60 * 24) hours = total_seconds / (60 * 60) hours -= (24 * days) if days >= 1 minutes = (total_seconds / 60) % 60 seconds = total_seconds % 60
"#{days}d #{hours}h #{minutes}min #{seconds}s"
end
irb(main):015:0> (1..25).each { |x| seconds = 15*2**x; puts "#{x}\t#{seconds}\t\t#{formatted_duration(seconds)}" } 1 30 0d 0h 0min 30s 2 60 0d 0h 1min 0s 3 120 0d 0h 2min 0s 4 240 0d 0h 4min 0s 5 480 0d 0h 8min 0s 6 960 0d 0h 16min 0s 7 1920 0d 0h 32min 0s 8 3840 0d 1h 4min 0s 9 7680 0d 2h 8min 0s 10 15360 0d 4h 16min 0s 11 30720 0d 8h 32min 0s 12 61440 0d 17h 4min 0s 13 122880 1d 10h 8min 0s 14 245760 2d 20h 16min 0s 15 491520 5d 16h 32min 0s 16 983040 11d 9h 4min 0s 17 1966080 22d 18h 8min 0s 18 3932160 45d 12h 16min 0s 19 7864320 91d 0h 32min 0s 20 15728640 182d 1h 4min 0s 21 31457280 364d 2h 8min 0s 22 62914560 728d 4h 16min 0s 23 125829120 1456d 8h 32min 0s 24 251658240 2912d 17h 4min 0s 25 503316480 5825d 10h 8min 0s
https://github.com/urbanadventurer/Android-PIN-Bruteforce
irb(main):001:0> (1..25).map { |n| 15*2**n } => [30, 60, 120, 240, 480, 960, 1920, 3840, 7680, 15360, 30720, 61440, 122880, 245760, 491520, 983040, 1966080, 3932160, 7864320, 15728640, 31457280, 62914560, 125829120, 251658240, 503316480] irb(main):002:0>