Hello,
I've been fighting a bit to try to root my own MBA in less than 10 sec , as advertised here.
I had no trouble (nearly) to create the inject.bin necessary (after installing Java 7 SDK, after installing homebrew, to install dfu-programmer to upgrade to duck_v2.1.hex), I was ready to witness the magic...
I had to take the key out before it did nasty things - Wrong keyboard layout.
So here you are,
// french layout
KEY_NON_US_100 = 100
// 32
ASCII_20 = KEY_SPACE
// 33 !
ASCII_21 = KEY_8
// 34 "
ASCII_22 = KEY_3
// 35 #
ASCII_23 = KEY_SECTION, MODIFIERKEY_SHIFT
// 36 $
ASCII_24 = KEY_RIGHT_BRACE
// 37 %
ASCII_25 = KEY_QUOTE, MODIFIERKEY_SHIFT
// 38 &
ASCII_26 = KEY_1
// 39 '
ASCII_27 = KEY_4
// 40 (
ASCII_28 = KEY_5
// 41 )
ASCII_29 = KEY_MINUS
// 42 *
ASCII_2A = KEY_RIGHT_BRACE, MODIFIERKEY_SHIFT
// 43 +
ASCII_2B = KEY_SLASH, MODIFIERKEY_SHIFT
// 44 ,
ASCII_2C = KEY_M
// 45 -
ASCII_2D = KEY_EQUAL
// 46 .
ASCII_2E = KEY_COMMA, MODIFIERKEY_SHIFT
// 47 /
ASCII_2F = KEY_PERIOD, MODIFIERKEY_SHIFT
// 48 0
ASCII_30 = KEY_0, MODIFIERKEY_SHIFT
// 49 1
ASCII_31 = KEY_1, MODIFIERKEY_SHIFT
// 50 2
ASCII_32 = KEY_2, MODIFIERKEY_SHIFT
// 51 3
ASCII_33 = KEY_3, MODIFIERKEY_SHIFT
// 52 4
ASCII_34 = KEY_4, MODIFIERKEY_SHIFT
// 53 5
ASCII_35 = KEY_5, MODIFIERKEY_SHIFT
// 54 6
ASCII_36 = KEY_6, MODIFIERKEY_SHIFT
// 55 7
ASCII_37 = KEY_7, MODIFIERKEY_SHIFT
// 55 8
ASCII_38 = KEY_8, MODIFIERKEY_SHIFT
// 57 9
ASCII_39 = KEY_9, MODIFIERKEY_SHIFT
// 58 :
ASCII_3A = KEY_PERIOD
// 59 ;
ASCII_3B = KEY_COMMA
// 60 <
ASCII_3C = KEY_TILDE
// 61 =
ASCII_3D = KEY_SLASH
// 62 >
ASCII_3E = KEY_TILDE, MODIFIERKEY_SHIFT
// 63 ?
ASCII_3F = KEY_M, MODIFIERKEY_SHIFT
// 64 @
ASCII_40 = KEY_SECTION
// 65 A
ASCII_41 = KEY_Q, MODIFIERKEY_SHIFT
// 66 B
ASCII_42 = KEY_B, MODIFIERKEY_SHIFT
// 67 C
ASCII_43 = KEY_C, MODIFIERKEY_SHIFT
// 68 D
ASCII_44 = KEY_D, MODIFIERKEY_SHIFT
// 69 E
ASCII_45 = KEY_E, MODIFIERKEY_SHIFT
// 70 F
ASCII_46 = KEY_F, MODIFIERKEY_SHIFT
// 71 G
ASCII_47 = KEY_G, MODIFIERKEY_SHIFT
// 72 H
ASCII_48 = KEY_H, MODIFIERKEY_SHIFT
// 73 I
ASCII_49 = KEY_I, MODIFIERKEY_SHIFT
// 74 J
ASCII_4A = KEY_J, MODIFIERKEY_SHIFT
// 75 K
ASCII_4B = KEY_K, MODIFIERKEY_SHIFT
// 76 L
ASCII_4C = KEY_L, MODIFIERKEY_SHIFT
// 77 M
ASCII_4D = KEY_SEMICOLON, MODIFIERKEY_SHIFT
// 78 N
ASCII_4E = KEY_N, MODIFIERKEY_SHIFT
// 79 O
ASCII_4F = KEY_O, MODIFIERKEY_SHIFT
// 80 P
ASCII_50 = KEY_P, MODIFIERKEY_SHIFT
// 81 Q
ASCII_51 = KEY_A, MODIFIERKEY_SHIFT
// 82 R
ASCII_52 = KEY_R, MODIFIERKEY_SHIFT
// 83 S
ASCII_53 = KEY_S, MODIFIERKEY_SHIFT
// 84 T
ASCII_54 = KEY_T, MODIFIERKEY_SHIFT
// 85 U
ASCII_55 = KEY_U, MODIFIERKEY_SHIFT
// 86 V
ASCII_56 = KEY_V, MODIFIERKEY_SHIFT
// 87 W
ASCII_57 = KEY_Z, MODIFIERKEY_SHIFT
// 88 X
ASCII_58 = KEY_X, MODIFIERKEY_SHIFT
// 89 Y
ASCII_59 = KEY_Y, MODIFIERKEY_SHIFT
// 90 Z
ASCII_5A = KEY_W, MODIFIERKEY_SHIFT
// 91 [
ASCII_5B = KEY_5, KEY_LEFT_SHIFT, MODIFIERKEY_LEFT_ALT
// 92
ASCII_5C = KEY_PERIOD, KEY_RIGHT_SHIFT, MODIFIERKEY_RIGHT_ALT
// 93 ]
ASCII_5D = KEY_MINUS, KEY_LEFT_SHIFT, MODIFIERKEY_LEFT_ALT
// 94 ^
ASCII_5E = KEY_LEFT_BRACE
// 95 _
ASCII_5F = KEY_EQUAL, MODIFIERKEY_SHIFT
// 96 `
ASCII_60 = KEY_BACKSLASH
// 97 a
ASCII_61 = KEY_Q
// 98 b
ASCII_62 = KEY_B
// 99 c
ASCII_63 = KEY_C
// 100 d
ASCII_64 = KEY_D
// 101 e
ASCII_65 = KEY_E
// 102 f
ASCII_66 = KEY_F
// 103 g
ASCII_67 = KEY_G
// 104 h
ASCII_68 = KEY_H
// 105 i
ASCII_69 = KEY_I
// 106 j
ASCII_6A = KEY_J
// 107 k
ASCII_6B = KEY_K
// 108 l
ASCII_6C = KEY_L
// 109 m
ASCII_6D = KEY_SEMICOLON
// 110 n
ASCII_6E = KEY_N
// 111 o
ASCII_6F = KEY_O
// 112 p
ASCII_70 = KEY_P
// 113 q
ASCII_71 = KEY_A
// 114 r
ASCII_72 = KEY_R
// 115 s
ASCII_73 = KEY_S
// 116 t
ASCII_74 = KEY_T
// 117 u
ASCII_75 = KEY_U
// 118 v
ASCII_76 = KEY_V
// 119 w
ASCII_77 = KEY_Z
// 120 x
ASCII_78 = KEY_X
// 121 y
ASCII_79 = KEY_Y
// 122 z
ASCII_7A = KEY_W
// 123 {
ASCII_7B = KEY_5, MODIFIERKEY_RIGHT_ALT
// 124 |
ASCII_7C = KEY_L, KEY_RIGHT_ALT, MODIFIERKEY_SHIFT
// 125 }
ASCII_7D = KEY_MINUS, MODIFIERKEY_RIGHT_ALT
// 126 ~
ASCII_7E = KEY_N, KEY_RIGHT_ALT
// 127
ASCII_7F = KEY_BACKSPACE
// 160 Nonbreakng Space
ISO_8859_1_A0 = KEY_SPACE
// 163 £ Pound Sign
ISO_8859_1_A3 = KEY_SLASH, MODIFIERKEY_SHIFT
// 164 € Currency or Euro Sign
ISO_8859_1_A4 = KEY_RIGHT_BRACE, MODIFIERKEY_RIGHT_ALT
// 167 § SECTION SIGN
ISO_8859_1_A7 = KEY_6
// 176 ° DEGREE SIGN
ISO_8859_1_B0 = KEY_MINUS, MODIFIERKEY_SHIFT
// 181 µ MICRO SIGN
ISO_8859_1_B5 = KEY_M, MODIFIERKEY_ALT
// 224 à a GRAVE
ISO_8859_1_E0 = KEY_0
// 231 ç c CEDILLA
ISO_8859_1_E7 = KEY_9
// 232 è e GRAVE
ISO_8859_1_E8 = KEY_7
// 233 é e ACUTE
ISO_8859_1_E9 = KEY_2
// 249 ù u GRAVE
ISO_8859_1_F9 = KEY_COMMA
It should work correctly ;)
But I still have a problem with this
// 35 #
ASCII_23 = KEY_SECTION, MODIFIERKEY_SHIFT
# doesn't show on screen while injecting the text.
As though I have the right key name ???
FRENCH MBA LAYOUT US MBA LAYOUT
Found it
Here is the corrected code !
// french layout
KEY_NON_US_100 = 100
// 32
ASCII_20 = KEY_SPACE
// 33 !
ASCII_21 = KEY_8
// 34 "
ASCII_22 = KEY_3
// 35 #
ASCII_23 = KEY_NON_US_100, MODIFIERKEY_SHIFT
// 36 $
ASCII_24 = KEY_RIGHT_BRACE
// 37 %
ASCII_25 = KEY_QUOTE, MODIFIERKEY_SHIFT
// 38 &
ASCII_26 = KEY_1
// 39 '
ASCII_27 = KEY_4
// 40 (
ASCII_28 = KEY_5
// 41 )
ASCII_29 = KEY_MINUS
// 42 *
ASCII_2A = KEY_RIGHT_BRACE, MODIFIERKEY_SHIFT
// 43 +
ASCII_2B = KEY_SLASH, MODIFIERKEY_SHIFT
// 44 ,
ASCII_2C = KEY_M
// 45 -
ASCII_2D = KEY_EQUAL
// 46 .
ASCII_2E = KEY_COMMA, MODIFIERKEY_SHIFT
// 47 /
ASCII_2F = KEY_PERIOD, MODIFIERKEY_SHIFT
// 48 0
ASCII_30 = KEY_0, MODIFIERKEY_SHIFT
// 49 1
ASCII_31 = KEY_1, MODIFIERKEY_SHIFT
// 50 2
ASCII_32 = KEY_2, MODIFIERKEY_SHIFT
// 51 3
ASCII_33 = KEY_3, MODIFIERKEY_SHIFT
// 52 4
ASCII_34 = KEY_4, MODIFIERKEY_SHIFT
// 53 5
ASCII_35 = KEY_5, MODIFIERKEY_SHIFT
// 54 6
ASCII_36 = KEY_6, MODIFIERKEY_SHIFT
// 55 7
ASCII_37 = KEY_7, MODIFIERKEY_SHIFT
// 55 8
ASCII_38 = KEY_8, MODIFIERKEY_SHIFT
// 57 9
ASCII_39 = KEY_9, MODIFIERKEY_SHIFT
// 58 :
ASCII_3A = KEY_PERIOD
// 59 ;
ASCII_3B = KEY_COMMA
// 60 <
ASCII_3C = KEY_TILDE
// 61 =
ASCII_3D = KEY_SLASH
// 62 >
ASCII_3E = KEY_TILDE, MODIFIERKEY_SHIFT
// 63 ?
ASCII_3F = KEY_M, MODIFIERKEY_SHIFT
// 64 @
ASCII_40 = KEY_NON_US_100
// 65 A
ASCII_41 = KEY_Q, MODIFIERKEY_SHIFT
// 66 B
ASCII_42 = KEY_B, MODIFIERKEY_SHIFT
// 67 C
ASCII_43 = KEY_C, MODIFIERKEY_SHIFT
// 68 D
ASCII_44 = KEY_D, MODIFIERKEY_SHIFT
// 69 E
ASCII_45 = KEY_E, MODIFIERKEY_SHIFT
// 70 F
ASCII_46 = KEY_F, MODIFIERKEY_SHIFT
// 71 G
ASCII_47 = KEY_G, MODIFIERKEY_SHIFT
// 72 H
ASCII_48 = KEY_H, MODIFIERKEY_SHIFT
// 73 I
ASCII_49 = KEY_I, MODIFIERKEY_SHIFT
// 74 J
ASCII_4A = KEY_J, MODIFIERKEY_SHIFT
// 75 K
ASCII_4B = KEY_K, MODIFIERKEY_SHIFT
// 76 L
ASCII_4C = KEY_L, MODIFIERKEY_SHIFT
// 77 M
ASCII_4D = KEY_SEMICOLON, MODIFIERKEY_SHIFT
// 78 N
ASCII_4E = KEY_N, MODIFIERKEY_SHIFT
// 79 O
ASCII_4F = KEY_O, MODIFIERKEY_SHIFT
// 80 P
ASCII_50 = KEY_P, MODIFIERKEY_SHIFT
// 81 Q
ASCII_51 = KEY_A, MODIFIERKEY_SHIFT
// 82 R
ASCII_52 = KEY_R, MODIFIERKEY_SHIFT
// 83 S
ASCII_53 = KEY_S, MODIFIERKEY_SHIFT
// 84 T
ASCII_54 = KEY_T, MODIFIERKEY_SHIFT
// 85 U
ASCII_55 = KEY_U, MODIFIERKEY_SHIFT
// 86 V
ASCII_56 = KEY_V, MODIFIERKEY_SHIFT
// 87 W
ASCII_57 = KEY_Z, MODIFIERKEY_SHIFT
// 88 X
ASCII_58 = KEY_X, MODIFIERKEY_SHIFT
// 89 Y
ASCII_59 = KEY_Y, MODIFIERKEY_SHIFT
// 90 Z
ASCII_5A = KEY_W, MODIFIERKEY_SHIFT
// 91 [
ASCII_5B = KEY_5, KEY_LEFT_SHIFT, MODIFIERKEY_LEFT_ALT
// 92
ASCII_5C = KEY_PERIOD, KEY_RIGHT_SHIFT, MODIFIERKEY_RIGHT_ALT
// 93 ]
ASCII_5D = KEY_MINUS, KEY_LEFT_SHIFT, MODIFIERKEY_LEFT_ALT
// 94 ^
ASCII_5E = KEY_LEFT_BRACE
// 95 _
ASCII_5F = KEY_EQUAL, MODIFIERKEY_SHIFT
// 96 `
ASCII_60 = KEY_BACKSLASH
// 97 a
ASCII_61 = KEY_Q
// 98 b
ASCII_62 = KEY_B
// 99 c
ASCII_63 = KEY_C
// 100 d
ASCII_64 = KEY_D
// 101 e
ASCII_65 = KEY_E
// 102 f
ASCII_66 = KEY_F
// 103 g
ASCII_67 = KEY_G
// 104 h
ASCII_68 = KEY_H
// 105 i
ASCII_69 = KEY_I
// 106 j
ASCII_6A = KEY_J
// 107 k
ASCII_6B = KEY_K
// 108 l
ASCII_6C = KEY_L
// 109 m
ASCII_6D = KEY_SEMICOLON
// 110 n
ASCII_6E = KEY_N
// 111 o
ASCII_6F = KEY_O
// 112 p
ASCII_70 = KEY_P
// 113 q
ASCII_71 = KEY_A
// 114 r
ASCII_72 = KEY_R
// 115 s
ASCII_73 = KEY_S
// 116 t
ASCII_74 = KEY_T
// 117 u
ASCII_75 = KEY_U
// 118 v
ASCII_76 = KEY_V
// 119 w
ASCII_77 = KEY_Z
// 120 x
ASCII_78 = KEY_X
// 121 y
ASCII_79 = KEY_Y
// 122 z
ASCII_7A = KEY_W
// 123 {
ASCII_7B = KEY_5, MODIFIERKEY_RIGHT_ALT
// 124 |
ASCII_7C = MODIFIERKEY_ALT, KEY_L, MODIFIERKEY_SHIFT
// 125 }
ASCII_7D = KEY_MINUS, MODIFIERKEY_RIGHT_ALT
// 126 ~
ASCII_7E = KEY_N, KEY_RIGHT_ALT
// 127
ASCII_7F = KEY_BACKSPACE
// 160 Nonbreakng Space
ISO_8859_1_A0 = KEY_SPACE
// 163 £ Pound Sign
ISO_8859_1_A3 = KEY_SLASH, MODIFIERKEY_SHIFT
// 164 € Currency or Euro Sign
ISO_8859_1_A4 = KEY_RIGHT_BRACE, MODIFIERKEY_RIGHT_ALT
// 167 § SECTION SIGN
ISO_8859_1_A7 = KEY_6
// 176 ° DEGREE SIGN
ISO_8859_1_B0 = KEY_MINUS, MODIFIERKEY_SHIFT
// 181 µ MICRO SIGN
ISO_8859_1_B5 = KEY_M, MODIFIERKEY_ALT
// 224 à a GRAVE
ISO_8859_1_E0 = KEY_0
// 231 ç c CEDILLA
ISO_8859_1_E7 = KEY_9
// 232 è e GRAVE
ISO_8859_1_E8 = KEY_7
// 233 é e ACUTE
ISO_8859_1_E9 = KEY_2
// 249 ù u GRAVE
ISO_8859_1_F9 = KEY_COMMA
The key was the
KEY_NON_US_100
Though the pipe "|" does not work since it needs three keys
MODIFIERKEY_ALT, KEY_L, MODIFIERKEY_SHIFT
Any Idea ?
Oo
Thanks for all who made this tiny little magic work.