Compare commits
2468 Commits
readme_upd
...
dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
36181636c8 | ||
|
|
5c539d2346 | ||
|
|
3bfeea9962 | ||
|
|
0a7eb30a15 | ||
|
|
caad1ef268 | ||
|
|
d10a601109 | ||
|
|
32a182c439 | ||
|
|
1f676cffea | ||
|
|
a28b2477f9 | ||
|
|
c08cb33a76 | ||
|
|
59ac0f211c | ||
|
|
c8e756a3c5 | ||
|
|
13b79f0246 | ||
|
|
05925868d2 | ||
|
|
e2e839fb2c | ||
|
|
0b7c9e2eab | ||
|
|
6f69f39fa1 | ||
|
|
ab593a7a8f | ||
|
|
7409b51da5 | ||
|
|
0f3eb9ae12 | ||
|
|
6abd2b0e9f | ||
|
|
a7561bee98 | ||
|
|
3821c9049e | ||
|
|
5bd0f642dd | ||
|
|
b8bec12974 | ||
|
|
a493612444 | ||
|
|
259efadaea | ||
|
|
ecbeb658e1 | ||
|
|
cd79d4f689 | ||
|
|
7fd30911fe | ||
|
|
52b76e2e2e | ||
|
|
b0c1931caf | ||
|
|
1c07f94cdd | ||
|
|
0351818b75 | ||
|
|
b391cfc71d | ||
|
|
da3a2834d4 | ||
|
|
d320c4a46b | ||
|
|
d1f8ddc033 | ||
|
|
d13b43f193 | ||
|
|
01cc4cc3da | ||
|
|
7ee266752e | ||
|
|
48b9dd2cc8 | ||
|
|
0530eda8d1 | ||
|
|
9d1cee6d4c | ||
|
|
b7d2ab7a0c | ||
|
|
a1c48c82f8 | ||
|
|
7518dc73c2 | ||
|
|
f4c92dcd76 | ||
|
|
c873eb5e36 | ||
|
|
a42e30f394 | ||
|
|
6d93a90a0a | ||
|
|
6c83a67173 | ||
|
|
22ee3bdae2 | ||
|
|
b54d63037b | ||
|
|
6a5ae6cc0d | ||
|
|
67b906e6ba | ||
|
|
772c944163 | ||
|
|
7f7d1e1d32 | ||
|
|
4f5ab0b15b | ||
|
|
f177c0491d | ||
|
|
c87205fe9a | ||
|
|
79fc832356 | ||
|
|
944c5ffb98 | ||
|
|
ed2c40de4b | ||
|
|
e392bff808 | ||
|
|
c37c5574ba | ||
|
|
5db6a03811 | ||
|
|
a553bc2f57 | ||
|
|
3e96806962 | ||
|
|
cf5761860f | ||
|
|
01c168e351 | ||
|
|
a1c8dfb61b | ||
|
|
bd02e2f53c | ||
|
|
94076e6c5c | ||
|
|
d673fd5573 | ||
|
|
9506ccde2e | ||
|
|
dbc5895b30 | ||
|
|
b03316d89d | ||
|
|
d465877919 | ||
|
|
7bbe85c7cd | ||
|
|
806143bf29 | ||
|
|
b3a5e2c282 | ||
|
|
5a933f13ad | ||
|
|
c6f26c696c | ||
|
|
90f446880a | ||
|
|
b604c93eb0 | ||
|
|
2efcc8f6cc | ||
|
|
eb2bdf7ac2 | ||
|
|
3eac28ed05 | ||
|
|
d8924c02ad | ||
|
|
eed1d3367a | ||
|
|
fc34205f97 | ||
|
|
de35de4e58 | ||
|
|
b9feece2c2 | ||
|
|
df035ad51c | ||
|
|
4d2a08cc11 | ||
|
|
57dff2aced | ||
|
|
468cc45f90 | ||
|
|
8ae710edec | ||
|
|
fe31d0cc12 | ||
|
|
d79539c75c | ||
|
|
40f7c007d9 | ||
|
|
85b6b2b896 | ||
|
|
05c64d2b1f | ||
|
|
fad487df0e | ||
|
|
7db92ed1f8 | ||
|
|
a5dedec00a | ||
|
|
1f92d793b9 | ||
|
|
df4bf69818 | ||
|
|
b604514a2b | ||
|
|
fdf532066f | ||
|
|
5a8a0dff5e | ||
|
|
a4f5f1e862 | ||
|
|
999afe3f5b | ||
|
|
3e45fce96d | ||
|
|
f4529dc8c1 | ||
|
|
1e0f3a606f | ||
|
|
f78a8328d1 | ||
|
|
e7634d7563 | ||
|
|
958cc79596 | ||
|
|
eea53491de | ||
|
|
a357dfd1ad | ||
|
|
1e431422e7 | ||
|
|
2dd6b5cdce | ||
|
|
372681553a | ||
|
|
46c335ad25 | ||
|
|
0c1c54c949 | ||
|
|
2ef556d456 | ||
|
|
8c0c7f1bb9 | ||
|
|
2988897a4b | ||
|
|
013c5ffa52 | ||
|
|
d17fd8ed7f | ||
|
|
93b4ad4595 | ||
|
|
d0360625d6 | ||
|
|
0d5beedb01 | ||
|
|
30077dd512 | ||
|
|
2ae03e7d51 | ||
|
|
5c54be4d9c | ||
|
|
973fb26f57 | ||
|
|
f0d4210d19 | ||
|
|
905b5726ad | ||
|
|
7483069d10 | ||
|
|
7554b32538 | ||
|
|
6a49131ae9 | ||
|
|
7f0e8f39d3 | ||
|
|
dfd753703a | ||
|
|
ad94694fbd | ||
|
|
bea8d41c8b | ||
|
|
8bd66c9920 | ||
|
|
a0c85ed737 | ||
|
|
dc8fc9fbe0 | ||
|
|
d791711b09 | ||
|
|
f4138e5999 | ||
|
|
7380eacf0e | ||
|
|
d19ad60c1a | ||
|
|
5932dbe70a | ||
|
|
470f6a679d | ||
|
|
d45048fc5d | ||
|
|
2c2228a4b9 | ||
|
|
3efa40b079 | ||
|
|
bbb33c1d75 | ||
|
|
55d2348171 | ||
|
|
efc608cf32 | ||
|
|
19bb5cb0d9 | ||
|
|
b07cb9401f | ||
|
|
40c6c8b59c | ||
|
|
ffb8eb7cff | ||
|
|
d06d3684e5 | ||
|
|
c091a58486 | ||
|
|
8e650f0688 | ||
|
|
5f7aaf2a04 | ||
|
|
db4a613f6c | ||
|
|
c2296902e2 | ||
|
|
828a73bbd1 | ||
|
|
efcaf96d07 | ||
|
|
f2bfed6bbc | ||
|
|
eb9b84e0c0 | ||
|
|
c610caea9b | ||
|
|
40e56bc862 | ||
|
|
46e7912d94 | ||
|
|
e8ce86917a | ||
|
|
801d6ae71c | ||
|
|
27a572d45c | ||
|
|
2124edf914 | ||
|
|
0acb014719 | ||
|
|
71eafcdd6c | ||
|
|
7c3e874716 | ||
|
|
fbb7a879f7 | ||
|
|
4ecfd63759 | ||
|
|
2c0b7caf55 | ||
|
|
9ab4fcb256 | ||
|
|
979e428ad8 | ||
|
|
e69e8fcdf3 | ||
|
|
7646902fdc | ||
|
|
610fd68b75 | ||
|
|
3aa75341d6 | ||
|
|
c189283329 | ||
|
|
59a823cbcd | ||
|
|
3b7d837e48 | ||
|
|
fb41c6c20c | ||
|
|
6a2f062234 | ||
|
|
115734373b | ||
|
|
e6cc2852fd | ||
|
|
8887cbff88 | ||
|
|
ac6621cdcb | ||
|
|
3b29bd6508 | ||
|
|
269cbd66e1 | ||
|
|
bddebff134 | ||
|
|
3c3d06bae0 | ||
|
|
1bed4d29cb | ||
|
|
30621b2fd7 | ||
|
|
06b29ddc1b | ||
|
|
8ef9a07608 | ||
|
|
74f6ee1e7c | ||
|
|
a547c946ab | ||
|
|
e025c57425 | ||
|
|
43b35019ed | ||
|
|
6ae1ce6861 | ||
|
|
9517104626 | ||
|
|
e003a19edc | ||
|
|
aad07ed943 | ||
|
|
8f203f47d9 | ||
|
|
1448a70393 | ||
|
|
03676e90b9 | ||
|
|
c81c136121 | ||
|
|
fa6839d283 | ||
|
|
1382a6af46 | ||
|
|
91a235b395 | ||
|
|
5ee3f7c68d | ||
|
|
9cfa400ff4 | ||
|
|
1b754c1482 | ||
|
|
0b53be5cbd | ||
|
|
98a4477999 | ||
|
|
ab5b155d96 | ||
|
|
d0e5dbe63e | ||
|
|
407e482566 | ||
|
|
f1f1a89204 | ||
|
|
54c3c67728 | ||
|
|
3aa3098d47 | ||
|
|
4c00313157 | ||
|
|
09514ae179 | ||
|
|
5365cfcb04 | ||
|
|
ff8c3540eb | ||
|
|
92ca0cf1a8 | ||
|
|
350dea6535 | ||
|
|
5392c6e3f8 | ||
|
|
b352342434 | ||
|
|
d1c3b0bc68 | ||
|
|
82c7231c57 | ||
|
|
fbed9994fb | ||
|
|
08205f9ff9 | ||
|
|
d399d3d7e5 | ||
|
|
ee3e7bc3bf | ||
|
|
04d66f7162 | ||
|
|
5471b211d2 | ||
|
|
fdab87795f | ||
|
|
0f713bc6e4 | ||
|
|
e538bd7c8e | ||
|
|
069d0435b1 | ||
|
|
e108405fe4 | ||
|
|
02bc2f0ce7 | ||
|
|
78e2adbf5c | ||
|
|
604141cac3 | ||
|
|
c5d077fc7a | ||
|
|
d5c6933b35 | ||
|
|
341246038a | ||
|
|
32d104c591 | ||
|
|
ee80ea115d | ||
|
|
6c798a5d4b | ||
|
|
b16bca1b60 | ||
|
|
fb02568fab | ||
|
|
760079ee2c | ||
|
|
5ca63ff1a4 | ||
|
|
e46c5cb650 | ||
|
|
70a4731874 | ||
|
|
f87102362b | ||
|
|
1a4d197e38 | ||
|
|
c1dbfd351e | ||
|
|
0321a56ee7 | ||
|
|
79450ff3cb | ||
|
|
5a0c4e6678 | ||
|
|
c0e169a229 | ||
|
|
ef3d17ea4e | ||
|
|
5bba71e2cb | ||
|
|
ae2b305701 | ||
|
|
0c7500399e | ||
|
|
8cbf9a40a7 | ||
|
|
05e21c7158 | ||
|
|
384cd47b1b | ||
|
|
f800a94dd5 | ||
|
|
925b95007a | ||
|
|
9f2b202b7d | ||
|
|
e4e8f18a94 | ||
|
|
c5d8bdf500 | ||
|
|
1935165591 | ||
|
|
a92400b9b6 | ||
|
|
2e4a838202 | ||
|
|
5b911f5405 | ||
|
|
c420cbb1a5 | ||
|
|
3fd059a45f | ||
|
|
1d4db1ee2c | ||
|
|
eee082f103 | ||
|
|
34a3222ec4 | ||
|
|
008c5a8828 | ||
|
|
5f3d510f34 | ||
|
|
086a9185fc | ||
|
|
63cfa2d684 | ||
|
|
e8e87c66e3 | ||
|
|
04c2b17f47 | ||
|
|
8a5129449d | ||
|
|
8a0fb5df36 | ||
|
|
535afc41f3 | ||
|
|
ab26469a05 | ||
|
|
1e1f6b079e | ||
|
|
d542d7d75f | ||
|
|
9a57b19bfb | ||
|
|
1eb57ba462 | ||
|
|
ddf77f58e3 | ||
|
|
868eb10381 | ||
|
|
a72c5238fa | ||
|
|
d5935dc814 | ||
|
|
75f5d6fec7 | ||
|
|
455bb8ab1f | ||
|
|
ad23d77f0e | ||
|
|
d67734674e | ||
|
|
66a7050221 | ||
|
|
e1bccf66b3 | ||
|
|
638182a5ff | ||
|
|
936096d2fc | ||
|
|
fe5ed640af | ||
|
|
096c088bf1 | ||
|
|
837abd7d51 | ||
|
|
025fd03a5a | ||
|
|
1b5a2496f5 | ||
|
|
3c25c29dec | ||
|
|
98728fe93c | ||
|
|
b4450946a4 | ||
|
|
37eae30f06 | ||
|
|
1135cce5c5 | ||
|
|
3c18097025 | ||
|
|
c88eaffa66 | ||
|
|
5eacafa16d | ||
|
|
1b8e87ad53 | ||
|
|
5e7a8cf94f | ||
|
|
e6d1d19a19 | ||
|
|
0e723cfa69 | ||
|
|
75c8cb9715 | ||
|
|
224d4e060b | ||
|
|
4ec8f21e09 | ||
|
|
d467798b43 | ||
|
|
7286560c23 | ||
|
|
d1f9921f83 | ||
|
|
bdf2c4ce24 | ||
|
|
4140952605 | ||
|
|
c77c2d2bb0 | ||
|
|
9a6aa17bee | ||
|
|
7507058870 | ||
|
|
6b7a7c5709 | ||
|
|
e712375edc | ||
|
|
c8cf76f75e | ||
|
|
29b865ed21 | ||
|
|
33fa903f7a | ||
|
|
b39912af11 | ||
|
|
7f45050c87 | ||
|
|
16e48c8994 | ||
|
|
c4c5148992 | ||
|
|
b2fadccd3c | ||
|
|
5f66425671 | ||
|
|
b90e7ab43c | ||
|
|
efcad3a118 | ||
|
|
cca87e3c0a | ||
|
|
fa0962efeb | ||
|
|
4dd123fd8a | ||
|
|
00dde53304 | ||
|
|
edb327e50a | ||
|
|
3d02063bce | ||
|
|
eb0f5ef8c0 | ||
|
|
ada8473932 | ||
|
|
7c44bd1cbe | ||
|
|
f07048d1b0 | ||
|
|
831e46c052 | ||
|
|
3745ae2241 | ||
|
|
324b8ddb95 | ||
|
|
1385ea0ea0 | ||
|
|
a57f9e22b5 | ||
|
|
c8fc2fa7b3 | ||
|
|
4f5cba4cd1 | ||
|
|
380402a55c | ||
|
|
6b5d006690 | ||
|
|
dac1457f0a | ||
|
|
7192c9e68b | ||
|
|
6f852e646c | ||
|
|
09c61ecbde | ||
|
|
5dcf6b55ef | ||
|
|
fa09a18483 | ||
|
|
24fbfd1663 | ||
|
|
13333edd30 | ||
|
|
c9201a3bde | ||
|
|
5786066512 | ||
|
|
d08d38f3b2 | ||
|
|
f783e0b3ab | ||
|
|
bd1e395b08 | ||
|
|
0103b8c7c5 | ||
|
|
74e10f5854 | ||
|
|
d34ff3310d | ||
|
|
933134ed94 | ||
|
|
d6f9d7e994 | ||
|
|
518878ce43 | ||
|
|
0eb3fc33dd | ||
|
|
48ef579ee6 | ||
|
|
f6916fe616 | ||
|
|
a0645bc6f4 | ||
|
|
8871df863b | ||
|
|
17759a9e4b | ||
|
|
6962e9ce34 | ||
|
|
5fcaef25b0 | ||
|
|
3bd6ee03ef | ||
|
|
cf63b38ce0 | ||
|
|
bcbf78a45d | ||
|
|
9384dedb88 | ||
|
|
79bb24406e | ||
|
|
7f135dae03 | ||
|
|
d267665310 | ||
|
|
dd009e38df | ||
|
|
0563697eab | ||
|
|
2828ffb0f4 | ||
|
|
1c080ecc63 | ||
|
|
dd3a3a02c9 | ||
|
|
bfe9f20650 | ||
|
|
6cc4976568 | ||
|
|
0c5cab9f1a | ||
|
|
65b1b943d1 | ||
|
|
17db4dcdac | ||
|
|
82489cf8eb | ||
|
|
3e9bb38cd7 | ||
|
|
02aa4041a6 | ||
|
|
a9aac8a1a9 | ||
|
|
31b7c4a34f | ||
|
|
cd28f7d232 | ||
|
|
54adc38b3a | ||
|
|
77865586e1 | ||
|
|
c86b6e4b56 | ||
|
|
a9288da9ba | ||
|
|
8df48988f5 | ||
|
|
ca2765a3fb | ||
|
|
23d2bed66a | ||
|
|
b792e094fb | ||
|
|
e196999b4a | ||
|
|
4d19ffb31c | ||
|
|
472f7e76f3 | ||
|
|
f52c9855d6 | ||
|
|
dc7e96d185 | ||
|
|
f751b28532 | ||
|
|
5eb38b786b | ||
|
|
a629118aaa | ||
|
|
02dedd60f3 | ||
|
|
a4d0c467f9 | ||
|
|
c66b332a7d | ||
|
|
05423d5cb3 | ||
|
|
b48e00928a | ||
|
|
edd75a9b01 | ||
|
|
94b369657d | ||
|
|
c04ce78fcd | ||
|
|
16b8ec5a9c | ||
|
|
21e2e9c148 | ||
|
|
7f1c8684c6 | ||
|
|
b5fd8953f9 | ||
|
|
9da510389a | ||
|
|
8ca3581fb0 | ||
|
|
ab8ea27200 | ||
|
|
ed1f4000e6 | ||
|
|
61a54a1b06 | ||
|
|
b2185594f2 | ||
|
|
cf63e9c036 | ||
|
|
9b3d737693 | ||
|
|
c9313c6f52 | ||
|
|
e589cf7246 | ||
|
|
9a8dcc340f | ||
|
|
7a19c9e549 | ||
|
|
4045628ac6 | ||
|
|
9e6593c09e | ||
|
|
687a6fd630 | ||
|
|
b5bfe7085d | ||
|
|
82d3f452cd | ||
|
|
5e6c238389 | ||
|
|
8fd5a26e3e | ||
|
|
bf50f0cd20 | ||
|
|
cef20b3a5e | ||
|
|
82fd6b2130 | ||
|
|
7ac1452618 | ||
|
|
08304ccff5 | ||
|
|
bb170140e2 | ||
|
|
3c7d9e63fb | ||
|
|
be4b049417 | ||
|
|
0d99e54a17 | ||
|
|
edd42d34c6 | ||
|
|
248666be2b | ||
|
|
ec593e660c | ||
|
|
0d53cb2c48 | ||
|
|
00e64e8679 | ||
|
|
0a924974c0 | ||
|
|
145184f0f2 | ||
|
|
d783204d20 | ||
|
|
fec1ecedc7 | ||
|
|
9f5e93bed8 | ||
|
|
8505aab0c3 | ||
|
|
5b2582930f | ||
|
|
fc96bf2a2e | ||
|
|
b38d239eb8 | ||
|
|
248341ac0a | ||
|
|
9fe149960e | ||
|
|
6579b4195e | ||
|
|
326eff734d | ||
|
|
dd2388e40d | ||
|
|
0e8a0228be | ||
|
|
c71ea3aee4 | ||
|
|
9f4b1aead7 | ||
|
|
acc90d0ac3 | ||
|
|
15a5e652e0 | ||
|
|
6c17b785ec | ||
|
|
251565e9d3 | ||
|
|
d7221f1b0d | ||
|
|
bf84daf0d9 | ||
|
|
7d000abfc4 | ||
|
|
5d7b63b162 | ||
|
|
b99f65dd9a | ||
|
|
b0835220ac | ||
|
|
ef024e8086 | ||
|
|
4c47b9baed | ||
|
|
91bcff606b | ||
|
|
d8b32d74ab | ||
|
|
92818a07a2 | ||
|
|
1292742538 | ||
|
|
e70ee30f6e | ||
|
|
c4c2fe7e1e | ||
|
|
8b8d9c9d94 | ||
|
|
cf73481310 | ||
|
|
476e8f22d0 | ||
|
|
5ac9ff3256 | ||
|
|
0214e176c2 | ||
|
|
b887d6af21 | ||
|
|
404764b660 | ||
|
|
f94800b220 | ||
|
|
13dd10182e | ||
|
|
16d18a79a9 | ||
|
|
f242eef26f | ||
|
|
4e9aa3883b | ||
|
|
7c5c5d4749 | ||
|
|
290a6dc1eb | ||
|
|
aef8a97ab4 | ||
|
|
f0b20efbc9 | ||
|
|
56853161e2 | ||
|
|
2817666eb9 | ||
|
|
d7df3f38b7 | ||
|
|
536ebe3efc | ||
|
|
f37044de18 | ||
|
|
9378a6f5c4 | ||
|
|
9ff141acbb | ||
|
|
fa2af5a826 | ||
|
|
cd94db3b91 | ||
|
|
1e3100e26e | ||
|
|
3698fc8d02 | ||
|
|
04fa7a9a7f | ||
|
|
77445fd2f5 | ||
|
|
486dc48a7a | ||
|
|
0f240c4dbc | ||
|
|
93b0277938 | ||
|
|
1541c36b14 | ||
|
|
ca527a0183 | ||
|
|
0849aec661 | ||
|
|
3a42bf812d | ||
|
|
17417a487a | ||
|
|
2ff9e34082 | ||
|
|
4895ae5d0d | ||
|
|
9f1eca2260 | ||
|
|
96dc1af1e8 | ||
|
|
7e1dae67a3 | ||
|
|
dea16b7055 | ||
|
|
d4830270a4 | ||
|
|
95483fb56f | ||
|
|
85cba9fd8d | ||
|
|
429c0dd387 | ||
|
|
59fe896ce8 | ||
|
|
de85cc7a8e | ||
|
|
e27f82f041 | ||
|
|
45529e76e9 | ||
|
|
9042294837 | ||
|
|
36327877ba | ||
|
|
f5c59e0f91 | ||
|
|
9d9a46f49f | ||
|
|
d57e2c9ef7 | ||
|
|
e22669da96 | ||
|
|
00f332eaf1 | ||
|
|
18e2d8d2f4 | ||
|
|
2919105bdb | ||
|
|
ac1b723436 | ||
|
|
00f287e297 | ||
|
|
f25224d79d | ||
|
|
8059959624 | ||
|
|
a2b81e4e37 | ||
|
|
f05302813a | ||
|
|
a3ffdac763 | ||
|
|
7a92fd359c | ||
|
|
490e66b21f | ||
|
|
5bd35f435b | ||
|
|
92b58bc99f | ||
|
|
3029f0d6d6 | ||
|
|
724c4ca445 | ||
|
|
cce8a7c413 | ||
|
|
8c31d8a682 | ||
|
|
a5c241139d | ||
|
|
eef2441af9 | ||
|
|
d0a33b22f4 | ||
|
|
a5f62f756a | ||
|
|
1acc814b2a | ||
|
|
0112a733c4 | ||
|
|
fbcf39a990 | ||
|
|
e809e3ddbb | ||
|
|
fbc29f519f | ||
|
|
0a2b47c7e1 | ||
|
|
5096b9c88b | ||
|
|
633f5d7c57 | ||
|
|
8872b13d54 | ||
|
|
818a47085e | ||
|
|
d09bbd18fa | ||
|
|
1666c4d04f | ||
|
|
b4c7cde261 | ||
|
|
cf50875c5c | ||
|
|
ec75de0320 | ||
|
|
c73495767c | ||
|
|
f054d05269 | ||
|
|
5c56d9ab27 | ||
|
|
7291e6bd46 | ||
|
|
a0d1d3fa0f | ||
|
|
535dd8357b | ||
|
|
35c1bfc057 | ||
|
|
5efdab863b | ||
|
|
668500e985 | ||
|
|
f2c84e0510 | ||
|
|
c1c2bca850 | ||
|
|
701969e334 | ||
|
|
31365cb170 | ||
|
|
1a95757a75 | ||
|
|
7fc34db57b | ||
|
|
189c87cb08 | ||
|
|
93d2120e55 | ||
|
|
f68f125071 | ||
|
|
5fb9558dbb | ||
|
|
5fd423951b | ||
|
|
1739f57c7a | ||
|
|
4694492ed4 | ||
|
|
38326877ea | ||
|
|
9c5341edb1 | ||
|
|
a0c087c557 | ||
|
|
519b89665f | ||
|
|
e11a62694e | ||
|
|
dc73096966 | ||
|
|
626d7ef509 | ||
|
|
631d7a40dd | ||
|
|
6d20bc7e50 | ||
|
|
33f1a16094 | ||
|
|
a02781b936 | ||
|
|
bd348cf72d | ||
|
|
8dd5e64c03 | ||
|
|
a7b3a13581 | ||
|
|
9c96bbfc54 | ||
|
|
8c4922a322 | ||
|
|
8d078e4b8c | ||
|
|
9917579619 | ||
|
|
d60c034c92 | ||
|
|
256c1a1140 | ||
|
|
306b728587 | ||
|
|
53fa3f85b3 | ||
|
|
d566f650bd | ||
|
|
c9bc05199e | ||
|
|
dd6e0a9b72 | ||
|
|
0d61de4584 | ||
|
|
599bb5f6f5 | ||
|
|
bc54364352 | ||
|
|
7d5358b9d3 | ||
|
|
0fd26ee148 | ||
|
|
3d6fd9b00d | ||
|
|
8629c61dc9 | ||
|
|
2f30817dc9 | ||
|
|
c3dc9e1ec2 | ||
|
|
399bcdcc13 | ||
|
|
0ef9f7d308 | ||
|
|
905f9498aa | ||
|
|
a47443ed1c | ||
|
|
7e0f292615 | ||
|
|
fc25c9fba0 | ||
|
|
07426b6df2 | ||
|
|
e3c3edcc7e | ||
|
|
41ae5d8981 | ||
|
|
7ef1a705be | ||
|
|
24e7cfc16f | ||
|
|
bc4881aa12 | ||
|
|
3d74f4e1dc | ||
|
|
51aafd1b5e | ||
|
|
b86b9b87b8 | ||
|
|
c741727b96 | ||
|
|
462ab255a1 | ||
|
|
79caf7bf72 | ||
|
|
8a2cf4dc3d | ||
|
|
69aa4cd254 | ||
|
|
eae8ef23df | ||
|
|
4479cd489b | ||
|
|
e8dc0ea5d8 | ||
|
|
2d601651c6 | ||
|
|
9180364e42 | ||
|
|
91af1cdd46 | ||
|
|
7ce036fd9b | ||
|
|
3c6a621da2 | ||
|
|
04c8093672 | ||
|
|
f4887ed31c | ||
|
|
561b4e947a | ||
|
|
4b8a1a4b11 | ||
|
|
c807ffc324 | ||
|
|
1907f23e5f | ||
|
|
054efbbb03 | ||
|
|
55d1588356 | ||
|
|
cb8c1e3364 | ||
|
|
72272b3b34 | ||
|
|
85e5642b2a | ||
|
|
e4c8270824 | ||
|
|
6d823835df | ||
|
|
8427ec0098 | ||
|
|
86813d1b60 | ||
|
|
907019c136 | ||
|
|
c24007755a | ||
|
|
eb1aabbec4 | ||
|
|
2282587c15 | ||
|
|
b462329dd5 | ||
|
|
bb922de569 | ||
|
|
ed57ddb14b | ||
|
|
e87356af72 | ||
|
|
e7b64c843c | ||
|
|
3d52187aa9 | ||
|
|
e630f44afd | ||
|
|
6b6d98da2a | ||
|
|
6dbb46a81d | ||
|
|
e7239f6e8b | ||
|
|
91fcddc205 | ||
|
|
d0214c7b27 | ||
|
|
bf7b91f45f | ||
|
|
cf0a6ae2d0 | ||
|
|
47637621a7 | ||
|
|
92aa70ba9d | ||
|
|
3374ed1dad | ||
|
|
b0e591601c | ||
|
|
fc16978be5 | ||
|
|
f8fa71c575 | ||
|
|
1822221c69 | ||
|
|
ea2757908b | ||
|
|
75625ffd5e | ||
|
|
48acd9f075 | ||
|
|
8c960a990c | ||
|
|
2441643ac6 | ||
|
|
8cdb5619f5 | ||
|
|
0b7f174162 | ||
|
|
8ed1dc2289 | ||
|
|
fe3228b63e | ||
|
|
bc73b13b1b | ||
|
|
3ba530555d | ||
|
|
37f76374a2 | ||
|
|
db26c85b23 | ||
|
|
897817a829 | ||
|
|
2be0cfb04b | ||
|
|
1101748a21 | ||
|
|
4be9e79342 | ||
|
|
b723d463af | ||
|
|
ca68c953c0 | ||
|
|
e2d0a86d3e | ||
|
|
f305f6efa9 | ||
|
|
c4d997084a | ||
|
|
c39edce7c6 | ||
|
|
2bc02c0962 | ||
|
|
9c20bdc287 | ||
|
|
d72fad45e0 | ||
|
|
5434405c34 | ||
|
|
4e5abdadff | ||
|
|
1dd7ebd059 | ||
|
|
1df18417fa | ||
|
|
8d2476733e | ||
|
|
c2c288b9ad | ||
|
|
521b793011 | ||
|
|
38fb892cbb | ||
|
|
fdbeefa0a9 | ||
|
|
960e0bf545 | ||
|
|
cd46d8ca07 | ||
|
|
f37799e0f4 | ||
|
|
63d1890156 | ||
|
|
2aff3bca73 | ||
|
|
d3f192ac36 | ||
|
|
7415873449 | ||
|
|
a1993a528d | ||
|
|
ac3c6dc4f9 | ||
|
|
7de26fb99b | ||
|
|
004d8382d3 | ||
|
|
c917135c94 | ||
|
|
dc9548d0dc | ||
|
|
a34e09094b | ||
|
|
a6cf08523c | ||
|
|
8233534d6a | ||
|
|
edc58c5a0e | ||
|
|
45bc0e1ce6 | ||
|
|
4b9b1769f7 | ||
|
|
02f7c6b421 | ||
|
|
fbc3b494b7 | ||
|
|
8a95cb8d6b | ||
|
|
57c438d91a | ||
|
|
0902fd49e1 | ||
|
|
2f102e61a9 | ||
|
|
f530eeed47 | ||
|
|
ddd0fc80f8 | ||
|
|
fccb893bed | ||
|
|
9839db70f5 | ||
|
|
0241d8d1e8 | ||
|
|
e3f393e505 | ||
|
|
0f831412fa | ||
|
|
889b19be92 | ||
|
|
d9d3867ce1 | ||
|
|
edafd70d84 | ||
|
|
ce32463b3e | ||
|
|
421bd3e1f9 | ||
|
|
5190aace88 | ||
|
|
9799a07db6 | ||
|
|
a17cbd0419 | ||
|
|
676eab29f2 | ||
|
|
38889a434c | ||
|
|
540478855c | ||
|
|
a7c0819034 | ||
|
|
2c70dd51a1 | ||
|
|
1030574187 | ||
|
|
3976f128dc | ||
|
|
b843856976 | ||
|
|
af86cb2b83 | ||
|
|
344118c346 | ||
|
|
3ee8e3b18b | ||
|
|
56febb12b1 | ||
|
|
bcc8d3ee3d | ||
|
|
a1590fc74a | ||
|
|
5b36c5465d | ||
|
|
369e19def3 | ||
|
|
41c35cd59e | ||
|
|
d2226bd383 | ||
|
|
069161c638 | ||
|
|
7eac8fbbb4 | ||
|
|
306e34c64b | ||
|
|
86b8c8d859 | ||
|
|
f346412e27 | ||
|
|
a905c1492d | ||
|
|
0eaad8bf64 | ||
|
|
0469ef0e55 | ||
|
|
8c14361e6a | ||
|
|
c3dc0ae6b9 | ||
|
|
6ead328bb7 | ||
|
|
cfb9c991cb | ||
|
|
f53a0d29be | ||
|
|
ffd0da1457 | ||
|
|
f858949372 | ||
|
|
6814fe8fb3 | ||
|
|
58bac2571b | ||
|
|
74c8a2b7b6 | ||
|
|
b4c230f955 | ||
|
|
5c99477c1e | ||
|
|
2e241f56eb | ||
|
|
09d6e4ee30 | ||
|
|
ae14e8d3f0 | ||
|
|
0d8d71ff1c | ||
|
|
1ceb1eb256 | ||
|
|
54ad331c4c | ||
|
|
94492eaa5e | ||
|
|
9bb3853c80 | ||
|
|
6b9d5d786b | ||
|
|
83b0e46ccd | ||
|
|
4f722a00c0 | ||
|
|
0aefb1c0f2 | ||
|
|
3baadf976b | ||
|
|
8bd1c598de | ||
|
|
97bf92e9b9 | ||
|
|
00f356469e | ||
|
|
232560f8e9 | ||
|
|
d91e390690 | ||
|
|
00c1611c33 | ||
|
|
56d2923f1f | ||
|
|
7fc209f001 | ||
|
|
3c93761d1d | ||
|
|
09a7cc2b46 | ||
|
|
79dc467ded | ||
|
|
73172b1090 | ||
|
|
93b94c68b3 | ||
|
|
bdb402b068 | ||
|
|
180d1f0471 | ||
|
|
6507f6870e | ||
|
|
1df959fecd | ||
|
|
21f69d74f4 | ||
|
|
9e046c116f | ||
|
|
50ae431a48 | ||
|
|
e407c623e0 | ||
|
|
b03d9f313b | ||
|
|
d2a8e9fb5e | ||
|
|
ba672e775f | ||
|
|
1932bd35a5 | ||
|
|
099bb4071a | ||
|
|
61e24fcb13 | ||
|
|
0ba8ac4ed0 | ||
|
|
cd76926c74 | ||
|
|
6ae950673e | ||
|
|
4eb0f2a21b | ||
|
|
901bdf9692 | ||
|
|
6a77ab77b0 | ||
|
|
8027c300c3 | ||
|
|
b0c4600115 | ||
|
|
42ab90b19b | ||
|
|
ba4c4e528a | ||
|
|
16e4b9219a | ||
|
|
c21b35951a | ||
|
|
6eccdc8f93 | ||
|
|
0df33899eb | ||
|
|
96606dc36f | ||
|
|
c1cdd491a6 | ||
|
|
d8864a490b | ||
|
|
8eae5c0608 | ||
|
|
3ab752b7a0 | ||
|
|
ea9a5f42e0 | ||
|
|
4a8202514d | ||
|
|
31df2c0655 | ||
|
|
2826382970 | ||
|
|
2af87cdb70 | ||
|
|
521de2bc04 | ||
|
|
1a9aca2d8c | ||
|
|
15b271bd92 | ||
|
|
a5b3d71e59 | ||
|
|
4836a54847 | ||
|
|
18f8cfbef0 | ||
|
|
913a86bbec | ||
|
|
19a3736fe5 | ||
|
|
891a6c047a | ||
|
|
b670d5b6e2 | ||
|
|
8edafa3f39 | ||
|
|
0428e82b14 | ||
|
|
13411da449 | ||
|
|
8d26636fba | ||
|
|
c2f6ce7e54 | ||
|
|
f9f2938bd4 | ||
|
|
ab0debba02 | ||
|
|
1ca240b624 | ||
|
|
69598746bc | ||
|
|
2aa4797b12 | ||
|
|
117e1789c1 | ||
|
|
c43806b5db | ||
|
|
c1a009aed0 | ||
|
|
d7484ee840 | ||
|
|
c1d31edda1 | ||
|
|
ce53ed2a7c | ||
|
|
876cbc40b7 | ||
|
|
ab8bc3e21c | ||
|
|
cba58ed437 | ||
|
|
5f4f4fcc60 | ||
|
|
78c5dd95d8 | ||
|
|
9558a5fa08 | ||
|
|
533fe10738 | ||
|
|
80ad381eef | ||
|
|
b6644d7727 | ||
|
|
7711b2daae | ||
|
|
5da447a2b0 | ||
|
|
70d8951fb7 | ||
|
|
543f6058e5 | ||
|
|
75f4782fab | ||
|
|
a122ee75f6 | ||
|
|
6911ba12ad | ||
|
|
8c2223df5d | ||
|
|
8672a1d94c | ||
|
|
9ea7a4671a | ||
|
|
9bdf41d8ff | ||
|
|
266d4b3234 | ||
|
|
3c75356b49 | ||
|
|
3f8a92bc86 | ||
|
|
8caa861cc7 | ||
|
|
ad27713f0d | ||
|
|
6adf4919c7 | ||
|
|
4098ee927e | ||
|
|
ad1c9045af | ||
|
|
e0654fe409 | ||
|
|
80a555a232 | ||
|
|
64e231ae8d | ||
|
|
6a1c27ef93 | ||
|
|
5198cd25ef | ||
|
|
2927e211a7 | ||
|
|
4fd76524c9 | ||
|
|
910380559b | ||
|
|
4d8777d3a0 | ||
|
|
8d731f3b1b | ||
|
|
7333c550d2 | ||
|
|
58a167586e | ||
|
|
2e0cebc4f8 | ||
|
|
2762ff2def | ||
|
|
0ad8c67ab6 | ||
|
|
eed32aca77 | ||
|
|
a4eebd7ad6 | ||
|
|
c6326915ae | ||
|
|
20aff7320f | ||
|
|
49e1ae6e87 | ||
|
|
2683f950a7 | ||
|
|
56530ee61c | ||
|
|
62bbf406be | ||
|
|
feb1b2f349 | ||
|
|
c9791a280a | ||
|
|
6a48dd28f5 | ||
|
|
4a58930247 | ||
|
|
fa2d611652 | ||
|
|
b040db07f4 | ||
|
|
f353e5708d | ||
|
|
24325e4418 | ||
|
|
b5a22512be | ||
|
|
2e787dea47 | ||
|
|
ed4c5eb7bf | ||
|
|
b7bc060ad5 | ||
|
|
b09d5a0069 | ||
|
|
d2f0fbad45 | ||
|
|
00a0c6ee1a | ||
|
|
8fd8e4f3d9 | ||
|
|
7bb33497ae | ||
|
|
92122b2cdf | ||
|
|
3cb3eab118 | ||
|
|
2e0cd320c7 | ||
|
|
6e9fe1edd8 | ||
|
|
a8482984de | ||
|
|
14a49759ce | ||
|
|
2cb2f05ea9 | ||
|
|
9c7120ec91 | ||
|
|
ccc4326574 | ||
|
|
2abeb071fd | ||
|
|
5272eb7550 | ||
|
|
90d0c3d095 | ||
|
|
144424e04a | ||
|
|
7c88a4a8f1 | ||
|
|
4c14594ebb | ||
|
|
c0331ba2e2 | ||
|
|
0b33c85b8b | ||
|
|
5235592054 | ||
|
|
0e71813749 | ||
|
|
26845cbdc5 | ||
|
|
c1f01ce66a | ||
|
|
75a0e4bc9d | ||
|
|
bbc10cdfaf | ||
|
|
b7e63bf499 | ||
|
|
08ca794b7d | ||
|
|
0af28fb221 | ||
|
|
79bc887f95 | ||
|
|
889c80e900 | ||
|
|
a6d0efef83 | ||
|
|
6a93494506 | ||
|
|
02553d0c6b | ||
|
|
67dae229a9 | ||
|
|
6a689d29ce | ||
|
|
cc8cae770f | ||
|
|
8d1a2203ae | ||
|
|
01b19483c5 | ||
|
|
e15a56c988 | ||
|
|
f6ebc13342 | ||
|
|
99655c15e4 | ||
|
|
702db8925f | ||
|
|
6332ec7478 | ||
|
|
98af4f4a71 | ||
|
|
c211803076 | ||
|
|
19c13baa48 | ||
|
|
7b56945538 | ||
|
|
821f5bab18 | ||
|
|
6c0dadad3f | ||
|
|
bf6c6c231f | ||
|
|
1e5dd001fe | ||
|
|
28272f7a7a | ||
|
|
6c6d64f1bd | ||
|
|
3acba77070 | ||
|
|
5feeae8972 | ||
|
|
4b44288c96 | ||
|
|
8dd3daf625 | ||
|
|
4f75d92747 | ||
|
|
d2ff2825ca | ||
|
|
3672efa7da | ||
|
|
235cb649a6 | ||
|
|
741329a743 | ||
|
|
f4122a924a | ||
|
|
0b19fd29e6 | ||
|
|
41fcead710 | ||
|
|
7d2cab5d77 | ||
|
|
09f8a73751 | ||
|
|
e61b543da4 | ||
|
|
6d666389fb | ||
|
|
4d985ba8f8 | ||
|
|
9ba78bf085 | ||
|
|
8189062771 | ||
|
|
213ec1dfb0 | ||
|
|
d3bf372ba3 | ||
|
|
ef16770f5e | ||
|
|
856fe752de | ||
|
|
4f46032d32 | ||
|
|
b15460315e | ||
|
|
cf6d6bb9af | ||
|
|
bec6bd381f | ||
|
|
53cf700521 | ||
|
|
f73d60cba8 | ||
|
|
59eb749b2b | ||
|
|
e74e6cdd02 | ||
|
|
56fef61c66 | ||
|
|
01b402ba2b | ||
|
|
380ec2ac46 | ||
|
|
afc4e299a1 | ||
|
|
360005c1d5 | ||
|
|
a403e5f543 | ||
|
|
b2305ce5c7 | ||
|
|
30c2676d60 | ||
|
|
09597ca898 | ||
|
|
0223c23cfb | ||
|
|
173ecc800e | ||
|
|
121b5e045f | ||
|
|
6a86a1390a | ||
|
|
b604ec61f7 | ||
|
|
f8b0eab063 | ||
|
|
74527d97b9 | ||
|
|
012796d113 | ||
|
|
0286a336a1 | ||
|
|
f8ad2b556b | ||
|
|
63351f3fb6 | ||
|
|
6947efae27 | ||
|
|
a1f961ea2a | ||
|
|
5d82ecfed5 | ||
|
|
4b4e9cab8b | ||
|
|
4ed19b518b | ||
|
|
23903e7e8d | ||
|
|
72af00ecc1 | ||
|
|
bcdc4c9ed6 | ||
|
|
69c780fddb | ||
|
|
3d46a62f71 | ||
|
|
4258db3888 | ||
|
|
703ed83fd8 | ||
|
|
9dc97807a0 | ||
|
|
3ed62e334f | ||
|
|
79d82da9b2 | ||
|
|
31919965a1 | ||
|
|
03221e990f | ||
|
|
05a0d0105b | ||
|
|
8aa129395f | ||
|
|
4a23ed7716 | ||
|
|
7db7726f05 | ||
|
|
3d3a989932 | ||
|
|
57f3bce8e3 | ||
|
|
a9f050f367 | ||
|
|
726cb770d0 | ||
|
|
deeb9dcb15 | ||
|
|
b7f1995948 | ||
|
|
ffa3996a5e | ||
|
|
a5e89315ae | ||
|
|
b21439968e | ||
|
|
1a8f6dbed8 | ||
|
|
6c9b544240 | ||
|
|
01a1767f61 | ||
|
|
039274f718 | ||
|
|
365159c11a | ||
|
|
743444310a | ||
|
|
9d8e2828af | ||
|
|
cf6e4d341c | ||
|
|
8e58da2be1 | ||
|
|
5f9d68f3ad | ||
|
|
9b7fb01e52 | ||
|
|
39a9703606 | ||
|
|
74f14a0b71 | ||
|
|
fcf60e35a3 | ||
|
|
ce1ac07fbe | ||
|
|
d879b254d6 | ||
|
|
3d7cd57371 | ||
|
|
848e6e6efa | ||
|
|
d5a790e25b | ||
|
|
d60ce6edde | ||
|
|
55d6711a80 | ||
|
|
075381b7c6 | ||
|
|
8b3b1fbc2c | ||
|
|
b11f18c553 | ||
|
|
54192afe56 | ||
|
|
4b7875376b | ||
|
|
0390bd3ff9 | ||
|
|
94cbaed655 | ||
|
|
f21ba616cd | ||
|
|
92c997b9a7 | ||
|
|
96b1ca97dc | ||
|
|
ed767b8286 | ||
|
|
3b74c0733f | ||
|
|
e4f315188b | ||
|
|
646bc7db23 | ||
|
|
9161af293a | ||
|
|
aeabf0447d | ||
|
|
a7ca56cf4e | ||
|
|
d39c3b3776 | ||
|
|
a0eab5a371 | ||
|
|
1510d8773b | ||
|
|
248e926a82 | ||
|
|
cf0cc4fa8d | ||
|
|
7879876ba1 | ||
|
|
923130ffdb | ||
|
|
b8921920c2 | ||
|
|
6436235f41 | ||
|
|
9c8ab2bf3b | ||
|
|
f7a393ffdb | ||
|
|
223de97d8c | ||
|
|
bd6b2166ce | ||
|
|
379d3c2008 | ||
|
|
460b17e23b | ||
|
|
36e227d24d | ||
|
|
842922f018 | ||
|
|
8c380ebe94 | ||
|
|
6e0115c2e1 | ||
|
|
7e0849b44e | ||
|
|
2715d9a0e1 | ||
|
|
3224401479 | ||
|
|
3dfd907245 | ||
|
|
d1755a46f9 | ||
|
|
95658063af | ||
|
|
139660d206 | ||
|
|
bf90843f25 | ||
|
|
0812cd30b2 | ||
|
|
14b37a68b2 | ||
|
|
d36396f35b | ||
|
|
2b0b5b02b5 | ||
|
|
81e2736145 | ||
|
|
9a02e23dc7 | ||
|
|
0b2827836d | ||
|
|
fcbcb6b5a8 | ||
|
|
3b4183f4dd | ||
|
|
160d6c319c | ||
|
|
2b25c14374 | ||
|
|
c93eb07213 | ||
|
|
a91a4af053 | ||
|
|
1d41944182 | ||
|
|
8148c9b5a9 | ||
|
|
681b1cd069 | ||
|
|
a881816673 | ||
|
|
ecf38cd30a | ||
|
|
653423145b | ||
|
|
115a8e5ea2 | ||
|
|
b65741d625 | ||
|
|
ed2cef5eb0 | ||
|
|
632627b2d5 | ||
|
|
6d967d71b2 | ||
|
|
b8bd0b9f3e | ||
|
|
e403860e61 | ||
|
|
cc7fc099bd | ||
|
|
4cf98867a0 | ||
|
|
a0036d10fc | ||
|
|
6ea91ee760 | ||
|
|
9af8af7fe1 | ||
|
|
6d36889fe1 | ||
|
|
b7ad1b454d | ||
|
|
3859646e13 | ||
|
|
5c3e64bd0b | ||
|
|
e52d5ab579 | ||
|
|
990d80e5b9 | ||
|
|
d8ef0991fb | ||
|
|
729db7fa98 | ||
|
|
039faf02f1 | ||
|
|
9abe245026 | ||
|
|
30b376f4e3 | ||
|
|
ecd324dd1c | ||
|
|
47c1031dc7 | ||
|
|
2a163db3ad | ||
|
|
0b8ddb6173 | ||
|
|
a3356ad208 | ||
|
|
b48c6dd7f8 | ||
|
|
0770578d49 | ||
|
|
0bb2738d36 | ||
|
|
60847e2791 | ||
|
|
bda6d4f75a | ||
|
|
f027c15e37 | ||
|
|
5da3ab440f | ||
|
|
cdc7e36d5c | ||
|
|
df8c4c168a | ||
|
|
01c6269365 | ||
|
|
ba014e873b | ||
|
|
78948d38ec | ||
|
|
d7330c7c2b | ||
|
|
b35444e188 | ||
|
|
5d4ed946cb | ||
|
|
dac9ff6c13 | ||
|
|
8b46e1c202 | ||
|
|
899614fece | ||
|
|
5d6e105d03 | ||
|
|
b718a2eba1 | ||
|
|
d69d52f1df | ||
|
|
a47a55bfee | ||
|
|
e6c240d363 | ||
|
|
12c1d10246 | ||
|
|
f6e9dcbc01 | ||
|
|
f0a56af7fa | ||
|
|
2cbd058dc2 | ||
|
|
c40a63ecec | ||
|
|
ec747892c9 | ||
|
|
ca8517a1b0 | ||
|
|
5a8a13639b | ||
|
|
e7d0afdc50 | ||
|
|
730026c87a | ||
|
|
295271ec8b | ||
|
|
4f6aff4bd1 | ||
|
|
198059e76c | ||
|
|
fab79f2840 | ||
|
|
70d2453bbc | ||
|
|
ab55a9405c | ||
|
|
798be4589a | ||
|
|
ceaf2d4153 | ||
|
|
949b55f31a | ||
|
|
798e0c3e78 | ||
|
|
d4d5b1b55a | ||
|
|
b1519ef58f | ||
|
|
8d845e4563 | ||
|
|
181c59b30f | ||
|
|
cf8c82c451 | ||
|
|
6d8b050eda | ||
|
|
0bc400a3ae | ||
|
|
7f05a224be | ||
|
|
ef0300d239 | ||
|
|
467e973da2 | ||
|
|
ba3beeddeb | ||
|
|
2f9ca172e3 | ||
|
|
7ff785d71f | ||
|
|
418a98c299 | ||
|
|
ef97bd3cbe | ||
|
|
c81d7666a9 | ||
|
|
62ab6b7026 | ||
|
|
8dad9468d5 | ||
|
|
8938cbfc6e | ||
|
|
0ea0416733 | ||
|
|
05457b41e4 | ||
|
|
bde889c338 | ||
|
|
528636c814 | ||
|
|
373f61459a | ||
|
|
305bf7273c | ||
|
|
17dbb4105d | ||
|
|
71b072b50c | ||
|
|
1db05ed2c6 | ||
|
|
20c4121f25 | ||
|
|
e817f1c381 | ||
|
|
6db3c0c6bc | ||
|
|
9bcd2ecd9b | ||
|
|
4357a1e9d2 | ||
|
|
bbece015e0 | ||
|
|
78f8835cac | ||
|
|
03196fa110 | ||
|
|
06d44550d9 | ||
|
|
3d41590090 | ||
|
|
8decc8052e | ||
|
|
303313669a | ||
|
|
ed057594f5 | ||
|
|
1d3ee57a02 | ||
|
|
0d4ead8fbd | ||
|
|
4b5e7d90d6 | ||
|
|
c93d164785 | ||
|
|
83e4bcc35a | ||
|
|
64799b7b10 | ||
|
|
3b83604fb7 | ||
|
|
03f242618c | ||
|
|
fd90567f0e | ||
|
|
cdcff2faef | ||
|
|
3f04d6dd46 | ||
|
|
5f7a139cff | ||
|
|
bf41cc43a1 | ||
|
|
ba0051967c | ||
|
|
6ccbc16e74 | ||
|
|
8cdb8aafac | ||
|
|
f309844ee0 | ||
|
|
a6139b01ce | ||
|
|
7ac189aa2a | ||
|
|
f18f1f54e0 | ||
|
|
83d85ec0e2 | ||
|
|
3ab0a26e1d | ||
|
|
e31fbb061a | ||
|
|
ba8dd58dee | ||
|
|
e8cbce6e1d | ||
|
|
ab2fcaf4ab | ||
|
|
8a58fc1ca7 | ||
|
|
807bec14b1 | ||
|
|
8ba938cec1 | ||
|
|
11070c9e5e | ||
|
|
060a488ae9 | ||
|
|
d3d483e60f | ||
|
|
514fd244fa | ||
|
|
c8a779da3f | ||
|
|
6a91588f52 | ||
|
|
e0797131ec | ||
|
|
9e42e00ead | ||
|
|
d638b9b1a4 | ||
|
|
d5339f8270 | ||
|
|
68eb196645 | ||
|
|
2929955a3c | ||
|
|
915304b986 | ||
|
|
cf9b09042e | ||
|
|
54f63e06ec | ||
|
|
e909818f65 | ||
|
|
e4ed15ba23 | ||
|
|
8275140fe6 | ||
|
|
4f6c98dc0d | ||
|
|
21abcb56fd | ||
|
|
fb6070f29d | ||
|
|
de4b086083 | ||
|
|
7c013c0534 | ||
|
|
23ca7e7b48 | ||
|
|
c4709a5b6b | ||
|
|
276feac73f | ||
|
|
0d456aa550 | ||
|
|
c673b53e21 | ||
|
|
51bb9c0a0a | ||
|
|
217bfac2fc | ||
|
|
603a86dbe6 | ||
|
|
7c5111e29f | ||
|
|
63403bbae2 | ||
|
|
7c63bf7574 | ||
|
|
0ae78dfcdd | ||
|
|
97d5b8b6f6 | ||
|
|
33daa960cf | ||
|
|
5dddb075ac | ||
|
|
6d1a5c71e6 | ||
|
|
50bee67748 | ||
|
|
3005f6cd9a | ||
|
|
fb8f59fa1d | ||
|
|
1d17206e23 | ||
|
|
548d370ab9 | ||
|
|
5efbd36bb8 | ||
|
|
1afa3f7ef3 | ||
|
|
3d3db9f5b0 | ||
|
|
e3f95a326b | ||
|
|
988b9cf155 | ||
|
|
a86aeface5 | ||
|
|
5f9b300ab2 | ||
|
|
a7715704f8 | ||
|
|
98c51d13a1 | ||
|
|
b9966a50d9 | ||
|
|
9648da951a | ||
|
|
8ffee678c6 | ||
|
|
e1cb69d046 | ||
|
|
b60e6042a5 | ||
|
|
96db11a0d6 | ||
|
|
b12d43b765 | ||
|
|
a89a67d103 | ||
|
|
9656331618 | ||
|
|
a8dcec0dad | ||
|
|
d73832a5dd | ||
|
|
a27aa0336a | ||
|
|
887f6a20fc | ||
|
|
786dbfe0c3 | ||
|
|
374e96bb7d | ||
|
|
c9d23a9d1d | ||
|
|
6bfa383cea | ||
|
|
bf721d7a5f | ||
|
|
7077d588c7 | ||
|
|
75ece9b697 | ||
|
|
a57dbe446e | ||
|
|
9b377e6f80 | ||
|
|
1736a8a7c2 | ||
|
|
7414e6d4df | ||
|
|
e7ef923729 | ||
|
|
c157ca9879 | ||
|
|
4965215c8d | ||
|
|
379e8d2a6a | ||
|
|
42c69b076a | ||
|
|
d13017a7fe | ||
|
|
0e3cbb4911 | ||
|
|
f544aa8eb6 | ||
|
|
e5f9af3b43 | ||
|
|
43c4381820 | ||
|
|
1559ee6293 | ||
|
|
34abaa7e27 | ||
|
|
3108f07a4b | ||
|
|
c3b59a9dba | ||
|
|
3269f751cd | ||
|
|
2987a46322 | ||
|
|
fb018ec170 | ||
|
|
85fc0a2dd3 | ||
|
|
83ff6fb8bf | ||
|
|
70cdd26855 | ||
|
|
0a7e258c1a | ||
|
|
f88a916ccc | ||
|
|
6cb9ad12f1 | ||
|
|
5bf16e7e0e | ||
|
|
7b99f0b0bb | ||
|
|
c87683596a | ||
|
|
9bef2aaec6 | ||
|
|
286fd796e7 | ||
|
|
0d73a58123 | ||
|
|
9042009b0b | ||
|
|
8eba6e18ff | ||
|
|
4422a03ae9 | ||
|
|
12112e70bc | ||
|
|
be43e49869 | ||
|
|
00970a4b12 | ||
|
|
94c2d7a4e3 | ||
|
|
4883383b20 | ||
|
|
70f93a48f5 | ||
|
|
7189026335 | ||
|
|
b079b46681 | ||
|
|
1a40fae003 | ||
|
|
f4ffd29bbc | ||
|
|
b299604932 | ||
|
|
6bb605f8ce | ||
|
|
c1e8cbf3fd | ||
|
|
2443a702c9 | ||
|
|
744ef8138e | ||
|
|
b3151c563f | ||
|
|
fb9728d570 | ||
|
|
c144611609 | ||
|
|
95da39ba88 | ||
|
|
db14ca964b | ||
|
|
e3ca293eee | ||
|
|
58da27fa91 | ||
|
|
88a6860913 | ||
|
|
c9909467f9 | ||
|
|
27e61eb808 | ||
|
|
16b34c6e4d | ||
|
|
6b120a3b09 | ||
|
|
c31b60c7b7 | ||
|
|
d1c75dc57b | ||
|
|
52d97b9329 | ||
|
|
294df5d1d4 | ||
|
|
344b624efc | ||
|
|
1e324a7314 | ||
|
|
6e4d32b941 | ||
|
|
22cf19dcef | ||
|
|
7787845479 | ||
|
|
ef29ed149d | ||
|
|
a830d6b511 | ||
|
|
f8d4d9397e | ||
|
|
5ba6e3225b | ||
|
|
ec4b8b8f5e | ||
|
|
45e7913435 | ||
|
|
f5ca3ed2a1 | ||
|
|
7c6541e513 | ||
|
|
5431257470 | ||
|
|
5793d5271c | ||
|
|
3ccb2956f3 | ||
|
|
d32f195557 | ||
|
|
096a26b07d | ||
|
|
f426c44811 | ||
|
|
9f71be6fef | ||
|
|
002e5cd9de | ||
|
|
e436ea275a | ||
|
|
3084469d83 | ||
|
|
64bd2f9c84 | ||
|
|
c353182353 | ||
|
|
538422e2a9 | ||
|
|
74cda02368 | ||
|
|
f02b03172a | ||
|
|
21e7c46033 | ||
|
|
f5dff83595 | ||
|
|
175db7baa3 | ||
|
|
a6aa441edc | ||
|
|
ae84992f25 | ||
|
|
8ec1c74baf | ||
|
|
84beb9b23e | ||
|
|
fda8370255 | ||
|
|
7c0939ad52 | ||
|
|
01f3192957 | ||
|
|
9961dadee7 | ||
|
|
585b7f963d | ||
|
|
bb439a9761 | ||
|
|
8762629276 | ||
|
|
adafe96924 | ||
|
|
6de2934394 | ||
|
|
f633f476c8 | ||
|
|
11d7f53854 | ||
|
|
763e2f5bab | ||
|
|
bf769ee398 | ||
|
|
23940bff81 | ||
|
|
c52f28efa4 | ||
|
|
81a16e5a28 | ||
|
|
8d75af8457 | ||
|
|
aaa7c81f99 | ||
|
|
385c3c1c01 | ||
|
|
c323656037 | ||
|
|
0a48658a9a | ||
|
|
46a90ec97f | ||
|
|
d1d3c43939 | ||
|
|
34fac96ef6 | ||
|
|
c1441b1331 | ||
|
|
6d73b266d5 | ||
|
|
6947d3dea2 | ||
|
|
2aa2dcc71b | ||
|
|
09c46a3381 | ||
|
|
6d9a2cc699 | ||
|
|
760deb66c5 | ||
|
|
e0469ae1ed | ||
|
|
4039ccbcca | ||
|
|
0c465f7eb3 | ||
|
|
1bef579b82 | ||
|
|
702ab672bb | ||
|
|
7d50c4a742 | ||
|
|
139cc3c93d | ||
|
|
3b83d8b825 | ||
|
|
8c0ba4de9f | ||
|
|
ee36c66572 | ||
|
|
4a673397b3 | ||
|
|
a5bb1ead68 | ||
|
|
558f75672f | ||
|
|
7987917d85 | ||
|
|
1c033e2afe | ||
|
|
169522cbe8 | ||
|
|
7c607abfe6 | ||
|
|
6f560ef210 | ||
|
|
71111b0d2f | ||
|
|
8bd984ff81 | ||
|
|
2276432745 | ||
|
|
ff0952d66a | ||
|
|
bcde0aefbd | ||
|
|
acc39a4bc0 | ||
|
|
c541227483 | ||
|
|
a09ec4d976 | ||
|
|
a0dc2b5cfc | ||
|
|
7e9ecdf394 | ||
|
|
ce67472dc4 | ||
|
|
f88da8b0c3 | ||
|
|
d573cc06da | ||
|
|
17dd089b5a | ||
|
|
eb013ab6ec | ||
|
|
d7711d729f | ||
|
|
375eb55d33 | ||
|
|
6e52c591e5 | ||
|
|
c5bf29cb8c | ||
|
|
2aa85347ee | ||
|
|
75432346de | ||
|
|
98c328f93f | ||
|
|
3f7a070397 | ||
|
|
b27066b508 | ||
|
|
5cfc773b7b | ||
|
|
2da05bfa6c | ||
|
|
9050a242e6 | ||
|
|
022fccf0d7 | ||
|
|
adbe4d44f4 | ||
|
|
79a286fe1a | ||
|
|
2f5be8f695 | ||
|
|
e8e596e4c9 | ||
|
|
7b09a22a5c | ||
|
|
c9434492b8 | ||
|
|
1bd56fb190 | ||
|
|
25d4c4f829 | ||
|
|
175f603678 | ||
|
|
df57ecd786 | ||
|
|
58cd56a439 | ||
|
|
b1a9904ea5 | ||
|
|
43d1659200 | ||
|
|
8f9fbc3a79 | ||
|
|
bf97209c9b | ||
|
|
2961ad5ee1 | ||
|
|
4f7eb77071 | ||
|
|
ecab4d53d2 | ||
|
|
4e7f25a539 | ||
|
|
5e47048369 | ||
|
|
a6c5a1ba69 | ||
|
|
7b26dc5ebf | ||
|
|
1070064f89 | ||
|
|
88b354b57e | ||
|
|
4b7ca736d6 | ||
|
|
18ea2371a4 | ||
|
|
78e6c236c7 | ||
|
|
22be2629e0 | ||
|
|
7fc4ba7c1c | ||
|
|
33fe146a57 | ||
|
|
a2739ab0c1 | ||
|
|
bc309cebe6 | ||
|
|
cc937a97ef | ||
|
|
02f8840ac7 | ||
|
|
1c56a30d35 | ||
|
|
b0a741233f | ||
|
|
b29a5896a4 | ||
|
|
dbb81055f2 | ||
|
|
465fcf93a7 | ||
|
|
65b0aa8e99 | ||
|
|
90a8009d43 | ||
|
|
b1ebb142c4 | ||
|
|
ee2c7bed92 | ||
|
|
d4433fabd4 | ||
|
|
10d2911af2 | ||
|
|
b8d5dfdd05 | ||
|
|
c778233223 | ||
|
|
614f9b8705 | ||
|
|
26cb315845 | ||
|
|
e1bc60b7eb | ||
|
|
a88adc2a27 | ||
|
|
aa54a477d8 | ||
|
|
c69ce4c921 | ||
|
|
b77e430df5 | ||
|
|
a64907d84b | ||
|
|
bc98c788fe | ||
|
|
59370e03db | ||
|
|
16d1e71d6e | ||
|
|
111438361d | ||
|
|
113afc0d0f | ||
|
|
21962da715 | ||
|
|
d731918197 | ||
|
|
e143833ee1 | ||
|
|
ee11aca464 | ||
|
|
71e763d9b3 | ||
|
|
02a827da38 | ||
|
|
2d32ea68fe | ||
|
|
66c60e65aa | ||
|
|
b15787053a | ||
|
|
b38d2e8d84 | ||
|
|
9fcf3795ee | ||
|
|
073902f83e | ||
|
|
c7952d57d8 | ||
|
|
e114c01ce2 | ||
|
|
1e473e59f4 | ||
|
|
3e3250ea5f | ||
|
|
a484e42d42 | ||
|
|
c2613c00f1 | ||
|
|
90e60560c7 | ||
|
|
9edf2a7624 | ||
|
|
fb956e2427 | ||
|
|
4e1089ec49 | ||
|
|
2c650b5bc7 | ||
|
|
fcf3b50f69 | ||
|
|
88a3b4593d | ||
|
|
b6a6528526 | ||
|
|
01d937ca0b | ||
|
|
60a9d7e6cf | ||
|
|
ae160efa16 | ||
|
|
33cf554f06 | ||
|
|
200a6138ef | ||
|
|
4adb492e29 | ||
|
|
698d0b4b49 | ||
|
|
f7742c692d | ||
|
|
b8b344c6e1 | ||
|
|
4d73794100 | ||
|
|
913659325b | ||
|
|
d19f8f51ea | ||
|
|
8e4c366f0b | ||
|
|
7b01a33b3f | ||
|
|
11a34e5bc3 | ||
|
|
2c5973be22 | ||
|
|
597d295743 | ||
|
|
62edabe9dd | ||
|
|
890bb9838c | ||
|
|
87804374c5 | ||
|
|
26ac455fb9 | ||
|
|
9298e567d0 | ||
|
|
c3c54f672c | ||
|
|
feb45f6645 | ||
|
|
887083b7f5 | ||
|
|
c061fb1681 | ||
|
|
8dd59a5d9e | ||
|
|
cc457fade2 | ||
|
|
d72c449b13 | ||
|
|
d70bcfdfff | ||
|
|
6d15c23231 | ||
|
|
0397dd0a40 | ||
|
|
dd988ba449 | ||
|
|
a46038acbf | ||
|
|
3f29295380 | ||
|
|
3c77dc7930 | ||
|
|
13493916e2 | ||
|
|
0acd3bfc66 | ||
|
|
3d9a6a41db | ||
|
|
7d7f15bdf1 | ||
|
|
5c88e680a6 | ||
|
|
fdde5856b8 | ||
|
|
949098bbc5 | ||
|
|
4042852825 | ||
|
|
71a93e8cc3 | ||
|
|
d75f2c62ca | ||
|
|
dd87afcbde | ||
|
|
f5cc40af0c | ||
|
|
25a280c818 | ||
|
|
19fe8e8954 | ||
|
|
9d5135daff | ||
|
|
3a847243bc | ||
|
|
a9fb8da642 | ||
|
|
7e7c2b746c | ||
|
|
42d3876d22 | ||
|
|
0f7411d03a | ||
|
|
d61931e69d | ||
|
|
75c7c7473a | ||
|
|
c8e62ba5e8 | ||
|
|
1faeca6e1b | ||
|
|
0fddc8ed60 | ||
|
|
9d1b14effa | ||
|
|
0154018363 | ||
|
|
b904555ebf | ||
|
|
14d3510d8e | ||
|
|
11cfbd1ec8 | ||
|
|
389affd904 | ||
|
|
6d09bebf14 | ||
|
|
b0df852944 | ||
|
|
6836a7b7c5 | ||
|
|
14dabf523a | ||
|
|
809e1b3aff | ||
|
|
a9de06d6f2 | ||
|
|
08f096df24 | ||
|
|
4a382bc1de | ||
|
|
6f71f1113a | ||
|
|
c24625fae8 | ||
|
|
a35159c220 | ||
|
|
2d2fac5045 | ||
|
|
c35f258ab8 | ||
|
|
702e4f39ab | ||
|
|
56875ed9a7 | ||
|
|
1e09034e23 | ||
|
|
8a86571068 | ||
|
|
37708b0e79 | ||
|
|
14ae52f88f | ||
|
|
8584702fd7 | ||
|
|
ed9cb357b5 | ||
|
|
34a1d9eba4 | ||
|
|
357df80642 | ||
|
|
1a02152d03 | ||
|
|
ab609bc294 | ||
|
|
e6935f2a9d | ||
|
|
5b97ddc842 | ||
|
|
7ab888bb98 | ||
|
|
b135c8e792 | ||
|
|
edda4e5508 | ||
|
|
ed055cbdf6 | ||
|
|
cf41c98d66 | ||
|
|
73deff8863 | ||
|
|
4c2e997997 | ||
|
|
ade84ccb9c | ||
|
|
bcdb9cb13c | ||
|
|
afad5e4407 | ||
|
|
962d809ad7 | ||
|
|
3c73123a81 | ||
|
|
f3f3e56c63 | ||
|
|
b2a7bb0696 | ||
|
|
c0db3d541e | ||
|
|
50e0521bf7 | ||
|
|
ebd09a1981 | ||
|
|
6bc63b7734 | ||
|
|
f6eb79e1e5 | ||
|
|
d195de502e | ||
|
|
ec356626fa | ||
|
|
b1674711a1 | ||
|
|
9ceae3a3b2 | ||
|
|
ded9b121ba | ||
|
|
534fe2fb26 | ||
|
|
3cbc68f07a | ||
|
|
26da5f564b | ||
|
|
1ad9bb8caf | ||
|
|
5a92adaefc | ||
|
|
c489c956e7 | ||
|
|
afd41aade1 | ||
|
|
fee6f12684 | ||
|
|
4265b9c28e | ||
|
|
95e653cf76 | ||
|
|
29fa68118d | ||
|
|
4625d6f17c | ||
|
|
dd4f873439 | ||
|
|
4984e9e414 | ||
|
|
3e53e69827 | ||
|
|
8c54c14742 | ||
|
|
e180266c1a | ||
|
|
751cf23410 | ||
|
|
cd8e76bbcd | ||
|
|
2d78e23d25 | ||
|
|
9d6f51484a | ||
|
|
9a77dbec56 | ||
|
|
a83e421d71 | ||
|
|
2c784d3fea | ||
|
|
c736c3f3f0 | ||
|
|
e0782966d4 | ||
|
|
ed34dfa1c6 | ||
|
|
962a7b1ba7 | ||
|
|
2e05489a82 | ||
|
|
ff28c23f64 | ||
|
|
3721a71eab | ||
|
|
6846e808cf | ||
|
|
2f0adf73c7 | ||
|
|
35674a306b | ||
|
|
fb2bff6c4d | ||
|
|
12d70a3c32 | ||
|
|
f9b6d22534 | ||
|
|
c63089a929 | ||
|
|
ebcc317816 | ||
|
|
603421bd8c | ||
|
|
6aa7f2e261 | ||
|
|
1bd42af688 | ||
|
|
398a468fd7 | ||
|
|
90b49926ea | ||
|
|
7caf2bd2ff | ||
|
|
3446b38a06 | ||
|
|
22be06174a | ||
|
|
6bfa591e92 | ||
|
|
4573046df8 | ||
|
|
fe05c678c4 | ||
|
|
5d4dae5fa8 | ||
|
|
89e1620883 | ||
|
|
4fd0ce3eb5 | ||
|
|
28723949c4 | ||
|
|
cbab316607 | ||
|
|
19a5f02d66 | ||
|
|
754fffac6b | ||
|
|
289fbe56be | ||
|
|
c31052848a | ||
|
|
a8651a2861 | ||
|
|
76a5c444fa | ||
|
|
da44d70bf2 | ||
|
|
e702cdedc3 | ||
|
|
67eb679435 | ||
|
|
ed3cd21f5c | ||
|
|
d3dcc1d27d | ||
|
|
e6f078eeb7 | ||
|
|
097632fb7a | ||
|
|
834c2efb8b | ||
|
|
1cb8b0e369 | ||
|
|
100a46d7af | ||
|
|
b0371b3465 | ||
|
|
872987f002 | ||
|
|
51d8b18f3e | ||
|
|
92a25af3c3 | ||
|
|
ce80586822 | ||
|
|
fee4a5a8f7 | ||
|
|
a15312e052 | ||
|
|
d23bc9f58a | ||
|
|
35a93e6eef | ||
|
|
a5b77aa228 | ||
|
|
3612814a18 | ||
|
|
1165e25f00 | ||
|
|
64fe987fb5 | ||
|
|
c8ea167a06 | ||
|
|
653af9a5cd | ||
|
|
16d1c938bf | ||
|
|
1074af905c | ||
|
|
786f3568c0 | ||
|
|
830dbc7a71 | ||
|
|
686c05d20c | ||
|
|
4b786fb77e | ||
|
|
16b8fa4715 | ||
|
|
39055ff701 | ||
|
|
cbc0231461 | ||
|
|
1ceacc6555 | ||
|
|
ae04fc70eb | ||
|
|
acd6445d3b | ||
|
|
7a89789a28 | ||
|
|
63eeb86bc7 | ||
|
|
1e6fe92b44 | ||
|
|
c014491f55 | ||
|
|
5e384ccc43 | ||
|
|
3fce83eb79 | ||
|
|
3f6092d95c | ||
|
|
87f8f1d9c4 | ||
|
|
eb4d0bb737 | ||
|
|
b9498826fd | ||
|
|
2617eccb46 | ||
|
|
aef18f6b2f | ||
|
|
aad9f6be28 | ||
|
|
9fb14704c3 | ||
|
|
1ad17878e3 | ||
|
|
391c32654b | ||
|
|
74023e43ce | ||
|
|
c470748e3f | ||
|
|
84abb53712 | ||
|
|
46eec3f568 | ||
|
|
007e29425d | ||
|
|
41c316d612 | ||
|
|
39e9dd0ab0 | ||
|
|
a989c8adcc | ||
|
|
5f041a22e5 | ||
|
|
ecabcbc58a | ||
|
|
c002684233 | ||
|
|
a4ebbeabd2 | ||
|
|
7db8d5aa82 | ||
|
|
7981cb832e | ||
|
|
c27494ac39 | ||
|
|
f37d00a8ba | ||
|
|
11ecb54576 | ||
|
|
8d60c0ff21 | ||
|
|
a1e62c3e76 | ||
|
|
16a3f4c06a | ||
|
|
b5964b9795 | ||
|
|
eef4574a63 | ||
|
|
e3930a30c0 | ||
|
|
36114de5f7 | ||
|
|
1fd4839bb6 | ||
|
|
a7ab4b9c32 | ||
|
|
51f6dcffa4 | ||
|
|
ab236f3763 | ||
|
|
81e4e94adf | ||
|
|
5655be1b8f | ||
|
|
61067b0984 | ||
|
|
dc8b0b02d8 | ||
|
|
d9e4a60010 | ||
|
|
9e8e5d8ae9 | ||
|
|
bae0baa42f | ||
|
|
027ea9ea36 | ||
|
|
4f50ef9b54 | ||
|
|
a11fcfc72d | ||
|
|
cb0cf7b9e2 | ||
|
|
95737958ad | ||
|
|
f9f67e6d54 | ||
|
|
dd182ab179 | ||
|
|
fc043da9c6 | ||
|
|
f1a972607a | ||
|
|
4b7b0ad6b9 | ||
|
|
ba6b56445d | ||
|
|
be15c5ff4a | ||
|
|
957a89f2b3 | ||
|
|
08a5adf18e | ||
|
|
3a82b3aa3c | ||
|
|
d73d007797 | ||
|
|
3fd5f15e7f | ||
|
|
1f9fd4c42a | ||
|
|
c539cfa5ae | ||
|
|
48e4de1213 | ||
|
|
18ea59051a | ||
|
|
34517ec43e | ||
|
|
9aae348cae | ||
|
|
634e841ce8 | ||
|
|
924520a9a7 | ||
|
|
0d40e57cc8 | ||
|
|
321a56d934 | ||
|
|
22aba527b7 | ||
|
|
6103de1754 | ||
|
|
8799e1112b | ||
|
|
01d178a1f3 | ||
|
|
685ed6bfad | ||
|
|
d337222cbe | ||
|
|
81efe25a6e | ||
|
|
781794f699 | ||
|
|
bfffaf5b53 | ||
|
|
0789cbdefa | ||
|
|
d289545bf8 | ||
|
|
e8b468b492 | ||
|
|
e6db0842d4 | ||
|
|
4b3d6e7332 | ||
|
|
d3c994c403 | ||
|
|
4397e2cff5 | ||
|
|
8a3557bc97 | ||
|
|
b757544ede | ||
|
|
e9454b629b | ||
|
|
34539cda17 | ||
|
|
85f437ee22 | ||
|
|
14af1fe022 | ||
|
|
686fd208dc | ||
|
|
cfb974dc1f | ||
|
|
1ea99d119b | ||
|
|
843fa3eecc | ||
|
|
3959827fd4 | ||
|
|
d0c466ccc0 | ||
|
|
0b15fc3807 | ||
|
|
4d99a454fd | ||
|
|
3452fbc351 | ||
|
|
8c04947aa2 | ||
|
|
c85e1305c0 | ||
|
|
5dfa2fd24c | ||
|
|
71ed7f8e94 | ||
|
|
4636444464 | ||
|
|
e7bf9b4df2 | ||
|
|
f224a8ec57 | ||
|
|
4a47644e64 | ||
|
|
7af56e8717 | ||
|
|
526f728f89 | ||
|
|
7de861bb4c | ||
|
|
4e068ba593 | ||
|
|
0d68fb409c | ||
|
|
b77f41949c | ||
|
|
1d35110a98 | ||
|
|
e5738ec703 | ||
|
|
942f024db9 | ||
|
|
a640dfecf8 | ||
|
|
4fa617b772 | ||
|
|
4b95efda49 | ||
|
|
f6a363e7d2 | ||
|
|
d2549b3b1a | ||
|
|
1bae3d19ee | ||
|
|
d1df26cc83 | ||
|
|
66756853a6 | ||
|
|
00d9c60515 | ||
|
|
e243ca47ba | ||
|
|
941652ec57 | ||
|
|
7eeb60e17e | ||
|
|
c8ce5e6ed4 | ||
|
|
1e89197349 | ||
|
|
b57f4ce848 | ||
|
|
48e80adccc | ||
|
|
d511d76a1b | ||
|
|
0049b19994 | ||
|
|
56ad7ece69 | ||
|
|
b48103196f | ||
|
|
4d5e096437 | ||
|
|
e5ceef3422 | ||
|
|
18fbe364f2 | ||
|
|
c9ffe4ab4d | ||
|
|
0a44c75b20 | ||
|
|
82ecc8e73f | ||
|
|
e2a7d5f3f4 | ||
|
|
5994c26de3 | ||
|
|
a7b60bf2a6 | ||
|
|
f4e738a9ef | ||
|
|
13fe87259f | ||
|
|
d55652deff | ||
|
|
4b363472dd | ||
|
|
bf78ace9e2 | ||
|
|
cf4b537c37 | ||
|
|
305d5bcc83 | ||
|
|
d65dfe1958 | ||
|
|
895694c624 | ||
|
|
3edbf8f538 | ||
|
|
2a0a54a224 | ||
|
|
35e74c07d1 | ||
|
|
f6a38352e8 | ||
|
|
76ed466eb4 | ||
|
|
f7e0338a75 | ||
|
|
ca62254ee7 | ||
|
|
a6bfc27530 | ||
|
|
40cc78489a | ||
|
|
5ef6adb9ea | ||
|
|
eef8c0ffa7 | ||
|
|
528d29b82d | ||
|
|
5c00a403f6 | ||
|
|
c9e3f20314 | ||
|
|
0084443ed7 | ||
|
|
b84f14386c | ||
|
|
111750c420 | ||
|
|
2832160891 | ||
|
|
531ba24e9a | ||
|
|
4d56bb4e44 | ||
|
|
92bed4a081 | ||
|
|
bcadbc6353 | ||
|
|
1543170f4c | ||
|
|
18194b6bb5 | ||
|
|
cdede67f31 | ||
|
|
c5a76af1dd | ||
|
|
1acbd84b7c | ||
|
|
e9e44db964 | ||
|
|
271ec6cf97 | ||
|
|
9b156fbdca | ||
|
|
de9765fa25 | ||
|
|
abcb9b2f38 | ||
|
|
eaae5da519 | ||
|
|
77f458fb6e | ||
|
|
8fa21c49b2 | ||
|
|
49b2a4da8a | ||
|
|
09defbc4d4 | ||
|
|
2b3e12fcb6 | ||
|
|
bc1fdabce4 | ||
|
|
fc6e152fd1 | ||
|
|
3ec070313e | ||
|
|
33136b441c | ||
|
|
5bff5ca40d | ||
|
|
d5164c427f | ||
|
|
17b122990f | ||
|
|
78d1507f14 | ||
|
|
1e1d9fcb69 | ||
|
|
6f6074dc01 | ||
|
|
14c6abe4eb | ||
|
|
25d24f1e4c | ||
|
|
528d2a7ec3 | ||
|
|
4a77a236b4 | ||
|
|
cf6829f608 | ||
|
|
7642d67cae | ||
|
|
238187730c | ||
|
|
c53f5aa5b5 | ||
|
|
ebe1a8f55f | ||
|
|
510f217cd5 | ||
|
|
364b334654 | ||
|
|
afc2b14578 | ||
|
|
db57ff947b | ||
|
|
8c4716f170 | ||
|
|
11ac6240d2 | ||
|
|
d6680d1f75 | ||
|
|
09540929c3 | ||
|
|
36aecfbec9 | ||
|
|
0af74fb755 | ||
|
|
78b7310057 | ||
|
|
ccbb3a3498 | ||
|
|
69d1d5498e | ||
|
|
d7b54dfa66 | ||
|
|
04e28f3e39 | ||
|
|
1a56ce77e2 | ||
|
|
94e8e5d498 | ||
|
|
f3cbb0363d | ||
|
|
2d860b4a22 | ||
|
|
09a66e2285 | ||
|
|
fb17718a5d | ||
|
|
73145e0beb | ||
|
|
55b4f87cd7 | ||
|
|
3dde112676 | ||
|
|
155e4e9fa4 | ||
|
|
90cb1c4f2e | ||
|
|
e2e3663524 | ||
|
|
7b85e04462 | ||
|
|
96412202ba | ||
|
|
0b356c2d6d | ||
|
|
ee9092c8e5 | ||
|
|
2e7bb26eef | ||
|
|
5d28939c28 | ||
|
|
15a29e1483 | ||
|
|
c22b3b57bd | ||
|
|
1daa2fa377 | ||
|
|
59e94566fd | ||
|
|
1b45b8a17d | ||
|
|
e94beff204 | ||
|
|
82baf1e923 | ||
|
|
fa146d8770 | ||
|
|
064c60e52e | ||
|
|
18ea05edee | ||
|
|
c416041379 | ||
|
|
10444b943e | ||
|
|
2308a54ada | ||
|
|
0ed6738a5b | ||
|
|
12180ba707 | ||
|
|
278ae51d73 | ||
|
|
dc25bfb831 | ||
|
|
d113bbf4dd | ||
|
|
38b65fba3b | ||
|
|
7af6a46c8f | ||
|
|
ff724ce4b5 | ||
|
|
d6fcb04aa8 | ||
|
|
9bf8f1015d | ||
|
|
c477d1321a | ||
|
|
ec99b70b38 | ||
|
|
06a58ebd53 | ||
|
|
eb6fe0a4db | ||
|
|
c6a14e1a67 | ||
|
|
04cead1fc5 | ||
|
|
93732865ac | ||
|
|
6a5d63803a | ||
|
|
159aef022b | ||
|
|
f7c63c675b | ||
|
|
99d657fcfb | ||
|
|
00ceb2cd5d | ||
|
|
f151d3be01 | ||
|
|
fa04e36df2 | ||
|
|
7554e7bedb | ||
|
|
59e797b312 | ||
|
|
94cdaf20a2 | ||
|
|
b51a754fd9 | ||
|
|
c1e0d02afc | ||
|
|
890c9e87ce | ||
|
|
961dd297dd | ||
|
|
d675563271 | ||
|
|
e027d5c3e8 | ||
|
|
fdcfd5996b | ||
|
|
f7de65684a | ||
|
|
810dfa1b79 | ||
|
|
f0838dd5fc | ||
|
|
a849d49c92 | ||
|
|
ff129e524a | ||
|
|
05479103a6 | ||
|
|
ff41d262dc | ||
|
|
8628a2c6a2 | ||
|
|
30914678c9 | ||
|
|
c4bf1fe717 | ||
|
|
1946aaf5e1 | ||
|
|
a7b2427007 | ||
|
|
f9101d8084 | ||
|
|
1c3cbec661 | ||
|
|
cea423742b | ||
|
|
8c5f28d6a0 | ||
|
|
6c2e332638 | ||
|
|
5f18532a59 | ||
|
|
63f072a819 | ||
|
|
df1d6503c0 | ||
|
|
972054b377 | ||
|
|
e1c89834df | ||
|
|
c145cad653 | ||
|
|
4261063c99 | ||
|
|
f8546937c0 | ||
|
|
3daaea6ecf | ||
|
|
4a84fbc6e3 | ||
|
|
d8800e9fe3 | ||
|
|
7fd921227c | ||
|
|
b6ad07b47c | ||
|
|
1a21f0e3c9 | ||
|
|
c666368446 | ||
|
|
91d614dd25 | ||
|
|
baca59927b | ||
|
|
4eb40ce948 | ||
|
|
00b1018e9e | ||
|
|
9c92338ddf | ||
|
|
8188b63522 | ||
|
|
0e172b67eb | ||
|
|
156948ec58 | ||
|
|
bbdda5a3d7 | ||
|
|
51a2e638ed | ||
|
|
ffd9d3c218 | ||
|
|
9513ff5307 | ||
|
|
12e736b283 | ||
|
|
a64c9534e2 | ||
|
|
4b3e8aba29 | ||
|
|
98d5718ec9 | ||
|
|
457aa5331f | ||
|
|
a61b5d4b4c | ||
|
|
ba074068b0 | ||
|
|
615a147973 | ||
|
|
c00776ca22 | ||
|
|
d0b9a3a4ae | ||
|
|
dc246ddb09 | ||
|
|
591a2f2b02 | ||
|
|
7aaa847835 | ||
|
|
18377185c7 | ||
|
|
ef09dcf8f8 | ||
|
|
42101c6594 | ||
|
|
bee1a6c18a | ||
|
|
3e9ecd2f4f | ||
|
|
b958bfd5c9 | ||
|
|
725811d7b3 | ||
|
|
a56a52b4bb | ||
|
|
49dcf81743 | ||
|
|
16ffa2bf75 | ||
|
|
32e2cbe60a | ||
|
|
a7e6eb7fe4 | ||
|
|
33ed5ea1f2 | ||
|
|
c8c191c0a4 | ||
|
|
78af3214c3 | ||
|
|
e244bedd64 | ||
|
|
ebe95a92d1 | ||
|
|
5921eb3d27 | ||
|
|
9ed23799eb | ||
|
|
19f524ec43 | ||
|
|
085c90af40 | ||
|
|
0d94abf856 | ||
|
|
0131eb3aa2 | ||
|
|
bee48f483c | ||
|
|
47cc05dab4 | ||
|
|
aa06328516 | ||
|
|
7bd3bd7ea4 | ||
|
|
bf8984a225 | ||
|
|
bbe68d6ffc | ||
|
|
9af81ce8d0 | ||
|
|
c8180747db | ||
|
|
917410a0a8 | ||
|
|
176fb21f5f | ||
|
|
593b5fc098 | ||
|
|
0fe93fcfa4 | ||
|
|
cfaf745523 | ||
|
|
3d872cf37a | ||
|
|
844e0f10e5 | ||
|
|
92969ecc1f | ||
|
|
3bbb326c9c | ||
|
|
d92b0a82cc | ||
|
|
ac5abdbb1d | ||
|
|
2958e5cef3 | ||
|
|
35c903494c | ||
|
|
1b6295b2bf | ||
|
|
b93a06354f | ||
|
|
2d9090b2de | ||
|
|
e5b079f4ce | ||
|
|
1e5223c6ab | ||
|
|
29a1865ec3 | ||
|
|
8b8174b1b4 | ||
|
|
53245986ab | ||
|
|
b44bc718be | ||
|
|
8e3378b7b9 | ||
|
|
9e90948fc3 | ||
|
|
b87a8ca329 | ||
|
|
e664159188 | ||
|
|
9d6352e92f | ||
|
|
f45a5dff43 | ||
|
|
130fa43ad6 | ||
|
|
76e5a1c087 | ||
|
|
38792f2c93 | ||
|
|
4308a5e377 | ||
|
|
65a56cdb4a | ||
|
|
fbded1e4ee | ||
|
|
4ae9a02efa | ||
|
|
2c3b5ca43d | ||
|
|
b51b8eb843 | ||
|
|
40552e6837 | ||
|
|
9960328d3e | ||
|
|
3ac6aef6cf | ||
|
|
700cee3766 | ||
|
|
c1363a18cc | ||
|
|
016abe3273 | ||
|
|
5bf5826c88 | ||
|
|
62a4c0dd03 | ||
|
|
d47e5ca520 | ||
|
|
699078d5a5 | ||
|
|
8ebfda6b8c | ||
|
|
e7ea821650 | ||
|
|
0c2c74ae21 | ||
|
|
9898a5d0dd | ||
|
|
09f86f24fd | ||
|
|
57aa5e1620 | ||
|
|
ef01355297 | ||
|
|
14c0572368 | ||
|
|
50aaacd30d | ||
|
|
2f44fd6cac | ||
|
|
c924693a84 | ||
|
|
e739aeeb10 | ||
|
|
5031540a8f | ||
|
|
fc1ec55a40 | ||
|
|
a6bb9698ef | ||
|
|
63d7d46bd3 | ||
|
|
e1030e7999 | ||
|
|
8d1a4a5c69 | ||
|
|
cc5607d66f | ||
|
|
8666cdc5ef | ||
|
|
286dbfaf0b | ||
|
|
bf8357ee52 | ||
|
|
b98631c633 | ||
|
|
1891d54baf | ||
|
|
b80dfbe0c5 | ||
|
|
a73a83f04d | ||
|
|
3fbb9f24f8 | ||
|
|
a089aeb2bd | ||
|
|
182c8defb1 | ||
|
|
f46018b204 | ||
|
|
f7f9250e55 | ||
|
|
70b8823eb8 | ||
|
|
8f5ea2be83 | ||
|
|
abe0e34ace | ||
|
|
1f485be6e8 | ||
|
|
4368ff4294 | ||
|
|
338fc3afea | ||
|
|
fdc39f8473 | ||
|
|
931f4464c2 | ||
|
|
5901720681 | ||
|
|
e68ee9b47c | ||
|
|
ee24e4eb48 | ||
|
|
25af13e998 | ||
|
|
ac892f3d03 | ||
|
|
4d3a3070e4 | ||
|
|
6a2adf69e6 | ||
|
|
19ca956e7c | ||
|
|
1530c2b4f1 | ||
|
|
f0f2a6c11f | ||
|
|
8bfa9898e3 | ||
|
|
953a747b1a | ||
|
|
8835ef3598 | ||
|
|
cbc5d61ab7 | ||
|
|
e8210cd94d | ||
|
|
b6ff400587 | ||
|
|
91813831c6 | ||
|
|
c657eb8a40 | ||
|
|
091210c003 | ||
|
|
d4cad7b8c6 | ||
|
|
5949d7be1c | ||
|
|
ac3bd337a1 | ||
|
|
f09d364e95 | ||
|
|
7f474ed9c6 | ||
|
|
04c914d945 | ||
|
|
93ae4db35a | ||
|
|
2db719f35c | ||
|
|
e36b87ddd9 | ||
|
|
1c360ae110 | ||
|
|
44140caa2d | ||
|
|
15894235a9 | ||
|
|
fae8d91880 | ||
|
|
78446bab07 | ||
|
|
84e94e728c | ||
|
|
b2042fd044 | ||
|
|
67a681f8b8 | ||
|
|
eb2607f308 | ||
|
|
9f6fc6fe79 | ||
|
|
77d6c41914 | ||
|
|
4705812d24 | ||
|
|
1c0276a0be | ||
|
|
abc4110198 | ||
|
|
99ba1b6a24 | ||
|
|
1fec80a533 | ||
|
|
53fffffd1b | ||
|
|
dfd5233760 | ||
|
|
7b4d66f0f4 | ||
|
|
c3d2a1f243 | ||
|
|
3491844d41 | ||
|
|
9ef1a4dfaa | ||
|
|
f53246d40b | ||
|
|
d1f1635dd2 | ||
|
|
e7c52828ea | ||
|
|
fea15bedd4 | ||
|
|
5bbee02704 | ||
|
|
8c44dfb6af | ||
|
|
540862fbf2 | ||
|
|
500ca0758a |
@@ -1,170 +0,0 @@
|
||||
Filetype: Flipper Animation Manifest
|
||||
Version: 1
|
||||
|
||||
Name: L1_Waves_128x50
|
||||
Min butthurt: 0
|
||||
Max butthurt: 5
|
||||
Min level: 1
|
||||
Max level: 3
|
||||
Weight: 3
|
||||
|
||||
Name: L1_Laptop_128x51
|
||||
Min butthurt: 0
|
||||
Max butthurt: 7
|
||||
Min level: 1
|
||||
Max level: 1
|
||||
Weight: 3
|
||||
|
||||
Name: L1_Sleep_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 10
|
||||
Min level: 1
|
||||
Max level: 3
|
||||
Weight: 3
|
||||
|
||||
Name: L1_Recording_128x51
|
||||
Min butthurt: 0
|
||||
Max butthurt: 8
|
||||
Min level: 1
|
||||
Max level: 1
|
||||
Weight: 3
|
||||
|
||||
Name: L1_Furippa1_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 6
|
||||
Min level: 1
|
||||
Max level: 1
|
||||
Weight: 3
|
||||
|
||||
Name: L1_Read_books_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 8
|
||||
Min level: 1
|
||||
Max level: 1
|
||||
Weight: 3
|
||||
|
||||
Name: L1_Cry_128x64
|
||||
Min butthurt: 8
|
||||
Max butthurt: 13
|
||||
Min level: 1
|
||||
Max level: 3
|
||||
Weight: 3
|
||||
|
||||
Name: L1_Boxing_128x64
|
||||
Min butthurt: 10
|
||||
Max butthurt: 13
|
||||
Min level: 1
|
||||
Max level: 3
|
||||
Weight: 3
|
||||
|
||||
Name: L1_Mad_fist_128x64
|
||||
Min butthurt: 9
|
||||
Max butthurt: 13
|
||||
Min level: 1
|
||||
Max level: 3
|
||||
Weight: 3
|
||||
|
||||
Name: L1_Mods_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 9
|
||||
Min level: 1
|
||||
Max level: 3
|
||||
Weight: 4
|
||||
|
||||
Name: L1_Painting_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 7
|
||||
Min level: 1
|
||||
Max level: 3
|
||||
Weight: 3
|
||||
|
||||
Name: L1_Leaving_sad_128x64
|
||||
Min butthurt: 14
|
||||
Max butthurt: 14
|
||||
Min level: 1
|
||||
Max level: 3
|
||||
Weight: 3
|
||||
|
||||
Name: L1_Kaiju_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 10
|
||||
Min level: 1
|
||||
Max level: 3
|
||||
Weight: 4
|
||||
|
||||
Name: L1_My_dude_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 8
|
||||
Min level: 1
|
||||
Max level: 3
|
||||
Weight: 4
|
||||
|
||||
Name: L2_Wake_up_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 12
|
||||
Min level: 2
|
||||
Max level: 3
|
||||
Weight: 4
|
||||
|
||||
Name: L2_Furippa2_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 6
|
||||
Min level: 2
|
||||
Max level: 2
|
||||
Weight: 3
|
||||
|
||||
Name: L2_Hacking_pc_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 8
|
||||
Min level: 2
|
||||
Max level: 2
|
||||
Weight: 3
|
||||
|
||||
Name: L2_Soldering_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 10
|
||||
Min level: 2
|
||||
Max level: 2
|
||||
Weight: 3
|
||||
|
||||
Name: L2_Dj_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 8
|
||||
Min level: 2
|
||||
Max level: 3
|
||||
Weight: 4
|
||||
|
||||
Name: L3_Furippa3_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 6
|
||||
Min level: 3
|
||||
Max level: 3
|
||||
Weight: 3
|
||||
|
||||
Name: L3_Hijack_radio_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 8
|
||||
Min level: 3
|
||||
Max level: 3
|
||||
Weight: 3
|
||||
|
||||
Name: L3_Lab_research_128x54
|
||||
Min butthurt: 0
|
||||
Max butthurt: 10
|
||||
Min level: 3
|
||||
Max level: 3
|
||||
Weight: 3
|
||||
|
||||
Name: L1_Senpai_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 5
|
||||
Min level: 1
|
||||
Max level: 3
|
||||
Weight: 4
|
||||
|
||||
Name: L1_Sad_song_128x64
|
||||
Min butthurt: 8
|
||||
Max butthurt: 13
|
||||
Min level: 1
|
||||
Max level: 3
|
||||
Weight: 4
|
||||
15
.ci_files/devbuild_msg_discord.txt
Normal file
@@ -0,0 +1,15 @@
|
||||
## New Unleashed FW Dev Build
|
||||
|
||||
**Build** - (buildnum)
|
||||
**Commit** - [(commitsha)](https://github.com/DarkFlippers/unleashed-firmware/commit/(commitsha))
|
||||
### Sponsor our project -> [Patreon](https://patreon.com/mmxdev) or [Boosty](https://boosty.to/mmxdev)
|
||||
How to [install firmware](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/HowToInstall.md)?
|
||||
|
||||
### Install FW via Web Updater:
|
||||
[Default](https://lab.flipper.net/?url=https://unleashedflip.com/fw/dev/flipper-z-f7-update-(buildnum).tgz&target=f7&channel=dev-cfw&version=(buildnum)) > ` `
|
||||
[Extra apps](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-(buildnum)e.tgz&target=f7&channel=dev-cfw&version=(buildnum)e) > `e`
|
||||
[No apps](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-(buildnum)c.tgz&target=f7&channel=dev-cfw&version=(buildnum)c) > `c`
|
||||
What ` `, `e`, `c` means? -> [versions info](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/CHANGELOG.md#what-e---c-means-what-i-need-to-download-if-i-dont-want-to-use-web-updater)
|
||||
### Direct tgz download links:
|
||||
[Default](https://unleashedflip.com/fw/dev/flipper-z-f7-update-(buildnum).tgz) > ` ` - [Extra apps](https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-(buildnum)e.tgz) > `e` - [No apps](https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-(buildnum)c.tgz) > `c`
|
||||
|
||||
20
.ci_files/devbuild_msg_telegram.txt
Normal file
@@ -0,0 +1,20 @@
|
||||
**New Unleashed FW Dev Build**
|
||||
|
||||
**Build** - (buildnum)
|
||||
**Commit** - [(commitsha)](https://github.com/DarkFlippers/unleashed-firmware/commit/(commitsha))
|
||||
**Sponsor our project** -> [Patreon](https://patreon.com/mmxdev) or [Boosty](https://boosty.to/mmxdev)
|
||||
|
||||
How to [install firmware](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/HowToInstall.md)?
|
||||
|
||||
**Install FW via Web Updater:**
|
||||
[Default](https://lab.flipper.net/?url=https://unleashedflip.com/fw/dev/flipper-z-f7-update-(buildnum).tgz&target=f7&channel=dev-cfw&version=(buildnum)) > ` `
|
||||
[Extra apps](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-(buildnum)e.tgz&target=f7&channel=dev-cfw&version=(buildnum)e) > `e`
|
||||
[No apps](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-(buildnum)c.tgz&target=f7&channel=dev-cfw&version=(buildnum)c) > `c`
|
||||
|
||||
What ` `, `e`, `c` means? -> [versions info](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/CHANGELOG.md#what-e---c-means-what-i-need-to-download-if-i-dont-want-to-use-web-updater)
|
||||
|
||||
**Direct tgz download links:**
|
||||
[Default](https://unleashedflip.com/fw/dev/flipper-z-f7-update-(buildnum).tgz) > ` `
|
||||
[Extra apps](https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-(buildnum)e.tgz) > `e`
|
||||
[No apps](https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-(buildnum)c.tgz) > `c`
|
||||
|
||||
13
.ci_files/imgs/fztools/Dockerfile
Normal file
@@ -0,0 +1,13 @@
|
||||
FROM ubuntu:hirsute
|
||||
|
||||
RUN apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \
|
||||
ca-certificates \
|
||||
git \
|
||||
wget \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
|
||||
COPY entrypoint.sh /
|
||||
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
10
.ci_files/imgs/fztools/entrypoint.sh
Normal file
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
bash
|
||||
else
|
||||
echo "Running $1"
|
||||
set -ex
|
||||
bash -c "$1"
|
||||
fi
|
||||
|
||||
15
.ci_files/release_msg_discord.txt
Normal file
@@ -0,0 +1,15 @@
|
||||
## New Unleashed firmware released!
|
||||
|
||||
**Version:** (releasever)
|
||||
**Github:** [Release](https://github.com/DarkFlippers/unleashed-firmware/releases/tag/(releasever))
|
||||
### Sponsor our project -> [Patreon](https://patreon.com/mmxdev) or [Boosty](https://boosty.to/mmxdev)
|
||||
How to [install firmware](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/HowToInstall.md)?
|
||||
|
||||
### Install FW via Web Updater:
|
||||
[Default](https://lab.flipper.net/?url=https://unleashedflip.com/fw/(releasever)/flipper-z-f7-update-(releasever).tgz&target=f7&channel=release-cfw&version=(releasever)) > ` `
|
||||
[Extra apps](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-(releasever)e.tgz&target=f7&channel=release-cfw&version=(releasever)e) > `e`
|
||||
[No apps](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-(releasever)c.tgz&target=f7&channel=release-cfw&version=(releasever)c) > `c`
|
||||
What ` `, `e`, `c` means? -> [versions info](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/CHANGELOG.md#what-e---c-means-what-i-need-to-download-if-i-dont-want-to-use-web-updater)
|
||||
### Direct tgz download links:
|
||||
[Default](https://unleashedflip.com/fw/(releasever)/flipper-z-f7-update-(releasever).tgz) > ` ` - [Extra apps](https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-(releasever)e.tgz) > `e` - [No apps](https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-(releasever)c.tgz) > `c`
|
||||
|
||||
20
.ci_files/release_msg_telegram.txt
Normal file
@@ -0,0 +1,20 @@
|
||||
**New Unleashed firmware released**
|
||||
|
||||
**Version:** (releasever)
|
||||
**Github:** [Release](https://github.com/DarkFlippers/unleashed-firmware/releases/tag/(releasever))
|
||||
**Sponsor our project** -> [Patreon](https://patreon.com/mmxdev) or [Boosty](https://boosty.to/mmxdev)
|
||||
|
||||
How to [install firmware](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/HowToInstall.md)?
|
||||
|
||||
**Install FW via Web Updater:**
|
||||
[Default](https://lab.flipper.net/?url=https://unleashedflip.com/fw/(releasever)/flipper-z-f7-update-(releasever).tgz&target=f7&channel=release-cfw&version=(releasever)) > ` `
|
||||
[Extra apps](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-(releasever)e.tgz&target=f7&channel=release-cfw&version=(releasever)e) > `e`
|
||||
[No apps](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-(releasever)c.tgz&target=f7&channel=release-cfw&version=(releasever)c) > `c`
|
||||
|
||||
What ` `, `e`, `c` means? -> [versions info](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/CHANGELOG.md#what-e---c-means-what-i-need-to-download-if-i-dont-want-to-use-web-updater)
|
||||
|
||||
**Direct tgz download links:**
|
||||
[Default](https://unleashedflip.com/fw/(releasever)/flipper-z-f7-update-(releasever).tgz) > ` `
|
||||
[Extra apps](https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-(releasever)e.tgz) > `e`
|
||||
[No apps](https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-(releasever)c.tgz) > `c`
|
||||
|
||||
@@ -1,538 +0,0 @@
|
||||
diff --git a/applications/services/notification/notification_app.c b/applications/services/notification/notification_app.c
|
||||
index 2f947fe..03c4c76 100644
|
||||
--- a/applications/services/notification/notification_app.c
|
||||
+++ b/applications/services/notification/notification_app.c
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "notification.h"
|
||||
#include "notification_messages.h"
|
||||
#include "notification_app.h"
|
||||
+#include "applications/settings/notification_settings/rgb_backlight.h"
|
||||
|
||||
#define TAG "NotificationSrv"
|
||||
|
||||
@@ -579,6 +580,7 @@ int32_t notification_srv(void* p) {
|
||||
break;
|
||||
case SaveSettingsMessage:
|
||||
notification_save_settings(app);
|
||||
+ rgb_backlight_save_settings();
|
||||
break;
|
||||
}
|
||||
|
||||
diff --git a/applications/settings/notification_settings/notification_settings_app.c b/applications/settings/notification_settings/notification_settings_app.c
|
||||
index 565d4f1..bae9299 100644
|
||||
--- a/applications/settings/notification_settings/notification_settings_app.c
|
||||
+++ b/applications/settings/notification_settings/notification_settings_app.c
|
||||
@@ -3,6 +3,7 @@
|
||||
#include <gui/modules/variable_item_list.h>
|
||||
#include <gui/view_dispatcher.h>
|
||||
#include <lib/toolbox/value_index.h>
|
||||
+#include <applications/settings/notification_settings/rgb_backlight.h>
|
||||
|
||||
#define MAX_NOTIFICATION_SETTINGS 4
|
||||
|
||||
@@ -162,6 +163,14 @@ static void vibro_changed(VariableItem* item) {
|
||||
notification_message(app->notification, &sequence_single_vibro);
|
||||
}
|
||||
|
||||
+static void color_changed(VariableItem* item) {
|
||||
+ NotificationAppSettings* app = variable_item_get_context(item);
|
||||
+ uint8_t index = variable_item_get_current_value_index(item);
|
||||
+ rgb_backlight_set_color(index);
|
||||
+ variable_item_set_current_value_text(item, rgb_backlight_get_color_text(index));
|
||||
+ notification_message(app->notification, &sequence_display_backlight_on);
|
||||
+}
|
||||
+
|
||||
static uint32_t notification_app_settings_exit(void* context) {
|
||||
UNUSED(context);
|
||||
return VIEW_NONE;
|
||||
@@ -187,7 +196,13 @@ static NotificationAppSettings* alloc_settings() {
|
||||
variable_item_set_current_value_text(item, contrast_text[value_index]);
|
||||
|
||||
item = variable_item_list_add(
|
||||
- app->variable_item_list, "LCD Backlight", BACKLIGHT_COUNT, backlight_changed, app);
|
||||
+ app->variable_item_list, "LCD Color", rgb_backlight_get_color_count(), color_changed, app);
|
||||
+ value_index = rgb_backlight_get_settings()->display_color_index;
|
||||
+ variable_item_set_current_value_index(item, value_index);
|
||||
+ variable_item_set_current_value_text(item, rgb_backlight_get_color_text(value_index));
|
||||
+
|
||||
+ item = variable_item_list_add(
|
||||
+ app->variable_item_list, "LCD Brightness", BACKLIGHT_COUNT, backlight_changed, app);
|
||||
value_index = value_index_float(
|
||||
app->notification->settings.display_brightness, backlight_value, BACKLIGHT_COUNT);
|
||||
variable_item_set_current_value_index(item, value_index);
|
||||
diff --git a/applications/settings/notification_settings/rgb_backlight.c b/applications/settings/notification_settings/rgb_backlight.c
|
||||
new file mode 100644
|
||||
index 0000000..269b544
|
||||
--- /dev/null
|
||||
+++ b/applications/settings/notification_settings/rgb_backlight.c
|
||||
@@ -0,0 +1,171 @@
|
||||
+/*
|
||||
+ RGB backlight FlipperZero driver
|
||||
+ Copyright (C) 2022-2023 Victor Nikitchuk (https://github.com/quen0n)
|
||||
+
|
||||
+ This program is free software: you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation, either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
+*/
|
||||
+
|
||||
+#include "rgb_backlight.h"
|
||||
+#include <furi_hal.h>
|
||||
+#include <storage/storage.h>
|
||||
+
|
||||
+#define RGB_BACKLIGHT_SETTINGS_VERSION 5
|
||||
+#define RGB_BACKLIGHT_SETTINGS_FILE_NAME ".rgb_backlight.settings"
|
||||
+#define RGB_BACKLIGHT_SETTINGS_PATH EXT_PATH(RGB_BACKLIGHT_SETTINGS_FILE_NAME)
|
||||
+
|
||||
+#define COLOR_COUNT (sizeof(colors) / sizeof(RGBBacklightColor))
|
||||
+
|
||||
+#define TAG "RGB Backlight"
|
||||
+
|
||||
+static RGBBacklightSettings rgb_settings = {
|
||||
+ .version = RGB_BACKLIGHT_SETTINGS_VERSION,
|
||||
+ .display_color_index = 0,
|
||||
+ .settings_is_loaded = false};
|
||||
+
|
||||
+static const RGBBacklightColor colors[] = {
|
||||
+ {"Orange", 255, 60, 0},
|
||||
+ {"Yellow", 255, 150, 0},
|
||||
+ {"Spring", 167, 255, 0},
|
||||
+ {"Lime", 0, 255, 0},
|
||||
+ {"Aqua", 0, 255, 127},
|
||||
+ {"Cyan", 0, 210, 210},
|
||||
+ {"Azure", 0, 127, 255},
|
||||
+ {"Blue", 0, 0, 255},
|
||||
+ {"Purple", 127, 0, 255},
|
||||
+ {"Magenta", 210, 0, 210},
|
||||
+ {"Pink", 255, 0, 127},
|
||||
+ {"Red", 255, 0, 0},
|
||||
+ {"White", 150, 150, 110},
|
||||
+};
|
||||
+
|
||||
+uint8_t rgb_backlight_get_color_count(void) {
|
||||
+ return COLOR_COUNT;
|
||||
+}
|
||||
+
|
||||
+const char* rgb_backlight_get_color_text(uint8_t index) {
|
||||
+ return colors[index].name;
|
||||
+}
|
||||
+
|
||||
+void rgb_backlight_load_settings(void) {
|
||||
+ //Не загружать данные из внутренней памяти при загрузке в режиме DFU
|
||||
+ FuriHalRtcBootMode bm = furi_hal_rtc_get_boot_mode();
|
||||
+ if(bm == FuriHalRtcBootModeDfu) {
|
||||
+ rgb_settings.settings_is_loaded = true;
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ RGBBacklightSettings settings;
|
||||
+ File* file = storage_file_alloc(furi_record_open(RECORD_STORAGE));
|
||||
+ const size_t settings_size = sizeof(RGBBacklightSettings);
|
||||
+
|
||||
+ FURI_LOG_I(TAG, "loading settings from \"%s\"", RGB_BACKLIGHT_SETTINGS_PATH);
|
||||
+ bool fs_result =
|
||||
+ storage_file_open(file, RGB_BACKLIGHT_SETTINGS_PATH, FSAM_READ, FSOM_OPEN_EXISTING);
|
||||
+
|
||||
+ if(fs_result) {
|
||||
+ uint16_t bytes_count = storage_file_read(file, &settings, settings_size);
|
||||
+
|
||||
+ if(bytes_count != settings_size) {
|
||||
+ fs_result = false;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if(fs_result) {
|
||||
+ FURI_LOG_I(TAG, "load success");
|
||||
+ if(settings.version != RGB_BACKLIGHT_SETTINGS_VERSION) {
|
||||
+ FURI_LOG_E(
|
||||
+ TAG,
|
||||
+ "version(%d != %d) mismatch",
|
||||
+ settings.version,
|
||||
+ RGB_BACKLIGHT_SETTINGS_VERSION);
|
||||
+ } else {
|
||||
+ memcpy(&rgb_settings, &settings, settings_size);
|
||||
+ }
|
||||
+ } else {
|
||||
+ FURI_LOG_E(TAG, "load failed, %s", storage_file_get_error_desc(file));
|
||||
+ }
|
||||
+
|
||||
+ storage_file_close(file);
|
||||
+ storage_file_free(file);
|
||||
+ furi_record_close(RECORD_STORAGE);
|
||||
+ rgb_settings.settings_is_loaded = true;
|
||||
+};
|
||||
+
|
||||
+void rgb_backlight_save_settings(void) {
|
||||
+ RGBBacklightSettings settings;
|
||||
+ File* file = storage_file_alloc(furi_record_open(RECORD_STORAGE));
|
||||
+ const size_t settings_size = sizeof(RGBBacklightSettings);
|
||||
+
|
||||
+ FURI_LOG_I(TAG, "saving settings to \"%s\"", RGB_BACKLIGHT_SETTINGS_PATH);
|
||||
+
|
||||
+ memcpy(&settings, &rgb_settings, settings_size);
|
||||
+
|
||||
+ bool fs_result =
|
||||
+ storage_file_open(file, RGB_BACKLIGHT_SETTINGS_PATH, FSAM_WRITE, FSOM_CREATE_ALWAYS);
|
||||
+
|
||||
+ if(fs_result) {
|
||||
+ uint16_t bytes_count = storage_file_write(file, &settings, settings_size);
|
||||
+
|
||||
+ if(bytes_count != settings_size) {
|
||||
+ fs_result = false;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if(fs_result) {
|
||||
+ FURI_LOG_I(TAG, "save success");
|
||||
+ } else {
|
||||
+ FURI_LOG_E(TAG, "save failed, %s", storage_file_get_error_desc(file));
|
||||
+ }
|
||||
+
|
||||
+ storage_file_close(file);
|
||||
+ storage_file_free(file);
|
||||
+ furi_record_close(RECORD_STORAGE);
|
||||
+};
|
||||
+
|
||||
+RGBBacklightSettings* rgb_backlight_get_settings(void) {
|
||||
+ if(!rgb_settings.settings_is_loaded) {
|
||||
+ rgb_backlight_load_settings();
|
||||
+ }
|
||||
+ return &rgb_settings;
|
||||
+}
|
||||
+
|
||||
+void rgb_backlight_set_color(uint8_t color_index) {
|
||||
+ if(color_index > (rgb_backlight_get_color_count() - 1)) color_index = 0;
|
||||
+ rgb_settings.display_color_index = color_index;
|
||||
+}
|
||||
+
|
||||
+void rgb_backlight_update(uint8_t brightness) {
|
||||
+ if(!rgb_settings.settings_is_loaded) {
|
||||
+ rgb_backlight_load_settings();
|
||||
+ }
|
||||
+
|
||||
+ static uint8_t last_color_index = 255;
|
||||
+ static uint8_t last_brightness = 123;
|
||||
+
|
||||
+ if(last_brightness == brightness && last_color_index == rgb_settings.display_color_index)
|
||||
+ return;
|
||||
+
|
||||
+ last_brightness = brightness;
|
||||
+ last_color_index = rgb_settings.display_color_index;
|
||||
+
|
||||
+ for(uint8_t i = 0; i < SK6805_get_led_count(); i++) {
|
||||
+ uint8_t r = colors[rgb_settings.display_color_index].red * (brightness / 255.0f);
|
||||
+ uint8_t g = colors[rgb_settings.display_color_index].green * (brightness / 255.0f);
|
||||
+ uint8_t b = colors[rgb_settings.display_color_index].blue * (brightness / 255.0f);
|
||||
+
|
||||
+ SK6805_set_led_color(i, r, g, b);
|
||||
+ }
|
||||
+
|
||||
+ SK6805_update();
|
||||
+}
|
||||
diff --git a/applications/settings/notification_settings/rgb_backlight.h b/applications/settings/notification_settings/rgb_backlight.h
|
||||
new file mode 100644
|
||||
index 0000000..b63d223
|
||||
--- /dev/null
|
||||
+++ b/applications/settings/notification_settings/rgb_backlight.h
|
||||
@@ -0,0 +1,79 @@
|
||||
+/*
|
||||
+ RGB backlight FlipperZero driver
|
||||
+ Copyright (C) 2022-2023 Victor Nikitchuk (https://github.com/quen0n)
|
||||
+
|
||||
+ This program is free software: you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation, either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
+*/
|
||||
+
|
||||
+#include <furi.h>
|
||||
+#include "SK6805.h"
|
||||
+
|
||||
+typedef struct {
|
||||
+ char* name;
|
||||
+ uint8_t red;
|
||||
+ uint8_t green;
|
||||
+ uint8_t blue;
|
||||
+} RGBBacklightColor;
|
||||
+
|
||||
+typedef struct {
|
||||
+ uint8_t version;
|
||||
+ uint8_t display_color_index;
|
||||
+ bool settings_is_loaded;
|
||||
+} RGBBacklightSettings;
|
||||
+
|
||||
+/**
|
||||
+ * @brief Получить текущие настройки RGB-подсветки
|
||||
+ *
|
||||
+ * @return Указатель на структуру настроек
|
||||
+ */
|
||||
+RGBBacklightSettings* rgb_backlight_get_settings(void);
|
||||
+
|
||||
+/**
|
||||
+ * @brief Загрузить настройки подсветки с SD-карты
|
||||
+ */
|
||||
+void rgb_backlight_load_settings(void);
|
||||
+
|
||||
+/**
|
||||
+ * @brief Сохранить текущие настройки RGB-подсветки
|
||||
+ */
|
||||
+void rgb_backlight_save_settings(void);
|
||||
+
|
||||
+/**
|
||||
+ * @brief Применить текущие настройки RGB-подсветки
|
||||
+ *
|
||||
+ * @param brightness Яркость свечения (0-255)
|
||||
+ */
|
||||
+void rgb_backlight_update(uint8_t brightness);
|
||||
+
|
||||
+/**
|
||||
+ * @brief Установить цвет RGB-подсветки
|
||||
+ *
|
||||
+ * @param color_index Индекс цвета (0 - rgb_backlight_get_color_count())
|
||||
+ */
|
||||
+void rgb_backlight_set_color(uint8_t color_index);
|
||||
+
|
||||
+/**
|
||||
+ * @brief Получить количество доступных цветов
|
||||
+ *
|
||||
+ * @return Число доступных вариантов цвета
|
||||
+ */
|
||||
+uint8_t rgb_backlight_get_color_count(void);
|
||||
+
|
||||
+/**
|
||||
+ * @brief Получить текстовое название цвета
|
||||
+ *
|
||||
+ * @param index Индекс из доступных вариантов цвета
|
||||
+ * @return Указатель на строку с названием цвета
|
||||
+ */
|
||||
+const char* rgb_backlight_get_color_text(uint8_t index);
|
||||
\ No newline at end of file
|
||||
diff --git a/firmware/targets/f7/furi_hal/furi_hal_light.c b/firmware/targets/f7/furi_hal/furi_hal_light.c
|
||||
index 83e1603..cad5b86 100644
|
||||
--- a/firmware/targets/f7/furi_hal/furi_hal_light.c
|
||||
+++ b/firmware/targets/f7/furi_hal/furi_hal_light.c
|
||||
@@ -3,6 +3,7 @@
|
||||
#include <furi_hal_light.h>
|
||||
#include <lp5562.h>
|
||||
#include <stdint.h>
|
||||
+#include <applications/settings/notification_settings/rgb_backlight.h>
|
||||
|
||||
#define LED_CURRENT_RED 50
|
||||
#define LED_CURRENT_GREEN 50
|
||||
@@ -31,22 +32,21 @@ void furi_hal_light_init() {
|
||||
}
|
||||
|
||||
void furi_hal_light_set(Light light, uint8_t value) {
|
||||
- furi_hal_i2c_acquire(&furi_hal_i2c_handle_power);
|
||||
- if(light & LightRed) {
|
||||
- lp5562_set_channel_value(&furi_hal_i2c_handle_power, LP5562ChannelRed, value);
|
||||
- }
|
||||
- if(light & LightGreen) {
|
||||
- lp5562_set_channel_value(&furi_hal_i2c_handle_power, LP5562ChannelGreen, value);
|
||||
- }
|
||||
- if(light & LightBlue) {
|
||||
- lp5562_set_channel_value(&furi_hal_i2c_handle_power, LP5562ChannelBlue, value);
|
||||
- }
|
||||
if(light & LightBacklight) {
|
||||
- uint8_t prev = lp5562_get_channel_value(&furi_hal_i2c_handle_power, LP5562ChannelWhite);
|
||||
- lp5562_execute_ramp(
|
||||
- &furi_hal_i2c_handle_power, LP5562Engine1, LP5562ChannelWhite, prev, value, 100);
|
||||
+ rgb_backlight_update(value);
|
||||
+ } else {
|
||||
+ furi_hal_i2c_acquire(&furi_hal_i2c_handle_power);
|
||||
+ if(light & LightRed) {
|
||||
+ lp5562_set_channel_value(&furi_hal_i2c_handle_power, LP5562ChannelRed, value);
|
||||
+ }
|
||||
+ if(light & LightGreen) {
|
||||
+ lp5562_set_channel_value(&furi_hal_i2c_handle_power, LP5562ChannelGreen, value);
|
||||
+ }
|
||||
+ if(light & LightBlue) {
|
||||
+ lp5562_set_channel_value(&furi_hal_i2c_handle_power, LP5562ChannelBlue, value);
|
||||
+ }
|
||||
+ furi_hal_i2c_release(&furi_hal_i2c_handle_power);
|
||||
}
|
||||
- furi_hal_i2c_release(&furi_hal_i2c_handle_power);
|
||||
}
|
||||
|
||||
void furi_hal_light_blink_start(Light light, uint8_t brightness, uint16_t on_time, uint16_t period) {
|
||||
diff --git a/lib/drivers/SK6805.c b/lib/drivers/SK6805.c
|
||||
new file mode 100644
|
||||
index 0000000..572e1df
|
||||
--- /dev/null
|
||||
+++ b/lib/drivers/SK6805.c
|
||||
@@ -0,0 +1,101 @@
|
||||
+/*
|
||||
+ SK6805 FlipperZero driver
|
||||
+ Copyright (C) 2022-2023 Victor Nikitchuk (https://github.com/quen0n)
|
||||
+
|
||||
+ This program is free software: you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation, either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
+*/
|
||||
+
|
||||
+#include "SK6805.h"
|
||||
+#include <furi_hal.h>
|
||||
+
|
||||
+/* Настройки */
|
||||
+#define SK6805_LED_COUNT 3 //Количество светодиодов на плате подсветки
|
||||
+#define SK6805_LED_PIN &led_pin //Порт подключения светодиодов
|
||||
+
|
||||
+#ifdef FURI_DEBUG
|
||||
+#define DEBUG_PIN &gpio_ext_pa7
|
||||
+#define DEBUG_INIT() \
|
||||
+ furi_hal_gpio_init(DEBUG_PIN, GpioModeOutputPushPull, GpioPullNo, GpioSpeedVeryHigh)
|
||||
+#define DEBUG_SET_HIGH() furi_hal_gpio_write(DEBUG_PIN, true)
|
||||
+#define DEBUG_SET_LOW() furi_hal_gpio_write(DEBUG_PIN, false)
|
||||
+#else
|
||||
+#define DEBUG_INIT()
|
||||
+#define DEBUG_SET_HIGH()
|
||||
+#define DEBUG_SET_LOW()
|
||||
+#endif
|
||||
+
|
||||
+static const GpioPin led_pin = {.port = GPIOA, .pin = LL_GPIO_PIN_8};
|
||||
+static uint8_t led_buffer[SK6805_LED_COUNT][3];
|
||||
+
|
||||
+void SK6805_init(void) {
|
||||
+ DEBUG_INIT();
|
||||
+ furi_hal_gpio_write(SK6805_LED_PIN, false);
|
||||
+ furi_hal_gpio_init(SK6805_LED_PIN, GpioModeOutputPushPull, GpioPullNo, GpioSpeedVeryHigh);
|
||||
+}
|
||||
+
|
||||
+uint8_t SK6805_get_led_count(void) {
|
||||
+ return (const uint8_t)SK6805_LED_COUNT;
|
||||
+}
|
||||
+void SK6805_set_led_color(uint8_t led_index, uint8_t r, uint8_t g, uint8_t b) {
|
||||
+ furi_check(led_index < SK6805_LED_COUNT);
|
||||
+
|
||||
+ led_buffer[led_index][0] = g;
|
||||
+ led_buffer[led_index][1] = r;
|
||||
+ led_buffer[led_index][2] = b;
|
||||
+}
|
||||
+
|
||||
+void SK6805_update(void) {
|
||||
+ SK6805_init();
|
||||
+ furi_kernel_lock();
|
||||
+ uint32_t end;
|
||||
+ /* Последовательная отправка цветов светодиодов */
|
||||
+ for(uint8_t lednumber = 0; lednumber < SK6805_LED_COUNT; lednumber++) {
|
||||
+ //Последовательная отправка цветов светодиода
|
||||
+ for(uint8_t color = 0; color < 3; color++) {
|
||||
+ //Последовательная отправка битов цвета
|
||||
+ uint8_t i = 0b10000000;
|
||||
+ while(i != 0) {
|
||||
+ if(led_buffer[lednumber][color] & (i)) {
|
||||
+ furi_hal_gpio_write(SK6805_LED_PIN, true);
|
||||
+ DEBUG_SET_HIGH();
|
||||
+ end = DWT->CYCCNT + 30;
|
||||
+ //T1H 600 us (615 us)
|
||||
+ while(DWT->CYCCNT < end) {
|
||||
+ }
|
||||
+ furi_hal_gpio_write(SK6805_LED_PIN, false);
|
||||
+ DEBUG_SET_LOW();
|
||||
+ end = DWT->CYCCNT + 26;
|
||||
+ //T1L 600 us (587 us)
|
||||
+ while(DWT->CYCCNT < end) {
|
||||
+ }
|
||||
+ } else {
|
||||
+ furi_hal_gpio_write(SK6805_LED_PIN, true);
|
||||
+ DEBUG_SET_HIGH();
|
||||
+ end = DWT->CYCCNT + 11;
|
||||
+ //T0H 300 ns (312 ns)
|
||||
+ while(DWT->CYCCNT < end) {
|
||||
+ }
|
||||
+ furi_hal_gpio_write(SK6805_LED_PIN, false);
|
||||
+ DEBUG_SET_LOW();
|
||||
+ end = DWT->CYCCNT + 43;
|
||||
+ //T0L 900 ns (890 ns)
|
||||
+ while(DWT->CYCCNT < end) {
|
||||
+ }
|
||||
+ }
|
||||
+ i >>= 1;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ furi_kernel_unlock();
|
||||
+}
|
||||
diff --git a/lib/drivers/SK6805.h b/lib/drivers/SK6805.h
|
||||
new file mode 100644
|
||||
index 0000000..7c58956
|
||||
--- /dev/null
|
||||
+++ b/lib/drivers/SK6805.h
|
||||
@@ -0,0 +1,51 @@
|
||||
+/*
|
||||
+ SK6805 FlipperZero driver
|
||||
+ Copyright (C) 2022-2023 Victor Nikitchuk (https://github.com/quen0n)
|
||||
+
|
||||
+ This program is free software: you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation, either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
+*/
|
||||
+
|
||||
+#ifndef SK6805_H_
|
||||
+#define SK6805_H_
|
||||
+
|
||||
+#include <furi.h>
|
||||
+
|
||||
+/**
|
||||
+ * @brief Инициализация линии управления подсветкой
|
||||
+ */
|
||||
+void SK6805_init(void);
|
||||
+
|
||||
+/**
|
||||
+ * @brief Получить количество светодиодов в подсветке
|
||||
+ *
|
||||
+ * @return Количество светодиодов
|
||||
+ */
|
||||
+uint8_t SK6805_get_led_count(void);
|
||||
+
|
||||
+/**
|
||||
+ * @brief Установить цвет свечения светодиода
|
||||
+ *
|
||||
+ * @param led_index номер светодиода (от 0 до SK6805_get_led_count())
|
||||
+ * @param r значение красного (0-255)
|
||||
+ * @param g значение зелёного (0-255)
|
||||
+ * @param b значение синего (0-255)
|
||||
+ */
|
||||
+void SK6805_set_led_color(uint8_t led_index, uint8_t r, uint8_t g, uint8_t b);
|
||||
+
|
||||
+/**
|
||||
+ * @brief Обновление состояния подсветки дисплея
|
||||
+ */
|
||||
+void SK6805_update(void);
|
||||
+
|
||||
+#endif /* SK6805_H_ */
|
||||
\ No newline at end of file
|
||||
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
BIN
.ci_files/season_anims/L1_Happy_holidays_128x64/frame_0.png
Executable file
|
After Width: | Height: | Size: 858 B |
BIN
.ci_files/season_anims/L1_Happy_holidays_128x64/frame_1.png
Executable file
|
After Width: | Height: | Size: 855 B |
BIN
.ci_files/season_anims/L1_Happy_holidays_128x64/frame_10.png
Executable file
|
After Width: | Height: | Size: 872 B |
BIN
.ci_files/season_anims/L1_Happy_holidays_128x64/frame_11.png
Executable file
|
After Width: | Height: | Size: 861 B |
BIN
.ci_files/season_anims/L1_Happy_holidays_128x64/frame_12.png
Executable file
|
After Width: | Height: | Size: 853 B |
BIN
.ci_files/season_anims/L1_Happy_holidays_128x64/frame_2.png
Executable file
|
After Width: | Height: | Size: 851 B |
BIN
.ci_files/season_anims/L1_Happy_holidays_128x64/frame_3.png
Executable file
|
After Width: | Height: | Size: 852 B |
BIN
.ci_files/season_anims/L1_Happy_holidays_128x64/frame_4.png
Executable file
|
After Width: | Height: | Size: 856 B |
BIN
.ci_files/season_anims/L1_Happy_holidays_128x64/frame_5.png
Executable file
|
After Width: | Height: | Size: 850 B |
BIN
.ci_files/season_anims/L1_Happy_holidays_128x64/frame_6.png
Executable file
|
After Width: | Height: | Size: 851 B |
BIN
.ci_files/season_anims/L1_Happy_holidays_128x64/frame_7.png
Executable file
|
After Width: | Height: | Size: 860 B |
BIN
.ci_files/season_anims/L1_Happy_holidays_128x64/frame_8.png
Executable file
|
After Width: | Height: | Size: 857 B |
BIN
.ci_files/season_anims/L1_Happy_holidays_128x64/frame_9.png
Executable file
|
After Width: | Height: | Size: 863 B |
23
.ci_files/season_anims/L1_Happy_holidays_128x64/meta.txt
Executable file
@@ -0,0 +1,23 @@
|
||||
Filetype: Flipper Animation
|
||||
Version: 1
|
||||
|
||||
Width: 128
|
||||
Height: 64
|
||||
Passive frames: 10
|
||||
Active frames: 18
|
||||
Frames order: 0 1 2 1 0 1 2 1 0 1 2 3 4 5 6 5 4 7 2 8 9 10 11 10 9 10 11 12
|
||||
Active cycles: 1
|
||||
Frame rate: 2
|
||||
Duration: 3600
|
||||
Active cooldown: 7
|
||||
|
||||
Bubble slots: 1
|
||||
|
||||
Slot: 0
|
||||
X: 11
|
||||
Y: 19
|
||||
Text: HAPPY\nHOLIDAYS!
|
||||
AlignH: Right
|
||||
AlignV: Center
|
||||
StartFrame: 22
|
||||
EndFrame: 27
|
||||
BIN
.ci_files/season_anims/L1_New_year_128x64/frame_0.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
.ci_files/season_anims/L1_New_year_128x64/frame_1.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
.ci_files/season_anims/L1_New_year_128x64/frame_2.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
.ci_files/season_anims/L1_New_year_128x64/frame_3.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
14
.ci_files/season_anims/L1_New_year_128x64/meta.txt
Normal file
@@ -0,0 +1,14 @@
|
||||
Filetype: Flipper Animation
|
||||
Version: 1
|
||||
|
||||
Width: 128
|
||||
Height: 64
|
||||
Passive frames: 4
|
||||
Active frames: 0
|
||||
Frames order: 0 1 2 3
|
||||
Active cycles: 0
|
||||
Frame rate: 2
|
||||
Duration: 3600
|
||||
Active cooldown: 0
|
||||
|
||||
Bubble slots: 0
|
||||
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_0.png
Executable file
|
After Width: | Height: | Size: 820 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_1.png
Executable file
|
After Width: | Height: | Size: 881 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_10.png
Executable file
|
After Width: | Height: | Size: 788 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_11.png
Executable file
|
After Width: | Height: | Size: 816 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_12.png
Executable file
|
After Width: | Height: | Size: 864 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_13.png
Executable file
|
After Width: | Height: | Size: 798 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_14.png
Executable file
|
After Width: | Height: | Size: 813 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_15.png
Executable file
|
After Width: | Height: | Size: 879 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_16.png
Executable file
|
After Width: | Height: | Size: 855 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_17.png
Executable file
|
After Width: | Height: | Size: 772 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_18.png
Executable file
|
After Width: | Height: | Size: 817 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_19.png
Executable file
|
After Width: | Height: | Size: 867 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_2.png
Executable file
|
After Width: | Height: | Size: 866 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_20.png
Executable file
|
After Width: | Height: | Size: 809 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_21.png
Executable file
|
After Width: | Height: | Size: 795 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_22.png
Executable file
|
After Width: | Height: | Size: 870 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_23.png
Executable file
|
After Width: | Height: | Size: 852 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_24.png
Executable file
|
After Width: | Height: | Size: 805 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_25.png
Executable file
|
After Width: | Height: | Size: 858 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_26.png
Executable file
|
After Width: | Height: | Size: 830 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_27.png
Executable file
|
After Width: | Height: | Size: 828 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_28.png
Executable file
|
After Width: | Height: | Size: 585 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_29.png
Executable file
|
After Width: | Height: | Size: 431 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_3.png
Executable file
|
After Width: | Height: | Size: 812 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_30.png
Executable file
|
After Width: | Height: | Size: 281 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_31.png
Executable file
|
After Width: | Height: | Size: 270 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_32.png
Executable file
|
After Width: | Height: | Size: 236 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_33.png
Executable file
|
After Width: | Height: | Size: 485 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_34.png
Executable file
|
After Width: | Height: | Size: 771 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_35.png
Executable file
|
After Width: | Height: | Size: 887 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_36.png
Executable file
|
After Width: | Height: | Size: 809 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_4.png
Executable file
|
After Width: | Height: | Size: 890 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_5.png
Executable file
|
After Width: | Height: | Size: 819 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_6.png
Executable file
|
After Width: | Height: | Size: 799 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_7.png
Executable file
|
After Width: | Height: | Size: 817 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_8.png
Executable file
|
After Width: | Height: | Size: 875 B |
BIN
.ci_files/season_anims/L1_Sleigh_ride_128x64/frame_9.png
Executable file
|
After Width: | Height: | Size: 823 B |
23
.ci_files/season_anims/L1_Sleigh_ride_128x64/meta.txt
Executable file
@@ -0,0 +1,23 @@
|
||||
Filetype: Flipper Animation
|
||||
Version: 1
|
||||
|
||||
Width: 128
|
||||
Height: 64
|
||||
Passive frames: 18
|
||||
Active frames: 19
|
||||
Frames order: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
||||
Active cycles: 1
|
||||
Frame rate: 2
|
||||
Duration: 3600
|
||||
Active cooldown: 7
|
||||
|
||||
Bubble slots: 1
|
||||
|
||||
Slot: 0
|
||||
X: 21
|
||||
Y: 25
|
||||
Text: AAAAaAAAAHHh!!
|
||||
AlignH: Right
|
||||
AlignV: Bottom
|
||||
StartFrame: 30
|
||||
EndFrame: 32
|
||||
30
.ci_files/season_anims/manifest.txt
Normal file
@@ -0,0 +1,30 @@
|
||||
Filetype: Flipper Animation Manifest
|
||||
Version: 1
|
||||
|
||||
Name: L1_Happy_holidays_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 1
|
||||
Max level: 3
|
||||
Weight: 3
|
||||
|
||||
Name: L1_Sleigh_ride_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 1
|
||||
Max level: 3
|
||||
Weight: 4
|
||||
|
||||
Name: L1_New_year_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 1
|
||||
Max level: 3
|
||||
Weight: 4
|
||||
|
||||
Name: L1_Halloween_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 1
|
||||
Max level: 3
|
||||
Weight: 4
|
||||
129
.clang-format
@@ -3,22 +3,55 @@ Language: Cpp
|
||||
AccessModifierOffset: -4
|
||||
AlignAfterOpenBracket: AlwaysBreak
|
||||
AlignArrayOfStructures: None
|
||||
AlignConsecutiveMacros: None
|
||||
AlignConsecutiveAssignments: None
|
||||
AlignConsecutiveBitFields: None
|
||||
AlignConsecutiveDeclarations: None
|
||||
AlignConsecutiveAssignments:
|
||||
Enabled: false
|
||||
AcrossEmptyLines: false
|
||||
AcrossComments: false
|
||||
AlignCompound: false
|
||||
AlignFunctionPointers: false
|
||||
PadOperators: true
|
||||
AlignConsecutiveBitFields:
|
||||
Enabled: true
|
||||
AcrossEmptyLines: true
|
||||
AcrossComments: true
|
||||
AlignCompound: false
|
||||
AlignFunctionPointers: false
|
||||
PadOperators: true
|
||||
AlignConsecutiveDeclarations:
|
||||
Enabled: false
|
||||
AcrossEmptyLines: false
|
||||
AcrossComments: false
|
||||
AlignCompound: false
|
||||
AlignFunctionPointers: false
|
||||
PadOperators: true
|
||||
AlignConsecutiveMacros:
|
||||
Enabled: true
|
||||
AcrossEmptyLines: false
|
||||
AcrossComments: true
|
||||
AlignCompound: true
|
||||
AlignFunctionPointers: false
|
||||
PadOperators: true
|
||||
AlignConsecutiveShortCaseStatements:
|
||||
Enabled: false
|
||||
AcrossEmptyLines: false
|
||||
AcrossComments: false
|
||||
AlignCaseColons: false
|
||||
AlignEscapedNewlines: Left
|
||||
AlignOperands: Align
|
||||
AlignTrailingComments: false
|
||||
AlignTrailingComments:
|
||||
Kind: Never
|
||||
OverEmptyLines: 0
|
||||
AllowAllArgumentsOnNextLine: true
|
||||
AllowAllParametersOfDeclarationOnNextLine: false
|
||||
AllowShortEnumsOnASingleLine: true
|
||||
AllowBreakBeforeNoexceptSpecifier: Never
|
||||
AllowShortBlocksOnASingleLine: Never
|
||||
AllowShortCaseLabelsOnASingleLine: false
|
||||
AllowShortCompoundRequirementOnASingleLine: true
|
||||
AllowShortEnumsOnASingleLine: false
|
||||
AllowShortFunctionsOnASingleLine: None
|
||||
AllowShortLambdasOnASingleLine: All
|
||||
AllowShortIfStatementsOnASingleLine: WithoutElse
|
||||
AllowShortLoopsOnASingleLine: true
|
||||
AllowShortLambdasOnASingleLine: All
|
||||
AllowShortLoopsOnASingleLine: false
|
||||
AlwaysBreakAfterDefinitionReturnType: None
|
||||
AlwaysBreakAfterReturnType: None
|
||||
AlwaysBreakBeforeMultilineStrings: false
|
||||
@@ -27,17 +60,18 @@ AttributeMacros:
|
||||
- __capability
|
||||
BinPackArguments: false
|
||||
BinPackParameters: false
|
||||
BitFieldColonSpacing: Both
|
||||
BraceWrapping:
|
||||
AfterCaseLabel: false
|
||||
AfterClass: false
|
||||
AfterControlStatement: Never
|
||||
AfterEnum: false
|
||||
AfterExternBlock: false
|
||||
AfterFunction: false
|
||||
AfterNamespace: false
|
||||
AfterObjCDeclaration: false
|
||||
AfterStruct: false
|
||||
AfterUnion: false
|
||||
AfterExternBlock: false
|
||||
BeforeCatch: false
|
||||
BeforeElse: false
|
||||
BeforeLambdaBody: false
|
||||
@@ -46,38 +80,35 @@ BraceWrapping:
|
||||
SplitEmptyFunction: true
|
||||
SplitEmptyRecord: true
|
||||
SplitEmptyNamespace: true
|
||||
BreakBeforeBinaryOperators: None
|
||||
BreakBeforeConceptDeclarations: true
|
||||
BreakBeforeBraces: Attach
|
||||
BreakBeforeInheritanceComma: false
|
||||
BreakInheritanceList: BeforeColon
|
||||
BreakBeforeTernaryOperators: false
|
||||
BreakConstructorInitializersBeforeComma: false
|
||||
BreakConstructorInitializers: BeforeComma
|
||||
BreakAdjacentStringLiterals: true
|
||||
BreakAfterAttributes: Leave
|
||||
BreakAfterJavaFieldAnnotations: false
|
||||
BreakArrays: true
|
||||
BreakBeforeBinaryOperators: None
|
||||
BreakBeforeConceptDeclarations: Always
|
||||
BreakBeforeBraces: Attach
|
||||
BreakBeforeInlineASMColon: OnlyMultiline
|
||||
BreakBeforeTernaryOperators: false
|
||||
BreakConstructorInitializers: BeforeComma
|
||||
BreakInheritanceList: BeforeColon
|
||||
BreakStringLiterals: false
|
||||
ColumnLimit: 99
|
||||
CommentPragmas: '^ IWYU pragma:'
|
||||
QualifierAlignment: Leave
|
||||
CompactNamespaces: false
|
||||
ConstructorInitializerIndentWidth: 4
|
||||
ContinuationIndentWidth: 4
|
||||
Cpp11BracedListStyle: true
|
||||
DeriveLineEnding: true
|
||||
DerivePointerAlignment: false
|
||||
DisableFormat: false
|
||||
EmptyLineAfterAccessModifier: Never
|
||||
EmptyLineBeforeAccessModifier: LogicalBlock
|
||||
ExperimentalAutoDetectBinPacking: false
|
||||
PackConstructorInitializers: BinPack
|
||||
BasedOnStyle: ''
|
||||
ConstructorInitializerAllOnOneLineOrOnePerLine: false
|
||||
AllowAllConstructorInitializersOnNextLine: true
|
||||
FixNamespaceComments: false
|
||||
ForEachMacros:
|
||||
- foreach
|
||||
- Q_FOREACH
|
||||
- BOOST_FOREACH
|
||||
- M_EACH
|
||||
IfMacros:
|
||||
- KJ_IF_MAYBE
|
||||
IncludeBlocks: Preserve
|
||||
@@ -97,19 +128,30 @@ IncludeCategories:
|
||||
IncludeIsMainRegex: '(Test)?$'
|
||||
IncludeIsMainSourceRegex: ''
|
||||
IndentAccessModifiers: false
|
||||
IndentCaseLabels: false
|
||||
IndentCaseBlocks: false
|
||||
IndentCaseLabels: false
|
||||
IndentExternBlock: AfterExternBlock
|
||||
IndentGotoLabels: true
|
||||
IndentPPDirectives: None
|
||||
IndentExternBlock: AfterExternBlock
|
||||
IndentRequires: false
|
||||
IndentRequiresClause: false
|
||||
IndentWidth: 4
|
||||
IndentWrappedFunctionNames: true
|
||||
InsertBraces: false
|
||||
InsertNewlineAtEOF: true
|
||||
InsertTrailingCommas: None
|
||||
IntegerLiteralSeparator:
|
||||
Binary: 0
|
||||
BinaryMinDigits: 0
|
||||
Decimal: 0
|
||||
DecimalMinDigits: 0
|
||||
Hex: 0
|
||||
HexMinDigits: 0
|
||||
JavaScriptQuotes: Leave
|
||||
JavaScriptWrapImports: true
|
||||
KeepEmptyLinesAtTheStartOfBlocks: false
|
||||
KeepEmptyLinesAtEOF: false
|
||||
LambdaBodyIndentation: Signature
|
||||
LineEnding: DeriveLF
|
||||
MacroBlockBegin: ''
|
||||
MacroBlockEnd: ''
|
||||
MaxEmptyLinesToKeep: 1
|
||||
@@ -119,34 +161,44 @@ ObjCBlockIndentWidth: 4
|
||||
ObjCBreakBeforeNestedBlockParam: true
|
||||
ObjCSpaceAfterProperty: true
|
||||
ObjCSpaceBeforeProtocolList: true
|
||||
PackConstructorInitializers: BinPack
|
||||
PenaltyBreakAssignment: 10
|
||||
PenaltyBreakBeforeFirstCallParameter: 30
|
||||
PenaltyBreakComment: 10
|
||||
PenaltyBreakFirstLessLess: 0
|
||||
PenaltyBreakOpenParenthesis: 0
|
||||
PenaltyBreakScopeResolution: 500
|
||||
PenaltyBreakString: 10
|
||||
PenaltyBreakTemplateDeclaration: 10
|
||||
PenaltyExcessCharacter: 100
|
||||
PenaltyReturnTypeOnItsOwnLine: 60
|
||||
PenaltyIndentedWhitespace: 0
|
||||
PenaltyReturnTypeOnItsOwnLine: 60
|
||||
PointerAlignment: Left
|
||||
PPIndentWidth: -1
|
||||
QualifierAlignment: Leave
|
||||
ReferenceAlignment: Pointer
|
||||
ReflowComments: false
|
||||
RemoveBracesLLVM: false
|
||||
RemoveParentheses: Leave
|
||||
RemoveSemicolon: true
|
||||
RequiresClausePosition: OwnLine
|
||||
RequiresExpressionIndentation: OuterScope
|
||||
SeparateDefinitionBlocks: Leave
|
||||
ShortNamespaceLines: 1
|
||||
SkipMacroDefinitionBody: false
|
||||
SortIncludes: Never
|
||||
SortJavaStaticImport: Before
|
||||
SortUsingDeclarations: false
|
||||
SortUsingDeclarations: Never
|
||||
SpaceAfterCStyleCast: false
|
||||
SpaceAfterLogicalNot: false
|
||||
SpaceAfterTemplateKeyword: true
|
||||
SpaceAroundPointerQualifiers: Default
|
||||
SpaceBeforeAssignmentOperators: true
|
||||
SpaceBeforeCaseColon: false
|
||||
SpaceBeforeCpp11BracedList: false
|
||||
SpaceBeforeCtorInitializerColon: true
|
||||
SpaceBeforeInheritanceColon: true
|
||||
SpaceBeforeJsonColon: false
|
||||
SpaceBeforeParens: Never
|
||||
SpaceBeforeParensOptions:
|
||||
AfterControlStatements: false
|
||||
@@ -155,32 +207,35 @@ SpaceBeforeParensOptions:
|
||||
AfterFunctionDeclarationName: false
|
||||
AfterIfMacros: false
|
||||
AfterOverloadedOperator: false
|
||||
AfterPlacementOperator: true
|
||||
AfterRequiresInClause: false
|
||||
AfterRequiresInExpression: false
|
||||
BeforeNonEmptyParentheses: false
|
||||
SpaceAroundPointerQualifiers: Default
|
||||
SpaceBeforeRangeBasedForLoopColon: true
|
||||
SpaceBeforeSquareBrackets: false
|
||||
SpaceInEmptyBlock: false
|
||||
SpaceInEmptyParentheses: false
|
||||
SpacesBeforeTrailingComments: 1
|
||||
SpacesInAngles: Never
|
||||
SpacesInConditionalStatement: false
|
||||
SpacesInContainerLiterals: false
|
||||
SpacesInCStyleCastParentheses: false
|
||||
SpacesInLineCommentPrefix:
|
||||
Minimum: 1
|
||||
Maximum: -1
|
||||
SpacesInParentheses: false
|
||||
SpacesInParens: Never
|
||||
SpacesInParensOptions:
|
||||
InCStyleCasts: false
|
||||
InConditionalStatements: false
|
||||
InEmptyParentheses: false
|
||||
Other: false
|
||||
SpacesInSquareBrackets: false
|
||||
SpaceBeforeSquareBrackets: false
|
||||
BitFieldColonSpacing: Both
|
||||
Standard: c++03
|
||||
Standard: c++20
|
||||
StatementAttributeLikeMacros:
|
||||
- Q_EMIT
|
||||
StatementMacros:
|
||||
- Q_UNUSED
|
||||
- QT_REQUIRE_VERSION
|
||||
TabWidth: 4
|
||||
UseCRLF: false
|
||||
UseTab: Never
|
||||
VerilogBreakBetweenInstancePorts: true
|
||||
WhitespaceSensitiveMacros:
|
||||
- STRINGIZE
|
||||
- PP_STRINGIZE
|
||||
|
||||
17
.clangd
Normal file
@@ -0,0 +1,17 @@
|
||||
CompileFlags:
|
||||
Add:
|
||||
- -Wno-unknown-warning-option
|
||||
- -Wno-format
|
||||
Remove:
|
||||
- -mword-relocations
|
||||
|
||||
Diagnostics:
|
||||
ClangTidy:
|
||||
FastCheckFilter: None
|
||||
|
||||
---
|
||||
|
||||
If:
|
||||
PathMatch: .*\.h
|
||||
Diagnostics:
|
||||
UnusedIncludes: None
|
||||
325
.drone.yml
@@ -22,7 +22,8 @@ steps:
|
||||
- export DIST_SUFFIX=${DRONE_TAG}c
|
||||
- export WORKFLOW_BRANCH_OR_TAG=release-cfw
|
||||
- export FORCE_NO_DIRTY=yes
|
||||
- rm -rf assets/resources/apps/
|
||||
- export FBT_GIT_SUBMODULE_SHALLOW=1
|
||||
- rm -rf applications/main/clock_app/resources/apps/
|
||||
- rm -rf build/
|
||||
- rm -rf dist/
|
||||
- rm -rf .sconsign.dblite
|
||||
@@ -42,9 +43,13 @@ steps:
|
||||
- export DIST_SUFFIX=${DRONE_TAG}
|
||||
- export WORKFLOW_BRANCH_OR_TAG=release-cfw
|
||||
- export FORCE_NO_DIRTY=yes
|
||||
- export FBT_GIT_SUBMODULE_SHALLOW=1
|
||||
- wget https://github.com/xMasterX/all-the-plugins/releases/latest/download/all-the-apps-base.tgz
|
||||
- tar zxvf all-the-apps-base.tgz
|
||||
- cp -R base_pack_build/artifacts-base/* assets/resources/apps/
|
||||
- tar zxf all-the-apps-base.tgz
|
||||
- mkdir -p applications/main/clock_app/resources/apps
|
||||
- mkdir -p applications/main/clock_app/resources/apps_data
|
||||
- cp -R base_pack_build/artifacts-base/* applications/main/clock_app/resources/apps/
|
||||
- cp -R base_pack_build/apps_data/* applications/main/clock_app/resources/apps_data/
|
||||
- rm -rf base_pack_build
|
||||
- rm -rf all-the-apps-base.tgz
|
||||
- rm -f build/f7-firmware-C/toolbox/version.*
|
||||
@@ -62,102 +67,46 @@ steps:
|
||||
pull: never
|
||||
commands:
|
||||
- wget https://github.com/xMasterX/all-the-plugins/releases/latest/download/all-the-apps-extra.tgz
|
||||
- tar zxvf all-the-apps-extra.tgz
|
||||
- cp -R extra_pack_build/artifacts-extra/* assets/resources/apps/
|
||||
- tar zxf all-the-apps-extra.tgz
|
||||
- mkdir -p applications/main/clock_app/resources/apps
|
||||
- cp -R extra_pack_build/artifacts-extra/* applications/main/clock_app/resources/apps/
|
||||
- rm -rf extra_pack_build
|
||||
- export DIST_SUFFIX=${DRONE_TAG}e
|
||||
- export WORKFLOW_BRANCH_OR_TAG=release-cfw
|
||||
- export FORCE_NO_DIRTY=yes
|
||||
- export FBT_GIT_SUBMODULE_SHALLOW=1
|
||||
- rm -f build/f7-firmware-C/toolbox/version.*
|
||||
- ./fbt COMPACT=1 DEBUG=0 updater_package
|
||||
- mkdir artifacts-extra-apps
|
||||
- mv dist/f7-C/* artifacts-extra-apps/
|
||||
- ls -laS artifacts-extra-apps
|
||||
- ls -laS artifacts-extra-apps/f7-update-${DRONE_TAG}e
|
||||
environment:
|
||||
FBT_TOOLS_CUSTOM_LINK:
|
||||
from_secret: fbt_link
|
||||
|
||||
- name: "Build with RGB patch"
|
||||
image: hfdj/fztools
|
||||
pull: never
|
||||
commands:
|
||||
- git apply .ci_files/rgb.patch
|
||||
- export DIST_SUFFIX=${DRONE_TAG}r
|
||||
- export WORKFLOW_BRANCH_OR_TAG=release-cfw-rgb
|
||||
- export FORCE_NO_DIRTY=yes
|
||||
- rm -f build/f7-firmware-C/toolbox/version.*
|
||||
- ./fbt COMPACT=1 DEBUG=0 updater_package
|
||||
- mkdir artifacts-rgb-patch
|
||||
- mv dist/f7-C/* artifacts-rgb-patch/
|
||||
- ls -laS artifacts-rgb-patch
|
||||
- ls -laS artifacts-rgb-patch/f7-update-${DRONE_TAG}r
|
||||
environment:
|
||||
FBT_TOOLS_CUSTOM_LINK:
|
||||
from_secret: fbt_link
|
||||
|
||||
- name: "Build with ofw anims"
|
||||
image: hfdj/fztools
|
||||
pull: never
|
||||
commands:
|
||||
- git clean -df
|
||||
- git checkout -- .
|
||||
- rm -f assets/dolphin/external/manifest.txt
|
||||
- cp .ci_files/anims_ofw.txt assets/dolphin/external/manifest.txt
|
||||
- rm -rf assets/resources/apps/
|
||||
- export DIST_SUFFIX=${DRONE_TAG}n
|
||||
- export WORKFLOW_BRANCH_OR_TAG=no-custom-anims
|
||||
- export FORCE_NO_DIRTY=yes
|
||||
- rm -f build/f7-firmware-C/toolbox/version.*
|
||||
- ./fbt COMPACT=1 DEBUG=0 updater_package
|
||||
- wget https://github.com/xMasterX/all-the-plugins/releases/latest/download/all-the-apps-base.tgz
|
||||
- tar zxvf all-the-apps-base.tgz
|
||||
- cp -R base_pack_build/artifacts-base/* assets/resources/apps/
|
||||
- rm -rf base_pack_build
|
||||
- rm -rf all-the-apps-base.tgz
|
||||
- rm -f build/f7-firmware-C/toolbox/version.*
|
||||
- ./fbt COMPACT=1 DEBUG=0 updater_package
|
||||
- mkdir artifacts-ofw-anims
|
||||
- mv dist/f7-C/* artifacts-ofw-anims/
|
||||
- ls -laS artifacts-ofw-anims
|
||||
- ls -laS artifacts-ofw-anims/f7-update-${DRONE_TAG}n
|
||||
- sed -i 's/(version)/'${DRONE_TAG}'/g' CHANGELOG.md
|
||||
- echo '# [Install via Web Updater](https://lab.flipper.net/?url=https://unleashedflip.com/fw/${DRONE_TAG}/flipper-z-f7-update-'${DRONE_TAG}'.tgz&channel=release-cfw&version='${DRONE_TAG}')' >> CHANGELOG.md
|
||||
- echo '# Install FW via Web Updater:' >> CHANGELOG.md
|
||||
- echo '### [Default](https://lab.flipper.net/?url=https://unleashedflip.com/fw/${DRONE_TAG}/flipper-z-f7-update-'${DRONE_TAG}'.tgz&target=f7&channel=release-cfw&version='${DRONE_TAG}') > ` `' >> CHANGELOG.md
|
||||
- echo '' >> CHANGELOG.md
|
||||
- echo '### [Version with only main apps - Install via Web Updater](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-'${DRONE_TAG}'c.tgz&channel=release-cfw&version='${DRONE_TAG}'c)' >> CHANGELOG.md
|
||||
- echo '### [Extra apps](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-'${DRONE_TAG}'e.tgz&target=f7&channel=release-cfw&version='${DRONE_TAG}'e) > `e`' >> CHANGELOG.md
|
||||
- echo '' >> CHANGELOG.md
|
||||
- echo '### [Version without custom animations - Install via Web Updater](https://lab.flipper.net/?url=https://unleashedflip.com/fw_no_anim/flipper-z-f7-update-'${DRONE_TAG}'n.tgz&channel=release-cfw&version='${DRONE_TAG}'n)' >> CHANGELOG.md
|
||||
- echo '' >> CHANGELOG.md
|
||||
- echo '### [Version with RGB patch - only for hardware mod! - Install via Web Updater](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-'${DRONE_TAG}'r.tgz&channel=release-cfw&version='${DRONE_TAG}'r)' >> CHANGELOG.md
|
||||
- echo '' >> CHANGELOG.md
|
||||
- echo '## [Version with Extra apps - Install via Web Updater](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-'${DRONE_TAG}'e.tgz&channel=release-cfw&version='${DRONE_TAG}'e)' >> CHANGELOG.md
|
||||
- echo '### [No apps](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-'${DRONE_TAG}'c.tgz&target=f7&channel=release-cfw&version='${DRONE_TAG}'c) > `c`' >> CHANGELOG.md
|
||||
environment:
|
||||
FBT_TOOLS_CUSTOM_LINK:
|
||||
from_secret: fbt_link
|
||||
|
||||
- name: "Bundle self-update packages"
|
||||
image: kramos/alpine-zip
|
||||
image: joshkeegan/zip
|
||||
commands:
|
||||
- cp artifacts-extra-apps/flipper-z-f7-update-${DRONE_TAG}e.tgz .
|
||||
- cp artifacts-rgb-patch/flipper-z-f7-update-${DRONE_TAG}r.tgz .
|
||||
- cp artifacts-clean/flipper-z-f7-update-${DRONE_TAG}c.tgz .
|
||||
- cp artifacts-ofw-anims/flipper-z-f7-update-${DRONE_TAG}n.tgz .
|
||||
- cp artifacts-default/flipper-z-f7-update-${DRONE_TAG}.tgz .
|
||||
- zip -r artifacts-extra-apps/flipper-z-f7-update-${DRONE_TAG}e.zip artifacts-extra-apps/f7-update-${DRONE_TAG}e
|
||||
- zip -r artifacts-rgb-patch/flipper-z-f7-update-${DRONE_TAG}r.zip artifacts-rgb-patch/f7-update-${DRONE_TAG}r
|
||||
- zip -r artifacts-clean/flipper-z-f7-update-${DRONE_TAG}c.zip artifacts-clean/f7-update-${DRONE_TAG}c
|
||||
- zip -r artifacts-ofw-anims/flipper-z-f7-update-${DRONE_TAG}n.zip artifacts-ofw-anims/f7-update-${DRONE_TAG}n
|
||||
- zip -r artifacts-default/flipper-z-f7-update-${DRONE_TAG}.zip artifacts-default/f7-update-${DRONE_TAG}
|
||||
- tar czpf artifacts-default/flipper-z-any-scripts-${DRONE_TAG}.tgz scripts
|
||||
- rm -rf artifacts-extra-apps/f7-update-${DRONE_TAG}
|
||||
- rm -rf artifacts-rgb-patch/f7-update-${DRONE_TAG}
|
||||
- rm -rf artifacts-clean/f7-update-${DRONE_TAG}
|
||||
- rm -rf artifacts-ofw-anims/f7-update-${DRONE_TAG}
|
||||
- rm -rf artifacts-default/f7-update-${DRONE_TAG}
|
||||
- ls -laS artifacts-extra-apps
|
||||
- ls -laS artifacts-rgb-patch
|
||||
- ls -laS artifacts-clean
|
||||
- ls -laS artifacts-ofw-anims
|
||||
- ls -laS artifacts-default
|
||||
- mv artifacts-default/ ${DRONE_TAG}
|
||||
- ls -laS ${DRONE_TAG}
|
||||
@@ -183,21 +132,6 @@ steps:
|
||||
- ${DRONE_TAG}/*.dfu
|
||||
- ${DRONE_TAG}/*.bin
|
||||
|
||||
- name: "Upload no-anims to updates srv"
|
||||
image: appleboy/drone-scp:linux-amd64
|
||||
settings:
|
||||
host:
|
||||
from_secret: dep_host
|
||||
username:
|
||||
from_secret: dep_user
|
||||
password:
|
||||
from_secret: dep_passwd
|
||||
port:
|
||||
from_secret: dep_port
|
||||
target:
|
||||
from_secret: dep_target_noanim
|
||||
source: flipper-z-f7-update-${DRONE_TAG}n.tgz
|
||||
|
||||
- name: "Upload extra apps version to updates srv"
|
||||
image: appleboy/drone-scp:linux-amd64
|
||||
settings:
|
||||
@@ -213,21 +147,6 @@ steps:
|
||||
from_secret: dep_target_extra
|
||||
source: flipper-z-f7-update-${DRONE_TAG}e.tgz
|
||||
|
||||
- name: "Upload rgb patch version to updates srv"
|
||||
image: appleboy/drone-scp:linux-amd64
|
||||
settings:
|
||||
host:
|
||||
from_secret: dep_host
|
||||
username:
|
||||
from_secret: dep_user
|
||||
password:
|
||||
from_secret: dep_passwd
|
||||
port:
|
||||
from_secret: dep_port
|
||||
target:
|
||||
from_secret: dep_target_extra
|
||||
source: flipper-z-f7-update-${DRONE_TAG}r.tgz
|
||||
|
||||
- name: "Upload clean version to updates srv"
|
||||
image: appleboy/drone-scp:linux-amd64
|
||||
settings:
|
||||
@@ -255,9 +174,7 @@ steps:
|
||||
files:
|
||||
- ${DRONE_TAG}/*.tgz
|
||||
- ${DRONE_TAG}/*.zip
|
||||
- artifacts-ofw-anims/*.tgz
|
||||
- artifacts-extra-apps/*.tgz
|
||||
- artifacts-rgb-patch/*.tgz
|
||||
- artifacts-clean/*.tgz
|
||||
title: ${DRONE_TAG}
|
||||
note: CHANGELOG.md
|
||||
@@ -277,51 +194,6 @@ steps:
|
||||
commands:
|
||||
- curl -X POST -F 'key='$UPD_KEY'' $UPD_URL
|
||||
|
||||
- name: "Send files to telegram"
|
||||
image: appleboy/drone-telegram
|
||||
settings:
|
||||
token:
|
||||
from_secret: tgtoken
|
||||
to:
|
||||
from_secret: tgid
|
||||
format: markdown
|
||||
message: "New Unleashed firmware released!
|
||||
|
||||
|
||||
Version: {{build.tag}}
|
||||
|
||||
|
||||
[-> Sponsor our project](https://boosty.to/mmxdev)
|
||||
|
||||
|
||||
[-Github - Changelog-](https://github.com/DarkFlippers/unleashed-firmware/releases/tag/${DRONE_TAG})
|
||||
|
||||
|
||||
[-How to install firmware-](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/HowToInstall.md)
|
||||
|
||||
|
||||
[-Download latest extra apps pack-](https://github.com/xMasterX/all-the-plugins/releases/latest)
|
||||
|
||||
|
||||
[-Install FW via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw/${DRONE_TAG}/flipper-z-f7-update-${DRONE_TAG}.tgz&channel=release-cfw&version=${DRONE_TAG})
|
||||
|
||||
|
||||
[-Version with only main apps - Install FW via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-${DRONE_TAG}c.tgz&channel=release-cfw&version=${DRONE_TAG}c)
|
||||
|
||||
|
||||
[-Version without custom animations - Install FW via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw_no_anim/flipper-z-f7-update-${DRONE_TAG}n.tgz&channel=release-cfw&version=${DRONE_TAG}n)
|
||||
|
||||
|
||||
[-Version with RGB patch - only for hardware mod! - Install FW via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-${DRONE_TAG}r.tgz&channel=release-cfw&version=${DRONE_TAG}r)
|
||||
|
||||
|
||||
[-Version with RGB patch - only for hardware mod! - Direct download-](https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-${DRONE_TAG}r.tgz)
|
||||
|
||||
|
||||
[-Version with Extra apps - Install FW via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-${DRONE_TAG}e.tgz&channel=release-cfw&version=${DRONE_TAG}e)"
|
||||
document:
|
||||
- ${DRONE_TAG}/flipper-z-f7-update-${DRONE_TAG}.tgz
|
||||
|
||||
- name: "Send discord notification"
|
||||
image: hfdj/fztools
|
||||
pull: never
|
||||
@@ -329,9 +201,42 @@ steps:
|
||||
DISCORD_WEBHOOK:
|
||||
from_secret: dis_release_webhook
|
||||
commands:
|
||||
- wget "https://raw.githubusercontent.com/fieu/discord.sh/e1dc1a7595efad2cad8f072f0b3531c470f5b7c8/discord.sh"
|
||||
- wget "https://raw.githubusercontent.com/fieu/discord.sh/2253303efc0e7211ac2777d2535054cbb872f1e0/discord.sh"
|
||||
- chmod +x ./discord.sh
|
||||
- ./discord.sh --text 'New Unleashed firmware released!\n\nVersion - '${DRONE_TAG}'\n\n[-> Sponsor our project](https://boosty.to/mmxdev)\n\n[[Github - Changelog]](https://github.com/DarkFlippers/unleashed-firmware/releases/tag/'${DRONE_TAG}')\n\n[-How to install firmware-](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/HowToInstall.md)\n\n[-Download latest extra apps pack-](https://github.com/xMasterX/all-the-plugins/releases/latest)\n\n[-Install FW via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw/'${DRONE_TAG}'/flipper-z-f7-update-'${DRONE_TAG}'.tgz&channel=release-cfw&version='${DRONE_TAG}')\n\n[-Version with only main apps - Install FW via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-'${DRONE_TAG}'c.tgz&channel=release-cfw&version='${DRONE_TAG}'c)\n\n[-Version without custom animations - Install FW via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw_no_anim/flipper-z-f7-update-'${DRONE_TAG}'n.tgz&channel=release-cfw&version='${DRONE_TAG}'n)\n\n[-Version with RGB patch - only for hardware mod! - Install FW via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-'${DRONE_TAG}'r.tgz&channel=release-cfw&version='${DRONE_TAG}'r)\n\n[-Version with RGB patch - only for hardware mod! - Direct download-](https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-'${DRONE_TAG}'r.tgz)\n\n[-Version with Extra apps - Install FW via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-'${DRONE_TAG}'e.tgz&channel=release-cfw&version='${DRONE_TAG}'e)'
|
||||
- sed -n '/## Main changes/,/## Other changes/p' CHANGELOG.md | sed -e 's/## Main changes//' -e 's/## Other changes//' > changelogcut.txt
|
||||
- head -c 1200 changelogcut.txt > changelogcutfin.txt
|
||||
- truncate -s -1 changelogcutfin.txt
|
||||
- tail -c +2 changelogcutfin.txt > changelogready.txt
|
||||
- rm -f changelogcut.txt
|
||||
- rm -f changelogcutfin.txt
|
||||
- echo '' >> changelogready.txt
|
||||
- echo '## [Read full changelog](https://github.com/DarkFlippers/unleashed-firmware/releases/tag/'${DRONE_TAG}')' >> changelogready.txt
|
||||
- sed -i 's/(releasever)/'${DRONE_TAG}'/g' .ci_files/release_msg_discord.txt
|
||||
- sed -i 's/(releasever)/'${DRONE_TAG}'/g' .ci_files/release_msg_telegram.txt
|
||||
- cp .ci_files/release_msg_telegram.txt tg_release_message.tpl
|
||||
- ./discord.sh --title "Main changes" --description "$(jq -Rs . <changelogready.txt | cut -c 2- | rev | cut -c 2- | rev)" --timestamp --text "$(jq -Rs . <.ci_files/release_msg_discord.txt | cut -c 2- | rev | cut -c 2- | rev)"
|
||||
|
||||
- name: "Send notification to telegram"
|
||||
image: appleboy/drone-telegram
|
||||
settings:
|
||||
token:
|
||||
from_secret: tgtoken
|
||||
to:
|
||||
from_secret: tgid
|
||||
format: markdown
|
||||
message_file: tg_release_message.tpl
|
||||
|
||||
- name: "Send default build to telegram"
|
||||
image: appleboy/drone-telegram
|
||||
settings:
|
||||
token:
|
||||
from_secret: tgtoken
|
||||
to:
|
||||
from_secret: tgid
|
||||
format: markdown
|
||||
message: "Default build:"
|
||||
document:
|
||||
- ${DRONE_TAG}/flipper-z-f7-update-${DRONE_TAG}.tgz
|
||||
|
||||
- name: "Send clean build to telegram"
|
||||
image: appleboy/drone-telegram
|
||||
@@ -353,7 +258,7 @@ steps:
|
||||
to:
|
||||
from_secret: tgid
|
||||
format: markdown
|
||||
message: "Build with extra apps pack:"
|
||||
message: "Build with extra apps:"
|
||||
document:
|
||||
- flipper-z-f7-update-${DRONE_TAG}e.tgz
|
||||
|
||||
@@ -362,7 +267,7 @@ trigger:
|
||||
- tag
|
||||
|
||||
node:
|
||||
typ: haupt
|
||||
typ: dev2
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
@@ -389,7 +294,8 @@ steps:
|
||||
- export DIST_SUFFIX=${DRONE_BUILD_NUMBER}c
|
||||
- export WORKFLOW_BRANCH_OR_TAG=dev-cfw
|
||||
- export FORCE_NO_DIRTY=yes
|
||||
- rm -rf assets/resources/apps/
|
||||
- export FBT_GIT_SUBMODULE_SHALLOW=1
|
||||
- rm -rf applications/main/clock_app/resources/apps/
|
||||
- rm -rf build/
|
||||
- rm -rf dist/
|
||||
- rm -rf .sconsign.dblite
|
||||
@@ -410,9 +316,13 @@ steps:
|
||||
- export DIST_SUFFIX=${DRONE_BUILD_NUMBER}
|
||||
- export WORKFLOW_BRANCH_OR_TAG=dev-cfw
|
||||
- export FORCE_NO_DIRTY=yes
|
||||
- export FBT_GIT_SUBMODULE_SHALLOW=1
|
||||
- wget https://github.com/xMasterX/all-the-plugins/releases/latest/download/all-the-apps-base.tgz
|
||||
- tar zxvf all-the-apps-base.tgz
|
||||
- cp -R base_pack_build/artifacts-base/* assets/resources/apps/
|
||||
- tar zxf all-the-apps-base.tgz
|
||||
- mkdir -p applications/main/clock_app/resources/apps
|
||||
- mkdir -p applications/main/clock_app/resources/apps_data
|
||||
- cp -R base_pack_build/artifacts-base/* applications/main/clock_app/resources/apps/
|
||||
- cp -R base_pack_build/apps_data/* applications/main/clock_app/resources/apps_data/
|
||||
- rm -rf base_pack_build
|
||||
- rm -rf all-the-apps-base.tgz
|
||||
- rm -f build/f7-firmware-C/toolbox/version.*
|
||||
@@ -430,12 +340,14 @@ steps:
|
||||
pull: never
|
||||
commands:
|
||||
- wget https://github.com/xMasterX/all-the-plugins/releases/latest/download/all-the-apps-extra.tgz
|
||||
- tar zxvf all-the-apps-extra.tgz
|
||||
- cp -R extra_pack_build/artifacts-extra/* assets/resources/apps/
|
||||
- tar zxf all-the-apps-extra.tgz
|
||||
- mkdir -p applications/main/clock_app/resources/apps
|
||||
- cp -R extra_pack_build/artifacts-extra/* applications/main/clock_app/resources/apps/
|
||||
- rm -rf extra_pack_build
|
||||
- export DIST_SUFFIX=${DRONE_BUILD_NUMBER}e
|
||||
- export WORKFLOW_BRANCH_OR_TAG=dev-cfw
|
||||
- export FORCE_NO_DIRTY=yes
|
||||
- export FBT_GIT_SUBMODULE_SHALLOW=1
|
||||
- rm -f build/f7-firmware-C/toolbox/version.*
|
||||
- ./fbt COMPACT=1 DEBUG=0 updater_package
|
||||
- mkdir artifacts-extra-apps
|
||||
@@ -446,29 +358,10 @@ steps:
|
||||
FBT_TOOLS_CUSTOM_LINK:
|
||||
from_secret: fbt_link
|
||||
|
||||
- name: "Build dev with rgb patch"
|
||||
image: hfdj/fztools
|
||||
pull: never
|
||||
commands:
|
||||
- git apply .ci_files/rgb.patch
|
||||
- export DIST_SUFFIX=${DRONE_BUILD_NUMBER}r
|
||||
- export WORKFLOW_BRANCH_OR_TAG=dev-cfw-rgb
|
||||
- export FORCE_NO_DIRTY=yes
|
||||
- rm -f build/f7-firmware-C/toolbox/version.*
|
||||
- ./fbt COMPACT=1 DEBUG=0 updater_package
|
||||
- mkdir artifacts-rgb-patch
|
||||
- mv dist/f7-C/* artifacts-rgb-patch/
|
||||
- ls -laS artifacts-rgb-patch
|
||||
- ls -laS artifacts-rgb-patch/f7-update-${DRONE_BUILD_NUMBER}r
|
||||
environment:
|
||||
FBT_TOOLS_CUSTOM_LINK:
|
||||
from_secret: fbt_link
|
||||
|
||||
- name: "Bundle self-update packages"
|
||||
image: kramos/alpine-zip
|
||||
image: joshkeegan/zip
|
||||
commands:
|
||||
- cp artifacts-extra-apps/flipper-z-f7-update-${DRONE_BUILD_NUMBER}e.tgz .
|
||||
- cp artifacts-rgb-patch/flipper-z-f7-update-${DRONE_BUILD_NUMBER}r.tgz .
|
||||
- cp artifacts-clean/flipper-z-f7-update-${DRONE_BUILD_NUMBER}c.tgz .
|
||||
- cp artifacts-default/flipper-z-f7-update-${DRONE_BUILD_NUMBER}.tgz .
|
||||
- rm -rf artifacts-default/f7-update-${DRONE_BUILD_NUMBER}
|
||||
@@ -527,21 +420,6 @@ steps:
|
||||
from_secret: dep_target_extra
|
||||
source: flipper-z-f7-update-${DRONE_BUILD_NUMBER}e.tgz
|
||||
|
||||
- name: "Upload rgb patch version to updates srv"
|
||||
image: appleboy/drone-scp:linux-amd64
|
||||
settings:
|
||||
host:
|
||||
from_secret: dep_host
|
||||
username:
|
||||
from_secret: dep_user
|
||||
password:
|
||||
from_secret: dep_passwd
|
||||
port:
|
||||
from_secret: dep_port
|
||||
target:
|
||||
from_secret: dep_target_extra
|
||||
source: flipper-z-f7-update-${DRONE_BUILD_NUMBER}r.tgz
|
||||
|
||||
- name: "Upload clean version to updates srv"
|
||||
image: appleboy/drone-scp:linux-amd64
|
||||
settings:
|
||||
@@ -568,6 +446,30 @@ steps:
|
||||
commands:
|
||||
- curl -X POST -F 'key='$UPD_KEY'' $UPD_URL
|
||||
|
||||
- name: "Send discord notification"
|
||||
image: hfdj/fztools
|
||||
pull: never
|
||||
environment:
|
||||
DISCORD_WEBHOOK:
|
||||
from_secret: dis_dev_webhook
|
||||
commands:
|
||||
- wget "https://raw.githubusercontent.com/fieu/discord.sh/2253303efc0e7211ac2777d2535054cbb872f1e0/discord.sh"
|
||||
- chmod +x ./discord.sh
|
||||
- sed -n '/## Main changes/,/## Other changes/p' CHANGELOG.md | sed -e 's/## Main changes//' -e 's/## Other changes//' > changelogcut.txt
|
||||
- head -c 1200 changelogcut.txt > changelogcutfin.txt
|
||||
- truncate -s -1 changelogcutfin.txt
|
||||
- tail -c +2 changelogcutfin.txt > changelogready.txt
|
||||
- rm -f changelogcut.txt
|
||||
- rm -f changelogcutfin.txt
|
||||
- echo '' >> changelogready.txt
|
||||
- echo '## [Read full changelog](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/CHANGELOG.md)' >> changelogready.txt
|
||||
- sed -i 's/(buildnum)/'${DRONE_BUILD_NUMBER}'/g' .ci_files/devbuild_msg_discord.txt
|
||||
- sed -i 's/(commitsha)/'${DRONE_COMMIT_SHA}'/g' .ci_files/devbuild_msg_discord.txt
|
||||
- sed -i 's/(buildnum)/'${DRONE_BUILD_NUMBER}'/g' .ci_files/devbuild_msg_telegram.txt
|
||||
- sed -i 's/(commitsha)/'${DRONE_COMMIT_SHA}'/g' .ci_files/devbuild_msg_telegram.txt
|
||||
- cp .ci_files/devbuild_msg_telegram.txt tg_dev_message.tpl
|
||||
- ./discord.sh --title "Changelog" --description "$(jq -Rs . <changelogready.txt | cut -c 2- | rev | cut -c 2- | rev)" --timestamp --text "$(jq -Rs . <.ci_files/devbuild_msg_discord.txt | cut -c 2- | rev | cut -c 2- | rev)"
|
||||
|
||||
- name: "Send message to telegram"
|
||||
image: appleboy/drone-telegram
|
||||
settings:
|
||||
@@ -576,33 +478,9 @@ steps:
|
||||
to:
|
||||
from_secret: tgid_dev
|
||||
format: markdown
|
||||
message: "Unleashed firmware dev build successful!
|
||||
message_file: tg_dev_message.tpl
|
||||
|
||||
|
||||
Build: {{build.number}}
|
||||
|
||||
Commit: https://github.com/DarkFlippers/unleashed-firmware/commit/{{commit.sha}}
|
||||
|
||||
|
||||
|
||||
[-> Sponsor our project](https://boosty.to/mmxdev)
|
||||
|
||||
|
||||
[-Install via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw/dev/flipper-z-f7-update-${DRONE_BUILD_NUMBER}.tgz&channel=dev-cfw&version=${DRONE_BUILD_NUMBER})
|
||||
|
||||
|
||||
[-Version with only main apps - Install via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-${DRONE_BUILD_NUMBER}c.tgz&channel=dev-cfw&version=${DRONE_BUILD_NUMBER}c)
|
||||
|
||||
|
||||
[-Version with RGB patch - only for hardware mod! - Install via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-${DRONE_BUILD_NUMBER}r.tgz&channel=dev-cfw&version=${DRONE_BUILD_NUMBER}r)
|
||||
|
||||
|
||||
[-Version with RGB patch - only for hardware mod! - Direct download-](https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-${DRONE_BUILD_NUMBER}r.tgz)
|
||||
|
||||
|
||||
[-Version with Extra apps - Install via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-${DRONE_BUILD_NUMBER}e.tgz&channel=dev-cfw&version=${DRONE_BUILD_NUMBER}e)"
|
||||
|
||||
- name: "Send build to telegram"
|
||||
- name: "Send default build to telegram"
|
||||
image: appleboy/drone-telegram
|
||||
settings:
|
||||
token:
|
||||
@@ -610,7 +488,7 @@ steps:
|
||||
to:
|
||||
from_secret: tgid_dev
|
||||
format: markdown
|
||||
message: "Regular Build:"
|
||||
message: "Default Build:"
|
||||
document:
|
||||
- dev/flipper-z-f7-update-${DRONE_BUILD_NUMBER}.tgz
|
||||
|
||||
@@ -634,21 +512,10 @@ steps:
|
||||
to:
|
||||
from_secret: tgid_dev
|
||||
format: markdown
|
||||
message: "Build with extra apps pack:"
|
||||
message: "Build with extra apps:"
|
||||
document:
|
||||
- flipper-z-f7-update-${DRONE_BUILD_NUMBER}e.tgz
|
||||
|
||||
- name: "Send discord notification"
|
||||
image: hfdj/fztools
|
||||
pull: never
|
||||
environment:
|
||||
DISCORD_WEBHOOK:
|
||||
from_secret: dis_dev_webhook
|
||||
commands:
|
||||
- wget "https://raw.githubusercontent.com/fieu/discord.sh/e1dc1a7595efad2cad8f072f0b3531c470f5b7c8/discord.sh"
|
||||
- chmod +x ./discord.sh
|
||||
- ./discord.sh --text 'Unleashed firmware dev build successful!\n\nBuild - '${DRONE_BUILD_NUMBER}'\n\nCommit - https://github.com/DarkFlippers/unleashed-firmware/commit/'${DRONE_COMMIT_SHA}'\n\n[-> Sponsor our project](https://boosty.to/mmxdev)\n\n[-Version with Extra apps - Install via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-'${DRONE_BUILD_NUMBER}'e.tgz&channel=dev-cfw&version='${DRONE_BUILD_NUMBER}'e)\n\n[-Version with only main apps - Install via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-'${DRONE_BUILD_NUMBER}'c.tgz&channel=dev-cfw&version='${DRONE_BUILD_NUMBER}'c)\n\n[-Version with RGB patch - only for hardware mod! - Install via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-'${DRONE_BUILD_NUMBER}'r.tgz&channel=dev-cfw&version='${DRONE_BUILD_NUMBER}'r)\n\n[-Version with RGB patch - only for hardware mod! - Direct download-](https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-'${DRONE_BUILD_NUMBER}'r.tgz)\n\n[-Install via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw/dev/flipper-z-f7-update-'${DRONE_BUILD_NUMBER}'.tgz&channel=dev-cfw&version='${DRONE_BUILD_NUMBER}')'
|
||||
|
||||
trigger:
|
||||
branch:
|
||||
- dev
|
||||
@@ -656,4 +523,4 @@ trigger:
|
||||
- push
|
||||
|
||||
node:
|
||||
typ: haupt
|
||||
typ: dev2
|
||||
|
||||
@@ -8,6 +8,3 @@ charset = utf-8
|
||||
[*.{cpp,h,c,py,sh}]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
[{Makefile,*.mk}]
|
||||
indent_size = tab
|
||||
|
||||
114
.github/workflows/codeql.yml
vendored
Normal file
@@ -0,0 +1,114 @@
|
||||
# For most projects, this workflow file will not need changing; you simply need
|
||||
# to commit it to your repository.
|
||||
#
|
||||
# You may wish to alter this file to override the set of languages analyzed,
|
||||
# or to provide custom queries or build logic.
|
||||
#
|
||||
# ******** NOTE ********
|
||||
# We have attempted to detect the languages in your repository. Please check
|
||||
# the `language` matrix defined below to confirm you have the correct set of
|
||||
# supported CodeQL languages.
|
||||
#
|
||||
name: "CodeQL"
|
||||
run-name: "CodeQL Analyze ${{ github.ref_name }} by @${{ github.ACTOR }}"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: ["dev"]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze
|
||||
# Runner size impacts CodeQL analysis time. To learn more, please see:
|
||||
# - https://gh.io/recommended-hardware-resources-for-running-codeql
|
||||
# - https://gh.io/supported-runners-and-hardware-resources
|
||||
# - https://gh.io/using-larger-runners
|
||||
# Consider using larger runners for possible analysis time improvements.
|
||||
runs-on: [ "ubuntu-latest" ]
|
||||
timeout-minutes: 60
|
||||
permissions:
|
||||
actions: read
|
||||
contents: read
|
||||
security-events: write
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
language: ["cpp"]
|
||||
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift' ]
|
||||
# Use only 'java' to analyze code written in Java, Kotlin or both
|
||||
# Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
|
||||
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
|
||||
env:
|
||||
PATH_SARIF_DIR: ".github/results.sarif"
|
||||
PATH_SARIF_FILE: ".github/results.sarif/${{ matrix.language }}.sarif"
|
||||
FBT_NO_SYNC: 0
|
||||
DIST_SUFFIX: "codeql"
|
||||
WORKFLOW_BRANCH_OR_TAG: release-cfw
|
||||
LANG_CATEGORY: "/language:${{matrix.language}}"
|
||||
|
||||
steps:
|
||||
- name: Checkout Firmware Files
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
clean: "true"
|
||||
submodules: "true"
|
||||
fetch-depth: "0"
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v2
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
setup-python-dependencies: true
|
||||
|
||||
- name: Resolve CodeQL Build Env
|
||||
uses: github/codeql-action/resolve-environment@v2
|
||||
with:
|
||||
language: ${{ matrix.language }}
|
||||
#debug: true
|
||||
|
||||
- name: Build Firmware
|
||||
shell: bash
|
||||
if: ${{ success() }}
|
||||
run: |
|
||||
./fbt COMPACT=1 DEBUG=0 FBT_NO_SYNC=${{ env.FBT_NO_SYNC }}
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v2
|
||||
if: ${{ success() }}
|
||||
with:
|
||||
threads: 4
|
||||
category: "${{ env.LANG_CATEGORY }}"
|
||||
output: "${{ env.PATH_SARIF_DIR }}"
|
||||
upload-database: false
|
||||
upload: "failure-only" # disable the upload here - we will upload in a different action
|
||||
|
||||
- name: Filter dirs for SARIF
|
||||
uses: advanced-security/filter-sarif@v1
|
||||
if: ${{ success() }}
|
||||
with:
|
||||
# filter out all test files unless they contain a sql-injection vulnerability
|
||||
patterns: |
|
||||
-build/**
|
||||
-dist/**
|
||||
-toolchain/**
|
||||
-lib/**
|
||||
input: "${{ env.PATH_SARIF_FILE }}"
|
||||
output: "${{ env.PATH_SARIF_FILE }}"
|
||||
|
||||
- name: Upload CodeQL SARIF
|
||||
uses: github/codeql-action/upload-sarif@v2
|
||||
if: ${{ success() }}
|
||||
with:
|
||||
category: "${{ env.LANG_CATEGORY }}"
|
||||
sarif_file: "${{ env.PATH_SARIF_FILE }}"
|
||||
|
||||
# optional: for debugging the uploaded sarif
|
||||
# - name: Upload loc as a Build Artifact
|
||||
# uses: actions/upload-artifact@v3
|
||||
# with:
|
||||
# name: sarif-results
|
||||
# path: sarif-results
|
||||
# retention-days: 1
|
||||
15
.gitignore
vendored
@@ -12,6 +12,9 @@ compile_commands.json
|
||||
# JetBrains IDEs
|
||||
.idea/
|
||||
|
||||
# Sublime Text
|
||||
.sublime-project.sublime-workspace
|
||||
|
||||
# Python VirtEnvironments
|
||||
.env
|
||||
.venv
|
||||
@@ -42,9 +45,6 @@ null.d
|
||||
.sconsign.dblite
|
||||
|
||||
|
||||
# Visual Studio Code
|
||||
/.vscode
|
||||
|
||||
# bundle output
|
||||
/dist
|
||||
/artifacts-default
|
||||
@@ -69,4 +69,11 @@ PVS-Studio.log
|
||||
|
||||
.gdbinit
|
||||
|
||||
/fbt_options_local.py
|
||||
/fbt_options_local.py
|
||||
|
||||
# JS packages
|
||||
node_modules/
|
||||
|
||||
# cli_perf script output in case of errors
|
||||
/block.bin
|
||||
/return_block.bin
|
||||
|
||||
6
.gitmodules
vendored
@@ -1,9 +1,6 @@
|
||||
[submodule "lib/mlib"]
|
||||
path = lib/mlib
|
||||
url = https://github.com/P-p-H-d/mlib.git
|
||||
[submodule "lib/littlefs"]
|
||||
path = lib/littlefs
|
||||
url = https://github.com/littlefs-project/littlefs.git
|
||||
[submodule "lib/nanopb"]
|
||||
path = lib/nanopb
|
||||
url = https://github.com/nanopb/nanopb.git
|
||||
@@ -23,9 +20,6 @@
|
||||
[submodule "lib/mbedtls"]
|
||||
path = lib/mbedtls
|
||||
url = https://github.com/Mbed-TLS/mbedtls.git
|
||||
[submodule "lib/cxxheaderparser"]
|
||||
path = lib/cxxheaderparser
|
||||
url = https://github.com/robotpy/cxxheaderparser.git
|
||||
[submodule "lib/heatshrink"]
|
||||
path = lib/heatshrink
|
||||
url = https://github.com/flipperdevices/heatshrink.git
|
||||
|
||||
13
.pvsconfig
@@ -1,12 +1,14 @@
|
||||
# MLib macros we can't do much about.
|
||||
//-V:M_LET:1048,1044
|
||||
//-V:M_EACH:1048,1044
|
||||
//-V:ARRAY_DEF:760,747,568,776,729,712,654
|
||||
//-V:LIST_DEF:760,747,568,712,729,654,776
|
||||
//-V:ARRAY_DEF:760,747,568,776,729,712,654,1103
|
||||
//-V:LIST_DEF:760,747,568,712,729,654,776,1103
|
||||
//-V:LIST_DUAL_PUSH_DEF:524,760,774
|
||||
//-V:BPTREE_DEF2:779,1086,557,773,512
|
||||
//-V:DICT_DEF2:779,524,776,760,1044,1001,729,590,568,747,685
|
||||
//-V:DICT_DEF2:779,524,776,760,1044,1001,729,590,568,747,685,1103
|
||||
//-V:ALGO_DEF:1048,747,1044
|
||||
//-V:TUPLE_DEF2:524,590,1001,760
|
||||
//-V:DEQUE_DEF:658,747,760
|
||||
|
||||
# Non-severe malloc/null pointer deref warnings
|
||||
//-V::522:2,3
|
||||
@@ -42,8 +44,5 @@
|
||||
# Model-related warnings
|
||||
//-V:with_view_model:1044,1048
|
||||
|
||||
# Functions that always return the same error code
|
||||
//-V:picopass_device_decrypt:1048
|
||||
|
||||
# Examples
|
||||
//V_EXCLUDE_PATH applications/examples/
|
||||
//V_EXCLUDE_PATH applications/examples/
|
||||
|
||||
@@ -1 +1 @@
|
||||
--ignore-ccache -C gccarm --rules-config .pvsconfig -e lib/cmsis_core -e lib/fatfs -e lib/fnv1a-hash -e lib/FreeRTOS-Kernel -e lib/heatshrink -e lib/libusb_stm32 -e lib/littlefs -e lib/mbedtls -e lib/micro-ecc -e lib/microtar -e lib/mlib -e lib/qrcode -e lib/ST25RFAL002 -e lib/stm32wb_cmsis -e lib/stm32wb_copro -e lib/stm32wb_hal -e lib/u8g2 -e lib/nanopb -e */arm-none-eabi/*
|
||||
--ignore-ccache -C gccarm --rules-config .pvsconfig -e lib/cmsis_core -e lib/fatfs -e lib/fnv1a-hash -e lib/FreeRTOS-Kernel -e lib/heatshrink -e lib/libusb_stm32 -e lib/mbedtls -e lib/microtar -e lib/mlib -e lib/stm32wb_cmsis -e lib/stm32wb_copro -e lib/stm32wb_hal -e lib/u8g2 -e lib/nanopb -e lib/mjs -e */arm-none-eabi/*
|
||||
|
||||
23
.sublime-project
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"folders":
|
||||
[
|
||||
{
|
||||
"path": ".",
|
||||
}
|
||||
],
|
||||
"settings": {
|
||||
"LSP": {
|
||||
"clangd": {
|
||||
"enabled": true,
|
||||
"initializationOptions": {
|
||||
// Set `"binary": "custom",` option in LSP-clangd config to use toolchain clangd
|
||||
"custom_command": ["toolchain/current/bin/clangd"],
|
||||
"clangd.compile-commands-dir": "build/latest",
|
||||
"clangd.header-insertion": "never",
|
||||
"clangd.query-driver": "**/arm-none-eabi-*",
|
||||
"clangd.clang-tidy": true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
8
.vscode/.gitignore
vendored
@@ -1,5 +1,3 @@
|
||||
/c_cpp_properties.json
|
||||
/extensions.json
|
||||
/launch.json
|
||||
/settings.json
|
||||
/tasks.json
|
||||
*
|
||||
!example/
|
||||
!ReadMe.md
|
||||
|
||||
2
.vscode/ReadMe.md
vendored
@@ -1,4 +1,4 @@
|
||||
# Visual Studio Code workspace for Flipper Zero
|
||||
# Visual Studio Code workspace for Flipper Zero {#vscode}
|
||||
|
||||
## Setup
|
||||
|
||||
|
||||
5
.vscode/example/clangd/extensions.json
vendored
@@ -8,7 +8,8 @@
|
||||
"amiralizadeh9480.cpp-helper",
|
||||
"marus25.cortex-debug",
|
||||
"zxh404.vscode-proto3",
|
||||
"augustocdias.tasks-shell-input"
|
||||
"augustocdias.tasks-shell-input",
|
||||
"rioj7.command-variable"
|
||||
],
|
||||
// List of extensions recommended by VS Code that should not be recommended for users of this workspace.
|
||||
"unwantedRecommendations": [
|
||||
@@ -16,4 +17,4 @@
|
||||
"ms-vscode.cpptools",
|
||||
"ms-vscode.cmake-tools"
|
||||
]
|
||||
}
|
||||
}
|
||||
21
.vscode/example/cpptools/c_cpp_properties.json
vendored
@@ -2,30 +2,27 @@
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Win32",
|
||||
"compilerPath": "${workspaceFolder}/toolchain/x86_64-windows/bin/arm-none-eabi-gcc.exe",
|
||||
"compilerPath": "${workspaceFolder}/toolchain/current/bin/arm-none-eabi-gcc.exe",
|
||||
"intelliSenseMode": "gcc-arm",
|
||||
"compileCommands": "${workspaceFolder}/build/latest/compile_commands.json",
|
||||
"configurationProvider": "ms-vscode.cpptools",
|
||||
"cStandard": "gnu17",
|
||||
"cppStandard": "c++17"
|
||||
"cStandard": "gnu23",
|
||||
"cppStandard": "c++20"
|
||||
},
|
||||
{
|
||||
"name": "Linux",
|
||||
"compilerPath": "${workspaceFolder}/toolchain/x86_64-linux/bin/arm-none-eabi-gcc",
|
||||
"compilerPath": "${workspaceFolder}/toolchain/current/bin/arm-none-eabi-gcc",
|
||||
"intelliSenseMode": "gcc-arm",
|
||||
"compileCommands": "${workspaceFolder}/build/latest/compile_commands.json",
|
||||
"configurationProvider": "ms-vscode.cpptools",
|
||||
"cStandard": "gnu17",
|
||||
"cppStandard": "c++17"
|
||||
"cStandard": "gnu23",
|
||||
"cppStandard": "c++20"
|
||||
},
|
||||
{
|
||||
"name": "Mac",
|
||||
"compilerPath": "${workspaceFolder}/toolchain/x86_64-darwin/bin/arm-none-eabi-gcc",
|
||||
"compilerPath": "${workspaceFolder}/toolchain/current/bin/arm-none-eabi-gcc",
|
||||
"intelliSenseMode": "gcc-arm",
|
||||
"compileCommands": "${workspaceFolder}/build/latest/compile_commands.json",
|
||||
"configurationProvider": "ms-vscode.cpptools",
|
||||
"cStandard": "gnu17",
|
||||
"cppStandard": "c++17"
|
||||
"cStandard": "gnu23",
|
||||
"cppStandard": "c++20"
|
||||
}
|
||||
],
|
||||
"version": 4
|
||||
|
||||
30
.vscode/example/settings.json
vendored
@@ -1,30 +0,0 @@
|
||||
{
|
||||
"C_Cpp.default.cStandard": "gnu17",
|
||||
"C_Cpp.default.cppStandard": "c++17",
|
||||
"python.formatting.provider": "black",
|
||||
"workbench.tree.indent": 12,
|
||||
"cortex-debug.enableTelemetry": false,
|
||||
"cortex-debug.variableUseNaturalFormat": true,
|
||||
"cortex-debug.showRTOS": true,
|
||||
"cortex-debug.armToolchainPath.windows": "${workspaceFolder}/toolchain/x86_64-windows/bin",
|
||||
"cortex-debug.armToolchainPath.linux": "${workspaceFolder}/toolchain/x86_64-linux/bin",
|
||||
"cortex-debug.armToolchainPath.osx": "${workspaceFolder}/toolchain/x86_64-darwin/bin",
|
||||
"cortex-debug.openocdPath.windows": "${workspaceFolder}/toolchain/x86_64-windows/openocd/bin/openocd.exe",
|
||||
"cortex-debug.openocdPath.linux": "${workspaceFolder}/toolchain/x86_64-linux/openocd/bin/openocd",
|
||||
"cortex-debug.openocdPath.osx": "${workspaceFolder}/toolchain/x86_64-darwin/openocd/bin/openocd",
|
||||
"cortex-debug.gdbPath.windows": "${workspaceFolder}/toolchain/x86_64-windows/bin/arm-none-eabi-gdb-py.bat",
|
||||
"cortex-debug.gdbPath.linux": "${workspaceFolder}/toolchain/x86_64-linux/bin/arm-none-eabi-gdb-py",
|
||||
"cortex-debug.gdbPath.osx": "${workspaceFolder}/toolchain/x86_64-darwin/bin/arm-none-eabi-gdb-py",
|
||||
"editor.formatOnSave": true,
|
||||
"files.associations": {
|
||||
"*.scons": "python",
|
||||
"SConscript": "python",
|
||||
"SConstruct": "python",
|
||||
"*.fam": "python",
|
||||
},
|
||||
"clangd.arguments": [
|
||||
// We might be able to tighten this a bit more to only include the correct toolchain.
|
||||
"--query-driver=**",
|
||||
"--compile-commands-dir=${workspaceFolder}/build/latest"
|
||||
]
|
||||
}
|
||||
31
.vscode/example/settings.json.tmpl
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"workbench.tree.indent": 12,
|
||||
"cortex-debug.enableTelemetry": false,
|
||||
"cortex-debug.variableUseNaturalFormat": true,
|
||||
"cortex-debug.armToolchainPath": "${workspaceFolder}/toolchain/current/bin",
|
||||
"cortex-debug.openocdPath": "${workspaceFolder}/toolchain/current/bin/openocd",
|
||||
"cortex-debug.gdbPath": "${workspaceFolder}/toolchain/current/bin/arm-none-eabi-gdb-py3",
|
||||
"editor.formatOnSave": true,
|
||||
"files.associations": {
|
||||
"*.scons": "python",
|
||||
"SConscript": "python",
|
||||
"SConstruct": "python",
|
||||
"*.fam": "python"
|
||||
},
|
||||
"clangd.checkUpdates": false,
|
||||
"clangd.path": "${workspaceFolder}/toolchain/current/bin/clangd@FBT_PLATFORM_EXECUTABLE_EXT@",
|
||||
"clangd.arguments": [
|
||||
"--query-driver=**/arm-none-eabi-*",
|
||||
"--compile-commands-dir=${workspaceFolder}/build/latest",
|
||||
"--clang-tidy",
|
||||
"--header-insertion=never"
|
||||
],
|
||||
"files.watcherExclude": {
|
||||
"**/.git/objects/**": true,
|
||||
"**/.git/**/modules/**/objects/**": true,
|
||||
"**/.git/**/subtree-cache/**": true,
|
||||
"**/.git/**/rr-cache/**": true,
|
||||
"build/**": true,
|
||||
"toolchain/**": true
|
||||
}
|
||||
}
|
||||
60
.vscode/example/tasks.json
vendored
@@ -75,29 +75,23 @@
|
||||
"type": "shell",
|
||||
"command": "./fbt updater_all"
|
||||
},
|
||||
{
|
||||
"label": "[Debug] Flash (USB, w/o resources)",
|
||||
"group": "build",
|
||||
"type": "shell",
|
||||
"command": "./fbt FORCE=1 flash_usb"
|
||||
},
|
||||
{
|
||||
"label": "[Release] Flash (USB, w/o resources)",
|
||||
"group": "build",
|
||||
"type": "shell",
|
||||
"command": "./fbt COMPACT=1 DEBUG=0 FORCE=1 flash_usb"
|
||||
},
|
||||
{
|
||||
"label": "[Debug] Flash (USB, w/o resources)",
|
||||
"group": "build",
|
||||
"type": "shell",
|
||||
"command": "./fbt FORCE=1 flash_usb"
|
||||
},
|
||||
{
|
||||
"label": "[Debug:unit_tests] Flash (USB)",
|
||||
"group": "build",
|
||||
"type": "shell",
|
||||
"command": "./fbt FIRMWARE_APP_SET=unit_tests FORCE=1 flash_usb"
|
||||
},
|
||||
{
|
||||
"label": "[Debug] Flash (USB, with resources)",
|
||||
"group": "build",
|
||||
"type": "shell",
|
||||
"command": "./fbt FORCE=1 flash_usb_full"
|
||||
"command": "./fbt FIRMWARE_APP_SET=unit_tests FORCE=1 flash_usb_full"
|
||||
},
|
||||
{
|
||||
"label": "[Release] Flash (USB, with resources)",
|
||||
@@ -105,18 +99,18 @@
|
||||
"type": "shell",
|
||||
"command": "./fbt COMPACT=1 DEBUG=0 FORCE=1 flash_usb_full"
|
||||
},
|
||||
{
|
||||
"label": "[Debug] Flash (USB, with resources)",
|
||||
"group": "build",
|
||||
"type": "shell",
|
||||
"command": "./fbt FORCE=1 flash_usb_full"
|
||||
},
|
||||
{
|
||||
"label": "[Debug] Create PVS-Studio report",
|
||||
"group": "build",
|
||||
"type": "shell",
|
||||
"command": "./fbt firmware_pvs"
|
||||
},
|
||||
{
|
||||
"label": "[Debug] Build FAPs",
|
||||
"group": "build",
|
||||
"type": "shell",
|
||||
"command": "./fbt fap_dist"
|
||||
},
|
||||
{
|
||||
"label": "[Release] Build FAPs",
|
||||
"group": "build",
|
||||
@@ -124,10 +118,10 @@
|
||||
"command": "./fbt COMPACT=1 DEBUG=0 fap_dist"
|
||||
},
|
||||
{
|
||||
"label": "[Debug] Build App",
|
||||
"label": "[Debug] Build FAPs",
|
||||
"group": "build",
|
||||
"type": "shell",
|
||||
"command": "./fbt build APPSRC=${relativeFileDirname}"
|
||||
"command": "./fbt fap_dist"
|
||||
},
|
||||
{
|
||||
"label": "[Release] Build App",
|
||||
@@ -136,10 +130,10 @@
|
||||
"command": "./fbt COMPACT=1 DEBUG=0 build APPSRC=${relativeFileDirname}"
|
||||
},
|
||||
{
|
||||
"label": "[Debug] Launch App on Flipper",
|
||||
"label": "[Debug] Build App",
|
||||
"group": "build",
|
||||
"type": "shell",
|
||||
"command": "./fbt launch APPSRC=${relativeFileDirname}"
|
||||
"command": "./fbt build APPSRC=${relativeFileDirname}"
|
||||
},
|
||||
{
|
||||
"label": "[Release] Launch App on Flipper",
|
||||
@@ -147,6 +141,12 @@
|
||||
"type": "shell",
|
||||
"command": "./fbt COMPACT=1 DEBUG=0 launch APPSRC=${relativeFileDirname}"
|
||||
},
|
||||
{
|
||||
"label": "[Debug] Launch App on Flipper",
|
||||
"group": "build",
|
||||
"type": "shell",
|
||||
"command": "./fbt launch APPSRC=${relativeFileDirname}"
|
||||
},
|
||||
{
|
||||
"label": "[Debug] Launch App on Flipper with Serial Console",
|
||||
"dependsOrder": "sequence",
|
||||
@@ -156,18 +156,18 @@
|
||||
"Serial Console"
|
||||
]
|
||||
},
|
||||
{
|
||||
"label": "[Debug] Build and upload all FAPs to Flipper over USB",
|
||||
"group": "build",
|
||||
"type": "shell",
|
||||
"command": "./fbt fap_deploy"
|
||||
},
|
||||
{
|
||||
"label": "[Release] Build and upload all FAPs to Flipper over USB",
|
||||
"group": "build",
|
||||
"type": "shell",
|
||||
"command": "./fbt COMPACT=1 DEBUG=0 fap_deploy"
|
||||
},
|
||||
{
|
||||
"label": "[Debug] Build and upload all FAPs to Flipper over USB",
|
||||
"group": "build",
|
||||
"type": "shell",
|
||||
"command": "./fbt fap_deploy"
|
||||
},
|
||||
{
|
||||
// Press Ctrl+] to quit
|
||||
"label": "Serial Console",
|
||||
@@ -192,4 +192,4 @@
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
7
Brewfile
@@ -1,7 +0,0 @@
|
||||
cask "brew-cask/gcc-arm-embedded.rb"
|
||||
brew "protobuf"
|
||||
brew "gdb"
|
||||
brew "open-ocd"
|
||||
brew "clang-format"
|
||||
brew "dfu-util"
|
||||
brew "protobuf-c"
|
||||
125
CHANGELOG.md
@@ -1,41 +1,34 @@
|
||||
## New changes
|
||||
* **Apple BLE Spam app** (by @Willy-JL | Plus research from ECTO-1A, xMasterX and techryptic) -> (app can be found in builds ` `, `e`, `n`, `r`)
|
||||
* SubGHz: **FAAC SLH - Programming mode** (by @xMasterX & @Eng1n33r (full research and PoC by @Skorpionm)| PR #585) -> [How to use](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/SubGHzRemoteProg.md)
|
||||
* SubGHz: FAAC SLH -> Add manually new options
|
||||
* SubGHz: Fix 0xFFFF counter value being skipped
|
||||
* SubGHz: Fix path reset on save name scene exit
|
||||
* SubGHz: Various fixes
|
||||
* SubGHz Remote: Fix Sub-GHz Remote folder name (by @OperKH | PR #583)
|
||||
* SubGHz Remote: submodule (by @gid9798 | PR #592)
|
||||
* Infrared: Updated universal assets (by @amec0e | PR #594)
|
||||
* Infrared: Remake custom universal remotes to use new design (New icons by @Svaarich)
|
||||
* UI: Keyboard ok to toggle select all in cursor mode (by @Willy-JL)
|
||||
* CI/CD: Fixed regular builds having `c` in version name in the device info while not being actual `c` build
|
||||
* Docs: New FAAC SLH instructions
|
||||
* Docs: Readme & Changelog fixes (by @gid9798 | PR #586)
|
||||
* OFW: iButton: Return to the file selection if file is corrupted
|
||||
* OFW: Account for the "-" in line carry-over
|
||||
* OFW: github: workflow improvements
|
||||
* OFW: Storage: force mount
|
||||
* OFW: Add File Naming setting for more detailed naming -> **Breaking API change, API 35.x -> API 36.x** - **Update your apps!**
|
||||
* OFW: Disconnect from BLE on protobuf error
|
||||
* OFW: Add support for Mifare Classic 4k SAK 0x38 ATQA 0x02, 0x04, 0x08
|
||||
* OFW: Undo some TODO
|
||||
* OFW: Check the filetype of the update manifest
|
||||
* OFW: StorageListRequest: size filter
|
||||
* OFW: SubGhz: heap overflow text error
|
||||
* OFW: nfc: add rfal wrong state error handling
|
||||
* OFW: Rfid: fix crash on broken key launch from archive (fix was already done in UL in similar way)
|
||||
* OFW: AC OFF button
|
||||
* OFW: New IR universal remote graphics
|
||||
* OFW: Intelligent probing with warnings for fwflash.py
|
||||
* OFW: FuriHal: explicitly pull display pins at early init stage, move PUPD config to early stage
|
||||
* OFW: Fix display last symbol in multiline text
|
||||
* OFW: Properly reset the NFC device data
|
||||
* OFW: fbt: various improvements and bug fixes
|
||||
* OFW: Littlefs updated to v2.7.0
|
||||
* OFW: loader: restored support for debug apps
|
||||
* OFW: Removed explicit dependency on scons for external scripting
|
||||
## Main changes
|
||||
- Current API: 87.1
|
||||
* SubGHz: **Counter Edit option with UI** (PR #933 | by @Dmitry422) (with Debug enabled only) (Saved - open file - Signal Settings - Edit Counter)
|
||||
* SubGHz: **UI for Counter Experimental Mode** (PR #930 | by @Dmitry422) (with Debug enabled only) (Saved - open file - Signal Settings - Counter Mode) (see docs below)
|
||||
* SubGHz: **Counter modes for Keeloq, CAME Atomo, Nice Flor S, AlutechAT4N** - [see docs](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/SubGHzCounterMode.md)
|
||||
* SubGHz: Add AN-Motors AT4 button on arrow keys (0xC)
|
||||
* SubGHz: Add IL-100 Smart support for Add manually
|
||||
* SubGHz: Add **experimental counter overflow mode** (OFEX), replicates how some key duplicators work, DO NOT USE if you don't know what you are doing, it will reset your counter value! (accesible with debug on in radio settings - counter incr.)
|
||||
* SubGHz: **Return Honeywell Sec** with fixes and improvements (by htotoo & LiQuiDz & xMasterX)
|
||||
* NFC: Keys found in key cache are now used in Nested attacks, deleting key cache is no longer required (by @noproto)
|
||||
* NFC: MFKey 4.0, MIFARE Classic Static Encrypted Nested attacks run 10x faster (by @noproto)
|
||||
* NFC: **Add Saflok MFUL Parser Support** (by @aaronjamt)
|
||||
* NFC: **Add MFUL counters to Info page** (by @aaronjamt)
|
||||
* OFW: Fix Felica standard loading from nfc file
|
||||
* Apps: **Check out more Apps updates and fixes by following** [this link](https://github.com/xMasterX/all-the-plugins/commits/dev)
|
||||
## Other changes
|
||||
* Desktop: Quick Debug mode switch (hold down on desktop, then hold ok on version screen)
|
||||
* SubGHz: OFEX support for SecPlus v1 and v2, various fixes (by @Dmitry422 & xMasterX)
|
||||
* SubGHz Remote: Add default remote and clear slot features (by @jknlsn)
|
||||
* Fix typo in README warning about scammers (PR #931 | by @koterba)
|
||||
* Bad USB: Colemak keyboard layout (by @Ashe-Sterling)
|
||||
* Display: Remove display_back_light bug from "DisplayBacklightEnforceOn" (PR #928 | by @Dmitry422)
|
||||
* OFW PR 4279: NFC FeliCa Minor Fix: FelicaPollerEventType should only be Incomplete if the tag is FeliCa Lite (by @zinongli)
|
||||
* OFW PR 4261: Add date/time input module (by @aaronjamt)
|
||||
* OFW PR 4312: Infrared: Fix infrared CLI plugin MissingImports (by @WillyJL)
|
||||
* Dolphin: Enable winter anims
|
||||
* Dolphin: Disable halloween anim
|
||||
<br><br>
|
||||
#### Known NFC post-refactor regressions list:
|
||||
- Mifare Mini clones reading is broken (original mini working fine) (OFW)
|
||||
- While reading some EMV capable cards via NFC->Read flipper may crash due to Desfire poller issue, read those cards via Extra actions->Read specific card type->EMV
|
||||
|
||||
----
|
||||
|
||||
@@ -44,43 +37,47 @@
|
||||
[-> Download qFlipper (official link)](https://flipperzero.one/update)
|
||||
|
||||
## Please support development of the project
|
||||
|Service|Remark|Link/Wallet|
|
||||
|-|-|-|
|
||||
|**Patreon**||https://patreon.com/mmxdev|
|
||||
|**Boosty**|patreon alternative|https://boosty.to/mmxdev|
|
||||
|cloudtips|only RU payments accepted|https://pay.cloudtips.ru/p/7b3e9d65|
|
||||
|YooMoney|only RU payments accepted|https://yoomoney.ru/fundraise/XA49mgQLPA0.221209|
|
||||
|USDT|(TRC20)|`TSXcitMSnWXUFqiUfEXrTVpVewXy2cYhrs`|
|
||||
|BCH||`qquxfyzntuqufy2dx0hrfr4sndp0tucvky4sw8qyu3`|
|
||||
|ETH|(BSC/ERC20-Tokens)|`darkflippers.eth` (or `0xFebF1bBc8229418FF2408C07AF6Afa49152fEc6a`)|
|
||||
|BTC||`bc1q0np836jk9jwr4dd7p6qv66d04vamtqkxrecck9`|
|
||||
|DOGE||`D6R6gYgBn5LwTNmPyvAQR6bZ9EtGgFCpvv`|
|
||||
|LTC||`ltc1q3ex4ejkl0xpx3znwrmth4lyuadr5qgv8tmq8z9`|
|
||||
|XMR|(Monero)| `41xUz92suUu1u5Mu4qkrcs52gtfpu9rnZRdBpCJ244KRHf6xXSvVFevdf2cnjS7RAeYr5hn9MsEfxKoFDRSctFjG5fv1Mhn`|
|
||||
|TON||`EQCOqcnYkvzOZUV_9bPE_8oTbOrOF03MnF-VcJyjisTZmpGf`|
|
||||
|
||||
#### Thanks to our sponsors:
|
||||
callmezimbra, Quen0n, MERRON, grvpvl (lvpvrg), art_col, ThurstonWaffles, Moneron, UterGrooll, LUCFER, Northpirate, zloepuzo, T.Rat, Alexey B., ionelife, ...
|
||||
| Service | Remark | QR Code | Link/Wallet |
|
||||
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|
|
||||
| <img src="https://cdn.simpleicons.org/patreon/dark/white" alt="Patreon" width="14"/> **Patreon** | | <div align="center"><a href="https://github.com/user-attachments/assets/a88a90a5-28c3-40b4-864a-0c0b79494a42"><img src="https://github.com/user-attachments/assets/da3a864d-d1c7-42cc-8a86-6fcaf26663ec" alt="QR image"/></a></div> | [patreon.com/mmxdev](https://patreon.com/mmxdev) |
|
||||
| <img src="https://cdn.simpleicons.org/boosty" alt="Boosty" width="14"/> **Boosty** | patreon alternative | <div align="center"><a href="https://github.com/user-attachments/assets/893c0760-f738-42c1-acaa-916019a7bdf8"><img src="https://github.com/user-attachments/assets/da3a864d-d1c7-42cc-8a86-6fcaf26663ec" alt="QR image"/></a></div> | [boosty.to/mmxdev](https://boosty.to/mmxdev) |
|
||||
| <img src="https://gist.githubusercontent.com/m-xim/255a3ef36c886dec144a58864608084c/raw/71da807b4abbd1582e511c9ea30fad27f78d642a/cloudtips_icon.svg" alt="Cloudtips" width="14"/> CloudTips | only RU payments accepted | <div align="center"><a href="https://github.com/user-attachments/assets/5de31d6a-ef24-4d30-bd8e-c06af815332a"><img src="https://github.com/user-attachments/assets/da3a864d-d1c7-42cc-8a86-6fcaf26663ec" alt="QR image"/></a></div> | [pay.cloudtips.ru/p/7b3e9d65](https://pay.cloudtips.ru/p/7b3e9d65) |
|
||||
| <img src="https://raw.githubusercontent.com/gist/PonomareVlad/55c8708f11702b4df629ae61129a9895/raw/1657350724dab66f2ad68ea034c480a2df2a1dfd/YooMoney.svg" alt="YooMoney" width="14"/> YooMoney | only RU payments accepted | <div align="center"><a href="https://github.com/user-attachments/assets/33454f79-074b-4349-b453-f94fdadc3c68"><img src="https://github.com/user-attachments/assets/da3a864d-d1c7-42cc-8a86-6fcaf26663ec" alt="QR image"/></a></div> | [yoomoney.ru/fundraise/XA49mgQLPA0.221209](https://yoomoney.ru/fundraise/XA49mgQLPA0.221209) |
|
||||
| <img src="https://cdn.simpleicons.org/tether" alt="USDT" width="14"/> USDT | TRC20 | <div align="center"><a href="https://github.com/user-attachments/assets/0500498d-18ed-412d-a1a4-8a66d0b6f057"><img src="https://github.com/user-attachments/assets/da3a864d-d1c7-42cc-8a86-6fcaf26663ec" alt="QR image"/></a></div> | `TSXcitMSnWXUFqiUfEXrTVpVewXy2cYhrs` |
|
||||
| <img src="https://cdn.simpleicons.org/ethereum" alt="ETH" width="14"/> ETH | BSC/ERC20-Tokens | <div align="center"><a href="https://github.com/user-attachments/assets/0f323e98-c524-4f41-abb2-f4f1cec83ab6"><img src="https://github.com/user-attachments/assets/da3a864d-d1c7-42cc-8a86-6fcaf26663ec" alt="QR image"/></a></div> | `0xFebF1bBc8229418FF2408C07AF6Afa49152fEc6a` |
|
||||
| <img src="https://cdn.simpleicons.org/bitcoin" alt="BTC" width="14"/> BTC | | <div align="center"><a href="https://github.com/user-attachments/assets/5a904d45-947e-4b92-9f0f-7fbaaa7b37f8"><img src="https://github.com/user-attachments/assets/da3a864d-d1c7-42cc-8a86-6fcaf26663ec" alt="QR image"/></a></div> | `bc1q0np836jk9jwr4dd7p6qv66d04vamtqkxrecck9` |
|
||||
| <img src="https://cdn.simpleicons.org/solana" alt="SOL" width="13"/> SOL | Solana/Tokens | <div align="center"><a href="https://github.com/user-attachments/assets/ab33c5e0-dd59-497b-9c91-ceb89c36b34d"><img src="https://github.com/user-attachments/assets/da3a864d-d1c7-42cc-8a86-6fcaf26663ec" alt="QR image"/></a></div> | `DSgwouAEgu8iP5yr7EHHDqMNYWZxAqXWsTEeqCAXGLj8` |
|
||||
| <img src="https://cdn.simpleicons.org/dogecoin" alt="DOGE" width="14"/> DOGE | | <div align="center"><a href="https://github.com/user-attachments/assets/2937edd0-5c85-4465-a444-14d4edb481c0"><img src="https://github.com/user-attachments/assets/da3a864d-d1c7-42cc-8a86-6fcaf26663ec" alt="QR image"/></a></div> | `D6R6gYgBn5LwTNmPyvAQR6bZ9EtGgFCpvv` |
|
||||
| <img src="https://cdn.simpleicons.org/litecoin" alt="LTC" width="14"/> LTC | | <div align="center"><a href="https://github.com/user-attachments/assets/441985fe-f028-4400-83c1-c215760c1e74"><img src="https://github.com/user-attachments/assets/da3a864d-d1c7-42cc-8a86-6fcaf26663ec" alt="QR image"/></a></div> | `ltc1q3ex4ejkl0xpx3znwrmth4lyuadr5qgv8tmq8z9` |
|
||||
| <img src="https://bitcoincash.org/img/green/bitcoin-cash-circle.svg" alt="BCH" width="14"/> BCH | | <div align="center"><a href="https://github.com/user-attachments/assets/7f365976-19a3-4777-b17e-4bfba5f69eff"><img src="https://github.com/user-attachments/assets/da3a864d-d1c7-42cc-8a86-6fcaf26663ec" alt="QR image"/></a></div> | `qquxfyzntuqufy2dx0hrfr4sndp0tucvky4sw8qyu3` |
|
||||
| <img src="https://cdn.simpleicons.org/monero" alt="XMR" width="14"/> XMR | Monero | <div align="center"><a href="https://github.com/user-attachments/assets/96186c06-61e7-4b4d-b716-6eaf1779bfd8"><img src="https://github.com/user-attachments/assets/da3a864d-d1c7-42cc-8a86-6fcaf26663ec" alt="QR image"/></a></div> | `41xUz92suUu1u5Mu4qkrcs52gtfpu9rnZRdBpCJ244KRHf6xXSvVFevdf2cnjS7RAeYr5hn9MsEfxKoFDRSctFjG5fv1Mhn` |
|
||||
| <img src="https://cdn.simpleicons.org/ton" alt="TON" width="14"/> TON | | <div align="center"><a href="https://github.com/user-attachments/assets/92a57e57-7462-42b7-a342-6f22c6e600c1"><img src="https://github.com/user-attachments/assets/da3a864d-d1c7-42cc-8a86-6fcaf26663ec" alt="QR image"/></a></div> | `UQCOqcnYkvzOZUV_9bPE_8oTbOrOF03MnF-VcJyjisTZmsxa` |
|
||||
|
||||
|
||||
#### Thanks to our sponsors who supported project in the past and special thanks to sponsors who supports us on regular basis:
|
||||
@mishamyte, ClaraCrazy, Pathfinder [Count Zero cDc], callmezimbra, Quen0n, MERRON, grvpvl (lvpvrg), art_col, ThurstonWaffles, Moneron, UterGrooll, LUCFER, Northpirate, zloepuzo, T.Rat, Alexey B., ionelife, ...
|
||||
and all other great people who supported our project and me (xMasterX), thanks to you all!
|
||||
|
||||
|
||||
## **Recommended update option - Web Updater**
|
||||
|
||||
### What `n`, `r`, `e`, ` `, `c` means? What I need to download if I don't want to use Web updater?
|
||||
What build I should download and what this name means - `flipper-z-f7-update-(version)(n / r / e / c).tgz` ? <br>
|
||||
### What `e`, ` `, `c` means? What I need to download if I don't want to use Web updater?
|
||||
What build I should download and what this name means - `flipper-z-f7-update-(version)(e / c).tgz` ? <br>
|
||||
`flipper-z` = for Flipper Zero device<br>
|
||||
`f7` = Hardware version - same for all flipper zero devices<br>
|
||||
`update` = Update package, contains updater, all assets (plugins, IR libs, etc.), and firmware itself<br>
|
||||
`(version)` = Firmware version<br>
|
||||
| Designation | 3 Custom Animation | [Base Apps](https://github.com/xMasterX/all-the-plugins#default-pack) | [Extra Apps](https://github.com/xMasterX/all-the-plugins#extra-pack) | ⚠️RGB mode* |
|
||||
|-----|:---:|:---:|:---:|:---:|
|
||||
| ` ` | ✅ | ✅ | | |
|
||||
| `c` | ✅ | | | |
|
||||
| `n` | | ✅ | | |
|
||||
| `e` | ✅ | ✅ | ✅ | |
|
||||
| `r` | ✅ | ✅ | ✅ | ✅ |
|
||||
| Designation | [Base Apps](https://github.com/xMasterX/all-the-plugins#default-pack) | [Extra Apps](https://github.com/xMasterX/all-the-plugins#extra-pack) |
|
||||
|-----|:---:|:---:|
|
||||
| ` ` | ✅ | |
|
||||
| `c` | | |
|
||||
| `e` | ✅ | ✅ |
|
||||
|
||||
**To enable RGB Backlight support go into LCD & Notifications settings**
|
||||
|
||||
⚠️RGB backlight [hardware mod](https://github.com/quen0n/flipperzero-firmware-rgb#readme), works only on modded flippers! do not enable on non modded device!
|
||||
|
||||
⚠️This is [hardware mod](https://github.com/quen0n/flipperzero-firmware-rgb#readme), works only on modded flippers! do not install on non modded device!
|
||||
|
||||
Firmware Self-update package (update from microSD) - `flipper-z-f7-update-(version).tgz` for mobile app / qFlipper / web<br>
|
||||
Archive of `scripts` folder (contains scripts for FW/plugins development) - `flipper-z-any-scripts-(version).tgz`<br>
|
||||
|
||||
514
ReadMe.md
@@ -1,261 +1,316 @@
|
||||
<h3 align="center">
|
||||
<a href="https://github.com/DarkFlippers/unleashed-firmware">
|
||||
<img src="https://user-images.githubusercontent.com/10697207/186202043-26947e28-b1cc-459a-8f20-ffcc7fc0c71c.png" align="center" alt="fzCUSTOM" border="0">
|
||||
</a>
|
||||
<a href="https://github.com/DarkFlippers/unleashed-firmware">
|
||||
<img src="https://github.com/user-attachments/assets/466c40d5-f6a1-444d-a235-d9026f7cd0ff" align="center" alt="Unleashed Firmware Logo" border="0">
|
||||
</a>
|
||||
</h3>
|
||||
<div align="center" id="badges">
|
||||
<a href="https://discord.unleashedflip.com">
|
||||
<img src="https://img.shields.io/discord/937479784148115456?style=flat-square&logo=discord&label=Discord&color=%237289DA&link=https%3A%2F%2Fdiscord.unleashedflip.com%2F" alt="Discord server"/>
|
||||
</a>
|
||||
<a href="https://t.me/flipperzero_unofficial">
|
||||
<img src="https://img.shields.io/endpoint?label=EN%20Channel&style=flat-square&url=https%3A%2F%2Fmogyo.ro%2Fquart-apis%2Ftgmembercount%3Fchat_id%3Dflipperzero_unofficial" alt="EN TG channel"/>
|
||||
</a>
|
||||
<a href="https://t.me/flipperzero_unofficial_ru">
|
||||
<img src="https://img.shields.io/endpoint?label=RU%20Channel&style=flat-square&url=https%3A%2F%2Fmogyo.ro%2Fquart-apis%2Ftgmembercount%3Fchat_id%3Dflipperzero_unofficial_ru" alt="RU TG channel"/>
|
||||
</a>
|
||||
<a href="https://t.me/flipperzero_unofficial_ua">
|
||||
<img src="https://img.shields.io/endpoint?label=UA%20Channel&style=flat-square&url=https%3A%2F%2Fmogyo.ro%2Fquart-apis%2Ftgmembercount%3Fchat_id%3Dflipperzero_unofficial_ua" alt="UA TG channel"/>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
### Welcome to the Flipper Zero Unleashed Firmware repo!
|
||||
[](https://t.me/flipperzero_unofficial)
|
||||
[](https://t.me/flipperzero_unofficial_ru)
|
||||
[](https://t.me/flipperzero_unofficial_ua)
|
||||
[](https://discord.unleashedflip.com)
|
||||
|
||||
#### **This firmware is a fork from** [flipperdevices/flipperzero-firmware](https://github.com/flipperdevices/flipperzero-firmware)
|
||||
# Flipper Zero Unleashed Firmware
|
||||
This firmware is a fork of the original (OFW) version of [flipperdevices/flipperzero-firmware](https://github.com/flipperdevices/flipperzero-firmware) and represents the **most stable** custom build, incorporating **new features** and **improvements** to the original components while remaining **fully compatible** with the API and applications of the original firmware.
|
||||
|
||||
<br>
|
||||
> [!WARNING]
|
||||
> This software is intended solely for experimental purposes and is not meant for any illegal activities.
|
||||
> We do not condone unlawful behavior and strongly encourage you to use it only within the bounds of the law.
|
||||
>
|
||||
> This project is developed independently and is not affiliated with Flipper Devices.
|
||||
>
|
||||
> Also be aware, DarkFlippers/unleashed-firmware is the only official page of the project, there is no paid, premium or closed source versions and if someone contacts you and say they are from our team and try to offer something like that - they are scammers, block that user ASAP
|
||||
|
||||
### Most stable custom firmware focused on new features and improvements of original firmware components, with almost no UI changes
|
||||
<br/>
|
||||
|
||||
<br>
|
||||
## 🚀 Usage
|
||||
|
||||
##### This software is for experimental purposes only and is not meant for any illegal activity/purposes. <br> We do not condone illegal activity and strongly encourage keeping transmissions to legal/valid uses allowed by law. <br> Also, this software is made without any support from Flipper Devices and is in no way related to the official devs.
|
||||
Before getting started:
|
||||
- **Review the Official Documentation:** [docs.flipper.net](https://docs.flipper.net)
|
||||
|
||||
- **Installation Guide & Version Info:**
|
||||
How to install the firmware by following the [Installation Guide](/documentation/HowToInstall.md) and check the [version information](/CHANGELOG.md#recommended-update-option---web-updater) (`e`, ` `, `c`)
|
||||
|
||||
- **FAQ:**
|
||||
Find answers to common questions in the [FAQ](/documentation/FAQ.md)
|
||||
|
||||
|
||||
<br>
|
||||
## 📦 Releases
|
||||
|
||||
## Dev builds (unstable)
|
||||
- https://dev.unleashedflip.com/
|
||||
- https://t.me/kotnehleb
|
||||
## Releases in Telegram
|
||||
- https://t.me/unleashed_fw
|
||||
### Release builds (stable)
|
||||
- <img src="https://github.com/badges/shields/assets/10694593/c5c5acc3-f434-4a8d-a834-6d94a7ffb45a" alt="Telegram" title="Telegram" width="14" height="14"> Telegram: <a href="https://t.me/unleashed_fw">t.me/unleashed_fw</a>
|
||||
- <a href="https://github.com/DarkFlippers/unleashed-firmware/releases"> <img src="https://cdn.simpleicons.org/github/black/white" alt="GitHub" title="" width="14" height="14"> GitHub Releases</a>
|
||||
|
||||
# What's changed
|
||||
- **Sub-GHz** *lib & hal*
|
||||
- Regional TX restrictions removed
|
||||
- Extra Sub-GHz frequencies
|
||||
- Frequency range can be extended in settings file (Warning: It can damage Flipper's hardware)
|
||||
- Many rolling code [protocols](https://github.com/DarkFlippers/unleashed-firmware#current-modified-and-new-sub-ghz-protocols-list) now have the ability to save & send captured signals
|
||||
- FAAC SLH (Spa) & BFT Mitto (keeloq secure with seed) manual creation
|
||||
- External CC1101 module support [(by quen0n)](https://github.com/DarkFlippers/unleashed-firmware/pull/307)
|
||||
- **Sub-GHz** *Main App*
|
||||
- Save last used frequency [(by derskythe)](https://github.com/DarkFlippers/unleashed-firmware/pull/77)
|
||||
- New frequency analyzer [(by ClusterM)](https://github.com/DarkFlippers/unleashed-firmware/pull/43)
|
||||
- Press OK in frequency analyzer to use detected frequency in Read modes [(by derskythe)](https://github.com/DarkFlippers/unleashed-firmware/pull/77)
|
||||
- Long press OK button in Sub-GHz Frequency analyzer to switch to Read menu [(by derskythe)](https://github.com/DarkFlippers/unleashed-firmware/pull/79)
|
||||
- New option to use timestamps + protocol name when you saving file, instead of random name - Enable in `Radio Settings -> Time in names = ON`
|
||||
- Read mode UI improvements (shows time when signal was received) (by @wosk)
|
||||
- External CC1101 module support (Hardware SPI used)
|
||||
- **Hold right in received signal list to delete selected signal**
|
||||
- **Custom buttons for Keeloq / Alutech AT4N / Nice Flor S / Somfy Telis / Security+ 2.0 / CAME Atomo** - now you can use arrow buttons to send signal with different button code
|
||||
- `Add manually` menu extended with new protocols
|
||||
- FAAC SLH, BFT Mitto / Somfy Telis / Nice Flor S / CAME Atomo, etc.. manual creation with programming new remote into receiver (use button 0xF for BFT Mitto, 0x8 (Prog) on Somfy Telis)
|
||||
- Debug mode counter increase settings (+1 -> +5, +10, default: +1)
|
||||
- Debug PIN output settings for protocol development
|
||||
|
||||
- **Sub-GHz apps** *by unleashed team*
|
||||
- Sub-GHz Bruteforce - static code brute-force plugin |
|
||||
- Time delay (between signals) setting (hold Up in main screen(says Up to Save)) + configure repeats in protocols list by pressing right button on selected protocol
|
||||
- Load your own file and select bytes you want to bruteforce or use preconfigured options in protocols list
|
||||
- Sub-GHz Remote - remote control for 5 sub-ghz files | bind one file for each button
|
||||
- use the built-in constructor or make config file by following this [instruction](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/SubGHzRemotePlugin.md)
|
||||
- **Infrared**
|
||||
- Recompiled IR TV Universal Remote for ALL buttons
|
||||
- Universal remotes for Projectors, Fans, A/Cs and Audio(soundbars, etc.) -> Also always updated and verified by our team
|
||||
- Infrared -> `RCA` Protocol
|
||||
- Infrared -> Debug TX PIN output settings
|
||||
- **NFC/RFID/iButton**
|
||||
* LFRFID/iButton Fuzzer plugins
|
||||
* Extra Mifare Classic keys
|
||||
* `Add manually` -> Mifare Classic with custom UID
|
||||
* Picopass/iClass plugin (now with emulation support!) included in releases
|
||||
- **Quality of life & other features**
|
||||
- Customizable Flipper name **Update! Now can be changed in Settings->Desktop** (by @xMasterX and @Willy-JL)
|
||||
- Text Input UI element -> Cursor feature (by @Willy-JL)
|
||||
- Byte Input Mini editor -> **Press UP** multiple times until the nibble editor appears
|
||||
- Clock on Desktop -> `Settings -> Desktop -> Show Clock`
|
||||
- Battery percentage display with different styles `Settings -> Desktop -> Battery View`
|
||||
- More games in Dummy Mode -> click or hold any of arrow buttons
|
||||
- Lock device with pin(or regular lock if pin not set) by holding UP button on main screen [(by an4tur0r)](https://github.com/DarkFlippers/unleashed-firmware/pull/107)
|
||||
- **BadBT** plugin (BT version of BadKB) [(by Willy-JL, ClaraCrazy, XFW contributors)](https://github.com/ClaraCrazy/Flipper-Xtreme/tree/dev/applications/main/bad_kb) - (See in Applications->Tools) - (aka BadUSB via Bluetooth)
|
||||
- BadUSB -> Keyboard layouts [(by rien > dummy-decoy)](https://github.com/dummy-decoy/flipperzero-firmware/tree/dummy_decoy/bad_usb_keyboard_layout)
|
||||
- Custom community plugins and games added + all known working apps can be downloaded in extra pack in every release
|
||||
- Other small fixes and changes throughout
|
||||
- See other changes in readme below
|
||||
### Dev builds (unstable)
|
||||
> [!NOTE]
|
||||
> Built automatically from dev branch
|
||||
|
||||
- Web site: [dev.unleashedflip.com](https://dev.unleashedflip.com)
|
||||
- <img src="https://github.com/badges/shields/assets/10694593/c5c5acc3-f434-4a8d-a834-6d94a7ffb45a" alt="Telegram" title="Telegram" width="14" height="14"> Telegram: <a href="https://t.me/kotnehleb">t.me/kotnehleb</a>
|
||||
|
||||
|
||||
## 🆕 What's New
|
||||
|
||||
> <details>
|
||||
> <summary><strong>Sub‑GHz Library & HAL</strong></summary>
|
||||
> <br/>
|
||||
>
|
||||
> - Many new protocols added
|
||||
> - Regional TX restrictions removed
|
||||
> - Extra Sub-GHz frequencies added
|
||||
> - Frequency range can be extended in settings file _(warning: It can damage Flipper's hardware)_
|
||||
> - Many rolling code [protocols](#current-modified-and-new-sub-ghz-protocols-list) now have the ability to save & send captured signals
|
||||
> - FAAC SLH (Spa) & BFT Mitto (keeloq secure with seed) manual creation
|
||||
> - External CC1101 module support [(by quen0n)](https://github.com/DarkFlippers/unleashed-firmware/pull/307)
|
||||
> </details>
|
||||
|
||||
> <details>
|
||||
> <summary><strong>Sub‑GHz Main App</strong></summary>
|
||||
> <br/>
|
||||
>
|
||||
> - Save last used settings [(by derskythe)](https://github.com/DarkFlippers/unleashed-firmware/pull/77)
|
||||
> - New frequency analyzer [(by ClusterM)](https://github.com/DarkFlippers/unleashed-firmware/pull/43)
|
||||
> - Press OK in frequency analyzer to use detected frequency in Read modes [(by derskythe)](https://github.com/DarkFlippers/unleashed-firmware/pull/77)
|
||||
> - Long press OK button in Sub-GHz Frequency analyzer to switch to Read menu [(by derskythe)](https://github.com/DarkFlippers/unleashed-firmware/pull/79)
|
||||
> - New option to use timestamps + protocol name when you saving file, instead of random name or timestamp only - Enable in `Radio Settings -> Protocol Names = ON`
|
||||
> - Read mode UI improvements (shows time when signal was received) (by @wosk)
|
||||
> - External CC1101 module support (Hardware SPI used)
|
||||
> - External CC1101 module amplifier control (or LED control) support (enabled by default)
|
||||
> - **Hold right in received signal list to delete selected signal**
|
||||
>- **Custom buttons for Keeloq / Alutech AT4N / Nice Flor S / Somfy Telis / Security+ 2.0 / CAME Atomo** - now you can use arrow buttons to send signal with different button code
|
||||
> - `Add manually` menu extended with new protocols
|
||||
> - FAAC SLH, BFT Mitto / Somfy Telis / Nice Flor S / CAME Atomo, etc. manual creation with programming new remote into receiver (use button 0xF for BFT Mitto, 0x8 (Prog) on Somfy Telis, (right arrow button for other protocols))
|
||||
> - Debug mode counter increase settings (+1 → +5, +10, default: +1)
|
||||
> - Debug PIN output settings for protocol development
|
||||
> - Ignore options - Alarms: Hollarm, GangQi | Cars: Kia, Starline, ScherKhan | Sensors: Magellan, Honeywell Sec, Honeywell WDB (doorbells), Legrand (doorbells), Feron (RGB lights)
|
||||
> </details>
|
||||
|
||||
> <details>
|
||||
> <summary><strong>Sub‑GHz Apps (by Unleashed Team)</strong></summary>
|
||||
> <br/>
|
||||
>
|
||||
> - Sub-GHz Bruteforce - static code brute-force plugin
|
||||
> - Time delay (between signals) setting (hold Up in main screen (says Up to Save)) + configure repeats in protocols list by pressing right button on selected protocol
|
||||
> - Load your own file and select bytes you want to bruteforce or use preconfigured options in protocols list
|
||||
> - Sub-GHz Remote - remote control for 5 sub-ghz files | bind one file for each button
|
||||
> - use the built-in constructor or make config file by following this [instruction](/documentation/SubGHzRemotePlugin.md)
|
||||
> </details>
|
||||
|
||||
> <details>
|
||||
> <summary><strong>Infrared (IR)</strong></summary>
|
||||
> <br/>
|
||||
>
|
||||
> - Recompiled IR TV Universal Remote for ALL buttons
|
||||
> - Universal remotes for Projectors, Fans, A/Cs and Audio(soundbars, etc.) → Also always updated and verified by our team
|
||||
> - Infrared → `RCA` Protocol
|
||||
> - Infrared → External IR modules support (with autodetect by OFW)
|
||||
> </details>
|
||||
|
||||
> <details>
|
||||
> <summary><strong>NFC/RFID/iButton</strong></summary>
|
||||
> <br/>
|
||||
>
|
||||
> - LFRFID and iButton Fuzzer plugins
|
||||
> - Add DEZ 8 display form for EM4100 (by @korden32)
|
||||
> - Extra Mifare Classic keys in system dict
|
||||
> - EMV Protocol + Public data parser (by @Leptopt1los and @wosk)
|
||||
> - NFC `Add manually` → Mifare Classic with custom UID
|
||||
> - NFC parsers: Umarsh, Zolotaya Korona, Kazan, Metromoney, Moscow Social Card, Troika (reworked) and [many others](https://github.com/DarkFlippers/unleashed-firmware/tree/dev/applications/main/nfc/plugins/supported_cards) (by @Leptopt1los and @assasinfil)
|
||||
> </details>
|
||||
|
||||
> <details>
|
||||
> <summary><strong>Quality of Life & Other Features</strong></summary>
|
||||
> <br/>
|
||||
>
|
||||
> - Customizable Flipper name **Update! Now can be changed in Settings → Desktop** (by @xMasterX and @Willy-JL)
|
||||
> - Text Input UI element → Cursor feature (by @Willy-JL)
|
||||
> - Byte Input Mini editor → **Press UP** multiple times until the nibble editor appears (by @gid9798)
|
||||
> - Clock on Desktop `Settings -> Desktop -> Show Clock` (by @gid9798)
|
||||
> - Battery percentage display with different styles `Settings -> Desktop -> Battery View`
|
||||
> - More games in Dummy Mode → click or hold any of arrow buttons
|
||||
> - Lock device with pin (or regular lock if pin not set) by holding UP button on main screen [(by an4tur0r)](https://github.com/DarkFlippers/unleashed-firmware/pull/107)
|
||||
> - **BadKB** (BadUSB) [(by Willy-JL, ClaraCrazy, XFW contributors)](https://github.com/Flipper-XFW/Xtreme-Firmware/tree/dev/applications/main/bad_kb) - (Integrated into BadUSB app now!) - (aka BadUSB via Bluetooth)
|
||||
> - BadUSB → Keyboard layouts [(by rien > dummy-decoy)](https://github.com/dummy-decoy/flipperzero-firmware/tree/dummy_decoy/bad_usb_keyboard_layout)
|
||||
> - Custom community plugins and games added + all known working apps can be downloaded in extra pack in every release
|
||||
> - Other small fixes and changes throughout
|
||||
> - See other changes in readme below
|
||||
> </details>
|
||||
|
||||
Also check the [changelog in releases](https://github.com/DarkFlippers/unleashed-firmware/releases) for latest updates!
|
||||
|
||||
### Current modified and new Sub-GHz protocols list:
|
||||
Thanks to Official team (to their SubGHz Developer, Skorp) for implementing decoders for these protocols in OFW.
|
||||
Thanks to Official team (to their SubGHz Developer, Skorp) for implementing support (decoder + encoder / or decode only) for these protocols in OFW.
|
||||
|
||||
Keeloq [Not ALL systems supported for decode or emulation yet!] - [Supported manufacturers list](https://0bin.net/paste/VwR2lNJY#WH9vnPgvcp7w6zVKucFCuNREKAcOij8KsJ6vqLfMn3b)
|
||||
> [!NOTE]
|
||||
> Not all Keeloq systems are supported for decoding or emulation!
|
||||
> <details>
|
||||
> <summary><strong>Supported Keeloq manufacturers include</strong></summary>
|
||||
> <br/>
|
||||
>
|
||||
> | Column 1 | Column 2 | Column 3 | Column 4 | Column 5 |
|
||||
> |-------------------|--------------|------------------|-------------------|------------------------|
|
||||
> | Alligator | Comunello | GSN | Magic_4 | SL_A2-A4 |
|
||||
> | Alligator_S-275 | Dea_Mio | Guard_RF-311A | Mongoose | SL_A6-A9/Tomahawk_9010 |
|
||||
> | APS-1100_APS-2550 | DTM_Neo | Harpoon | Mutanco_Mutancode | SL_B6,B9_dop |
|
||||
> | Aprimatic | DoorHan | IronLogic | NICE_MHOUSE | Sommer(fsk476) |
|
||||
> | Beninca | EcoStar | JCM_Tech | NICE_Smilo | Stilmatic |
|
||||
> | BFT | Elmes_Poland | KEY | Normstahl | Teco |
|
||||
> | Came_Space | FAAC_RC,XT | Kingates_Stylo4k | Pantera | Tomahawk_TZ-9030 |
|
||||
> | Cenmax | FAAC_SLH | KGB/Subaru | Pantera_CLK | Tomahawk_Z,X_3-5 |
|
||||
> | Cenmax_St-5 | Faraon | Leopard | Pantera_XS/Jaguar | ZX-730-750-1055 |
|
||||
> | Cenmax_St-7 | Genius_Bravo | Magic_1 | Partisan_RX | IL-100(Smart) |
|
||||
> | Centurion | Gibidi | Magic_2 | Reff | Merlin |
|
||||
> | Monarch | Jolly Motors | Magic_3 | Sheriff | Steelmate |
|
||||
> | Motorline | Rosh | Pecinin | Rossi | |
|
||||
> </details>
|
||||
<br/>
|
||||
|
||||
Encoders or sending made by @xMasterX:
|
||||
- Nero Radio 57bit (+ 56bit encoder improvements)
|
||||
- CAME 12bit/24bit encoder fixes (Fixes now merged in OFW)
|
||||
- Keeloq: HCS101
|
||||
- Keeloq: AN-Motors
|
||||
- Keeloq: JCM Tech
|
||||
- Keeloq: MHouse
|
||||
- Keeloq: Nice Smilo
|
||||
- Keeloq: DTM Neo
|
||||
- Keeloq: FAAC RC,XT
|
||||
- Keeloq: Mutancode
|
||||
- Keeloq: Normstahl
|
||||
- Keeloq: Beninca + Allmatic
|
||||
- Keeloq: Stilmatic
|
||||
- Keeloq: CAME Space
|
||||
- Keeloq: Aprimatic (model TR and similar)
|
||||
- Keeloq: Centurion Nova (thanks Carlos !)
|
||||
<details>
|
||||
<summary><code><strong>Decoders/Encoders or emulation (+ programming mode) support made by @xMasterX</strong></code></summary>
|
||||
<br/>
|
||||
|
||||
Encoders or sending made by @Eng1n33r(first implementation in Q2 2022) & @xMasterX (current version):
|
||||
- CAME Atomo -> Update! check out new [instructions](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/SubGHzRemoteProg.md)
|
||||
- Nice Flor S -> How to create new remote - [instructions](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/SubGHzRemoteProg.md)
|
||||
- FAAC SLH (Spa) -> Update!!! Check out new [instructions](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/SubGHzRemoteProg.md)
|
||||
- Keeloq: BFT Mitto -> Update! Check out new [instructions](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/SubGHzRemoteProg.md)
|
||||
- Elplast/P-11B/3BK/E.C.A (static 18 bit)
|
||||
- Roger (static 28 bit) with add manually support (thanks @mishamyte)
|
||||
- V2 Phoenix (Phox) (dynamic 52 bit) (thanks @RocketGod-git)
|
||||
- Marantec (static 49 bit) (add manually support and CRC verify) (thanks @li0ard)
|
||||
- Feron (static 32 bit)
|
||||
- ReversRB2 / RB2M (static 64 bit) with add manually support
|
||||
- Marantec24 (static 24 bit) with add manually support
|
||||
- GangQi (static 34 bit) with button parsing and add manually support (thanks to @mishamyte for captures and testing, thanks @Skorpionm for help)
|
||||
- Hollarm (static 42 bit) with button parsing and add manually support (thanks to @mishamyte for captures, thanks @Skorpionm for help)
|
||||
- Hay21 (dynamic 21 bit) with button parsing
|
||||
- Nero Radio 57bit (+ 56bit support)
|
||||
- CAME 12bit/24bit encoder fixes (Fixes are now merged in OFW)
|
||||
- Keeloq: Dea Mio, Genius Bravo, GSN, HCS101, AN-Motors, JCM Tech, MHouse, Nice Smilo, DTM Neo, FAAC RC,XT, Mutancode, Normstahl, Beninca + Allmatic, Stilmatic, CAME Space, Aprimatic (model TR and similar), Centurion Nova (thanks Carlos !), Hormann EcoStar, Novoferm, Sommer, Monarch (thanks @ashphx !), Jolly Motors (thanks @pkooiman !), IL-100(Smart) (thx Vitaly for RAWs), Motorline (with add manually support), Rosh, Pecinin, Rossi, Merlin, Steelmate (thanks @RocketGod-git)
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><code><strong>Protocols support made by Skorp (original implementation) and @xMasterX (current version)</strong></code></summary>
|
||||
<br/>
|
||||
|
||||
- CAME Atomo → Update! check out new [instructions](/documentation/SubGHzRemoteProg.md)
|
||||
- Nice Flor S → How to create new remote - [instructions](/documentation/SubGHzRemoteProg.md)
|
||||
- FAAC SLH (Spa) → Update!!! (Programming mode!) Check out new [instructions](/documentation/SubGHzRemoteProg.md)
|
||||
- Keeloq: BFT Mitto → Update! Check out new [instructions](/documentation/SubGHzRemoteProg.md)
|
||||
- Star Line
|
||||
- Security+ v1 & v2 (encoders was made in OFW)
|
||||
- Security+ v1 & v2
|
||||
</details>
|
||||
|
||||
Encoders made by @assasinfil & @xMasterX:
|
||||
- Somfy Telis -> How to create new remote - [instructions](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/SubGHzRemoteProg.md)
|
||||
<details>
|
||||
<summary><code><strong>Encoders made by @assasinfil and @xMasterX</strong></code></summary>
|
||||
<br/>
|
||||
|
||||
- Somfy Telis → How to create new remote - [instructions](/documentation/SubGHzRemoteProg.md)
|
||||
- Somfy Keytis
|
||||
- KingGates Stylo 4k
|
||||
- Alutech AT-4N -> How to create new remote - [instructions](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/SubGHzRemoteProg.md)
|
||||
- Nice ON2E (Nice One) -> How to create new remote - [instructions](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/SubGHzRemoteProg.md)
|
||||
- Alutech AT-4N → How to create new remote - [instructions](/documentation/SubGHzRemoteProg.md)
|
||||
- Nice ON2E (Nice One) → How to create new remote - [instructions](/documentation/SubGHzRemoteProg.md)
|
||||
</details>
|
||||
|
||||
|
||||
## ❤️ Please support development of the project
|
||||
|
||||
## Please support development of the project
|
||||
The majority of this project is developed and maintained by me, @xMasterX.
|
||||
I'm unemployed, and the only income I receive is from your donations.
|
||||
Our team is small and the guys are working on this project as much as they can solely based on the enthusiasm they have for this project and the community.
|
||||
- @gid9798 - SubGHz, Plugins, many other things
|
||||
- @assasinfil - SubGHz protocols
|
||||
- @Svaarich - UI design and animations
|
||||
- @amec0e & @Leptopt1los - Infrared assets
|
||||
Our team is small and the guys are working on this project as much as they can solely based on the enthusiasm they have for this project and the community.
|
||||
- `@mishamyte` - NFC, RFID, SubGHz and chats moderation
|
||||
- `@quen0n` - Hardware, SubGHz and chats moderation
|
||||
- `@Drone1950` - Reverse Engineering, telegram bot and chats moderation
|
||||
- `@HackcatDev` - Support and chats moderation
|
||||
- `@Leptopt1los` - NFC, RFID, Plugins, chat moderation and many other things
|
||||
- `@gid9798` - SubGHz, Plugins, many other things - currently offline :(
|
||||
- `@assasinfil` - SubGHz protocols, NFC parsers, chat moderation
|
||||
- `@Svaarich` - UI design and animations
|
||||
- `@amec0e` - Infrared assets
|
||||
- Community moderators in Telegram, Discord, and Reddit
|
||||
- And of course our GitHub community. Your PRs are a very important part of this firmware and open-source development.
|
||||
|
||||
The amount of work done on this project is huge and we need your support, no matter how large or small. Even if you just say, "Thank you Unleashed firmware developers!" somewhere. Doing so will help us continue our work and will help drive us to make the firmware better every time.
|
||||
Also, regarding our releases, every build has and always will be free and open-source. There will be no paywall releases or closed-source apps within the firmware. As long as I am working on this project it will never happen.
|
||||
Also, regarding our releases, every build has and always will be free and open-source. There will be no paywall releases or closed-source apps within the firmware. As long as I am working on this project it will never happen.
|
||||
You can support us by using links or addresses below:
|
||||
|Service|Remark|Link/Wallet|
|
||||
|-|-|-|
|
||||
|**Patreon**||https://patreon.com/mmxdev|
|
||||
|**Boosty**|patreon alternative|https://boosty.to/mmxdev|
|
||||
|cloudtips|only RU payments accepted|https://pay.cloudtips.ru/p/7b3e9d65|
|
||||
|YooMoney|only RU payments accepted|https://yoomoney.ru/fundraise/XA49mgQLPA0.221209|
|
||||
|USDT|(TRC20)|`TSXcitMSnWXUFqiUfEXrTVpVewXy2cYhrs`|
|
||||
|BCH||`qquxfyzntuqufy2dx0hrfr4sndp0tucvky4sw8qyu3`|
|
||||
|ETH|(BSC/ERC20-Tokens)|`darkflippers.eth` (or `0xFebF1bBc8229418FF2408C07AF6Afa49152fEc6a`)|
|
||||
|BTC||`bc1q0np836jk9jwr4dd7p6qv66d04vamtqkxrecck9`|
|
||||
|DOGE||`D6R6gYgBn5LwTNmPyvAQR6bZ9EtGgFCpvv`|
|
||||
|LTC||`ltc1q3ex4ejkl0xpx3znwrmth4lyuadr5qgv8tmq8z9`|
|
||||
|XMR|(Monero)| `41xUz92suUu1u5Mu4qkrcs52gtfpu9rnZRdBpCJ244KRHf6xXSvVFevdf2cnjS7RAeYr5hn9MsEfxKoFDRSctFjG5fv1Mhn`|
|
||||
|TON||`EQCOqcnYkvzOZUV_9bPE_8oTbOrOF03MnF-VcJyjisTZmpGf`|
|
||||
|
||||
## Community apps included
|
||||
|
||||
### [🎲 Download Extra plugins for Unleashed](https://github.com/xMasterX/all-the-plugins/releases/latest)
|
||||
### [List of Extra pack](https://github.com/xMasterX/all-the-plugins/tree/dev#extra-pack) | [List of Base *(Deafult)* pack](https://github.com/xMasterX/all-the-plugins/tree/dev#default-pack)
|
||||
|
||||
See full list and sources here: [xMasterX/all-the-plugin](https://github.com/xMasterX/all-the-plugins/tree/dev)
|
||||
|
||||
### Official Flipper Zero Apps Catalog [web version](https://lab.flipper.net/apps) or mobile app
|
||||
|
||||
# Instructions
|
||||
## First lock official docs [docs.flipper.net](https://docs.flipper.net/)
|
||||
## [How to install](/documentation/HowToInstall.md) - [versions info](/CHANGELOG.md#what-n-r-e--c-means-what-i-need-to-download-if-i-dont-want-to-use-web-updater): `n`,` `,`e`...
|
||||
## Firmware & Development
|
||||
|
||||
### - **[How to build](/documentation/HowToBuild.md#how-to-build-by-yourself) | [Project-structure](#project-structure)**
|
||||
|
||||
### - **CLion IDE** - How to setup workspace for flipper firmware development [by Savely Krasovsky](https://krasovs.ky/2022/11/01/flipper-zero-clion.html)
|
||||
|
||||
### - **"Hello world!"** - plugin tutorial [English<sub> by DroomOne</sub> ](https://github.com/DroomOne/Flipper-Plugin-Tutorial) | [Russian<sub> by Pavel Yakovlev</sub>](https://yakovlev.me/hello-flipper-zero/)
|
||||
|
||||
### - [How to write your own app](https://flipper.atmanos.com/docs/overview/intro). Docs by atmanos **⚠️outdated API**
|
||||
|
||||
## Firmware & main Apps feature
|
||||
|
||||
### - System: [How to change Flipper name](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/CustomFlipperName.md)
|
||||
|
||||
### - BadUSB: [How to add new keyboard layouts](https://github.com/dummy-decoy/flipperzero_badusb_kl)
|
||||
|
||||
### - Infrared: [How to make captures to add them into Universal IR remotes](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/InfraredCaptures.md)
|
||||
|
||||
## **Sub-GHz**
|
||||
|
||||
### - External Radio: [How to connect CC1101 module](https://github.com/quen0n/flipperzero-ext-cc1101)
|
||||
|
||||
### - Transmission is blocked? [How to extend Sub-GHz frequency range](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/DangerousSettings.md)
|
||||
|
||||
### - [How to add extra Sub-GHz frequencies](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/SubGHzSettings.md)
|
||||
|
||||
### - [How to use Flipper as new remote (Nice FlorS, BFT Mitto, Somfy Telis, Aprimatic, AN-Motors, etc..)](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/SubGHzRemoteProg.md)
|
||||
|
||||
### - [~~Configure Sub-GHz Remote App~~](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/SubGHzRemotePlugin.md) Not recomeded, please use embedded configurator
|
||||
|
||||
## **Plugins**
|
||||
|
||||
### - TOTP (Authenticator): [config description](https://github.com/akopachov/flipper-zero_authenticator/blob/master/docs/conf-file_description.md)
|
||||
|
||||
### - Mifare Nested plugin: [How to recover keys](https://github.com/AloneLiberty/FlipperNested#how-to-use-it)
|
||||
|
||||
### - Barcode Generator: [How to use](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/BarcodeGenerator.md)
|
||||
|
||||
### - Multi Converter: [How to use](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/MultiConverter.md)
|
||||
|
||||
### - WAV Player: [sample files & how to convert](https://github.com/UberGuidoZ/Flipper/tree/main/Wav_Player#readme)
|
||||
|
||||
### - Sub-GHz playlist: [generator script](https://github.com/darmiel/flipper-scripts/blob/main/playlist/playlist_creator_by_chunk.py)
|
||||
|
||||
## **Plugins that works with external hardware** [GPIO]
|
||||
|
||||
### - Unitemp - Temperature sensors reader: [How to use & supported sensors](https://github.com/quen0n/unitemp-flipperzero#readme)
|
||||
|
||||
### - [NMEA] GPS: [How to use](https://github.com/xMasterX/all-the-plugins/blob/dev/base_pack/gps_nmea_uart/README.md)
|
||||
|
||||
### - i2c Tools [How to use](https://github.com/xMasterX/all-the-plugins/blob/dev/base_pack/flipper_i2ctools/README.md)
|
||||
|
||||
### - [NRF24] plugins: [How to use](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/NRF24.md)
|
||||
| Service | Remark | QR Code | Link/Wallet |
|
||||
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|
|
||||
| <img src="https://cdn.simpleicons.org/patreon/dark/white" alt="Patreon" width="14"/> **Patreon** | | <div align="center"><a href="https://github.com/user-attachments/assets/a88a90a5-28c3-40b4-864a-0c0b79494a42"><img src="https://github.com/user-attachments/assets/da3a864d-d1c7-42cc-8a86-6fcaf26663ec" alt="QR image"/></a></div> | [patreon.com/mmxdev](https://patreon.com/mmxdev) |
|
||||
| <img src="https://cdn.simpleicons.org/boosty" alt="Boosty" width="14"/> **Boosty** | patreon alternative | <div align="center"><a href="https://github.com/user-attachments/assets/893c0760-f738-42c1-acaa-916019a7bdf8"><img src="https://github.com/user-attachments/assets/da3a864d-d1c7-42cc-8a86-6fcaf26663ec" alt="QR image"/></a></div> | [boosty.to/mmxdev](https://boosty.to/mmxdev) |
|
||||
| <img src="https://gist.githubusercontent.com/m-xim/255a3ef36c886dec144a58864608084c/raw/71da807b4abbd1582e511c9ea30fad27f78d642a/cloudtips_icon.svg" alt="Cloudtips" width="14"/> CloudTips | only RU payments accepted | <div align="center"><a href="https://github.com/user-attachments/assets/5de31d6a-ef24-4d30-bd8e-c06af815332a"><img src="https://github.com/user-attachments/assets/da3a864d-d1c7-42cc-8a86-6fcaf26663ec" alt="QR image"/></a></div> | [pay.cloudtips.ru/p/7b3e9d65](https://pay.cloudtips.ru/p/7b3e9d65) |
|
||||
| <img src="https://raw.githubusercontent.com/gist/PonomareVlad/55c8708f11702b4df629ae61129a9895/raw/1657350724dab66f2ad68ea034c480a2df2a1dfd/YooMoney.svg" alt="YooMoney" width="14"/> YooMoney | only RU payments accepted | <div align="center"><a href="https://github.com/user-attachments/assets/33454f79-074b-4349-b453-f94fdadc3c68"><img src="https://github.com/user-attachments/assets/da3a864d-d1c7-42cc-8a86-6fcaf26663ec" alt="QR image"/></a></div> | [yoomoney.ru/fundraise/XA49mgQLPA0.221209](https://yoomoney.ru/fundraise/XA49mgQLPA0.221209) |
|
||||
| <img src="https://cdn.simpleicons.org/tether" alt="USDT" width="14"/> USDT | TRC20 | <div align="center"><a href="https://github.com/user-attachments/assets/0500498d-18ed-412d-a1a4-8a66d0b6f057"><img src="https://github.com/user-attachments/assets/da3a864d-d1c7-42cc-8a86-6fcaf26663ec" alt="QR image"/></a></div> | `TSXcitMSnWXUFqiUfEXrTVpVewXy2cYhrs` |
|
||||
| <img src="https://cdn.simpleicons.org/ethereum" alt="ETH" width="14"/> ETH | BSC/ERC20-Tokens | <div align="center"><a href="https://github.com/user-attachments/assets/0f323e98-c524-4f41-abb2-f4f1cec83ab6"><img src="https://github.com/user-attachments/assets/da3a864d-d1c7-42cc-8a86-6fcaf26663ec" alt="QR image"/></a></div> | `0xFebF1bBc8229418FF2408C07AF6Afa49152fEc6a` |
|
||||
| <img src="https://cdn.simpleicons.org/bitcoin" alt="BTC" width="14"/> BTC | | <div align="center"><a href="https://github.com/user-attachments/assets/5a904d45-947e-4b92-9f0f-7fbaaa7b37f8"><img src="https://github.com/user-attachments/assets/da3a864d-d1c7-42cc-8a86-6fcaf26663ec" alt="QR image"/></a></div> | `bc1q0np836jk9jwr4dd7p6qv66d04vamtqkxrecck9` |
|
||||
| <img src="https://cdn.simpleicons.org/solana" alt="SOL" width="13"/> SOL | Solana/Tokens | <div align="center"><a href="https://github.com/user-attachments/assets/ab33c5e0-dd59-497b-9c91-ceb89c36b34d"><img src="https://github.com/user-attachments/assets/da3a864d-d1c7-42cc-8a86-6fcaf26663ec" alt="QR image"/></a></div> | `DSgwouAEgu8iP5yr7EHHDqMNYWZxAqXWsTEeqCAXGLj8` |
|
||||
| <img src="https://cdn.simpleicons.org/dogecoin" alt="DOGE" width="14"/> DOGE | | <div align="center"><a href="https://github.com/user-attachments/assets/2937edd0-5c85-4465-a444-14d4edb481c0"><img src="https://github.com/user-attachments/assets/da3a864d-d1c7-42cc-8a86-6fcaf26663ec" alt="QR image"/></a></div> | `D6R6gYgBn5LwTNmPyvAQR6bZ9EtGgFCpvv` |
|
||||
| <img src="https://cdn.simpleicons.org/litecoin" alt="LTC" width="14"/> LTC | | <div align="center"><a href="https://github.com/user-attachments/assets/441985fe-f028-4400-83c1-c215760c1e74"><img src="https://github.com/user-attachments/assets/da3a864d-d1c7-42cc-8a86-6fcaf26663ec" alt="QR image"/></a></div> | `ltc1q3ex4ejkl0xpx3znwrmth4lyuadr5qgv8tmq8z9` |
|
||||
| <img src="https://bitcoincash.org/img/green/bitcoin-cash-circle.svg" alt="BCH" width="14"/> BCH | | <div align="center"><a href="https://github.com/user-attachments/assets/7f365976-19a3-4777-b17e-4bfba5f69eff"><img src="https://github.com/user-attachments/assets/da3a864d-d1c7-42cc-8a86-6fcaf26663ec" alt="QR image"/></a></div> | `qquxfyzntuqufy2dx0hrfr4sndp0tucvky4sw8qyu3` |
|
||||
| <img src="https://cdn.simpleicons.org/monero" alt="XMR" width="14"/> XMR | Monero | <div align="center"><a href="https://github.com/user-attachments/assets/96186c06-61e7-4b4d-b716-6eaf1779bfd8"><img src="https://github.com/user-attachments/assets/da3a864d-d1c7-42cc-8a86-6fcaf26663ec" alt="QR image"/></a></div> | `41xUz92suUu1u5Mu4qkrcs52gtfpu9rnZRdBpCJ244KRHf6xXSvVFevdf2cnjS7RAeYr5hn9MsEfxKoFDRSctFjG5fv1Mhn` |
|
||||
| <img src="https://cdn.simpleicons.org/ton" alt="TON" width="14"/> TON | | <div align="center"><a href="https://github.com/user-attachments/assets/92a57e57-7462-42b7-a342-6f22c6e600c1"><img src="https://github.com/user-attachments/assets/da3a864d-d1c7-42cc-8a86-6fcaf26663ec" alt="QR image"/></a></div> | `UQCOqcnYkvzOZUV_9bPE_8oTbOrOF03MnF-VcJyjisTZmsxa` |
|
||||
|
||||
|
||||
### - [WiFi] Scanner: [How to use](https://github.com/SequoiaSan/FlipperZero-WiFi-Scanner_Module#readme) | [Web Flasher](https://sequoiasan.github.io/FlipperZero-WiFi-Scanner_Module/)
|
||||
## 📱 Community Apps
|
||||
|
||||
### - [ESP8266] Deauther: [How to use](https://github.com/SequoiaSan/FlipperZero-Wifi-ESP8266-Deauther-Module#readme) | [Web Flasher](https://sequoiasan.github.io/FlipperZero-Wifi-ESP8266-Deauther-Module/)
|
||||
Enhance your Flipper Zero with apps and plugins created by the community:
|
||||
|
||||
### - [ESP32] WiFi Marauder: [How to use](https://github.com/UberGuidoZ/Flipper/tree/main/Wifi_DevBoard)<sub> docs by UberGuidoZ</sub> | [Marauder repo](https://github.com/justcallmekoko/ESP32Marauder)
|
||||
- **Extra Plugins & Packs:**
|
||||
Check out the latest extra plugins and plugin packs (Extra Pack and Base Pack) on [GitHub](https://github.com/xMasterX/all-the-plugins/releases/latest).
|
||||
|
||||
### - [ESP32-CAM] Camera Suite: [How to use](https://github.com/CodyTolene/Flipper-Zero-Camera-Suite)
|
||||
- **Source Code & Full List:**
|
||||
Find the complete list and source code at [xMasterX/all-the-plugins](https://github.com/xMasterX/all-the-plugins/tree/dev).
|
||||
|
||||
### - How to Upload `.bin` to ESP32/ESP8266: [Windows](https://github.com/SequoiaSan/Guide-How-To-Upload-bin-to-ESP8266-ESP32) | [FAP "ESP flasher"](https://github.com/0xchocolate/flipperzero-esp-flasher)
|
||||
- **Official Apps Catalog:**
|
||||
Browse the official Flipper Zero Apps Catalog on the [web](https://lab.flipper.net/apps) or via the [mobile app](https://flipperzero.one/downloads).
|
||||
|
||||
### - [GPIO] SentrySafe plugin: [How to use](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/SentrySafe.md)
|
||||
|
||||
<br>
|
||||
<br>
|
||||
## 📁 Where I can find IR, Sub-GHz, ... files, DBs, and other stuff?
|
||||
- [UberGuidoZ Playground - Large collection of files - Github](https://github.com/UberGuidoZ/Flipper)
|
||||
- [Awesome Flipper Zero - Github](https://github.com/djsime1/awesome-flipperzero)
|
||||
|
||||
# Where I can find IR, Sub-GHz, ... files, DBs, and other stuff?
|
||||
## [UberGuidoZ Playground - Large collection of files - Github](https://github.com/UberGuidoZ/Flipper)
|
||||
## [Awesome Flipper Zero - Github](https://github.com/djsime1/awesome-flipperzero)
|
||||
|
||||
<br>
|
||||
<br>
|
||||
## 📘 Instructions
|
||||
|
||||
# Links
|
||||
### ![Tools Icon Badge] Firmware & main Apps feature
|
||||
|
||||
* Official Docs: [docs.flipper.net](https://docs.flipper.net/)
|
||||
* Official Forum: [forum.flipperzero.one](https://forum.flipperzero.one/)
|
||||
- System: [How to change Flipper name](/documentation/CustomFlipperName.md)
|
||||
- BadUSB: [How to add new keyboard layouts](https://github.com/dummy-decoy/flipperzero_badusb_kl)
|
||||
- Infrared: [How to make captures to add them into Universal IR remotes](/documentation/InfraredCaptures.md)
|
||||
|
||||
# Project structure
|
||||
### ![SubGhz Icon Badge] Sub-GHz
|
||||
|
||||
- [How to use Flipper as rolling code remote (Doorhan, Nice FlorS, BFT Mitto, Somfy Telis, Aprimatic, AN-Motors, etc..)](/documentation/SubGHzRemoteProg.md)
|
||||
- [Experimental rolling code counter modes (avoid desync)](/documentation/SubGHzCounterMode.md)
|
||||
- External Radio: [How to connect CC1101 module](https://github.com/quen0n/flipperzero-ext-cc1101)
|
||||
- Transmission is blocked? [How to extend Sub-GHz frequency range](/documentation/DangerousSettings.md)
|
||||
- [How to add extra Sub-GHz frequencies](/documentation/SubGHzSettings.md)
|
||||
- [~~Configure Sub-GHz Remote App~~](/documentation/SubGHzRemotePlugin.md) ⚠️ Not recommended, please use embedded configurator
|
||||
|
||||
### ![Plugins Icon Badge] Plugins
|
||||
|
||||
- TOTP (Authenticator): [config description](https://github.com/akopachov/flipper-zero_authenticator/blob/master/docs/conf-file_description.md)
|
||||
- Barcode Generator: [How to use](/documentation/BarcodeGenerator.md)
|
||||
- Multi Converter: [How to use](/documentation/MultiConverter.md)
|
||||
- WAV Player: [sample files & how to convert](https://github.com/UberGuidoZ/Flipper/tree/main/Wav_Player#readme)
|
||||
- Sub-GHz playlist: [generator script](https://github.com/darmiel/flipper-scripts/blob/main/playlist/playlist_creator_by_chunk.py)
|
||||
|
||||
### ![GPIO Icon Badge] GPIO - Plugins that works with external hardware
|
||||
|
||||
- Unitemp - Temperature sensors reader: [How to use & supported sensors](https://github.com/quen0n/unitemp-flipperzero#readme)
|
||||
- [NMEA] GPS: [How to use](https://github.com/xMasterX/all-the-plugins/blob/dev/base_pack/gps_nmea_uart/README.md)
|
||||
- i2c Tools [How to use](https://github.com/xMasterX/all-the-plugins/blob/dev/base_pack/flipper_i2ctools/README.md)
|
||||
- [NRF24] plugins: [How to use](/documentation/NRF24.md)
|
||||
- [WiFi] Scanner: [How to use](https://github.com/SequoiaSan/FlipperZero-WiFi-Scanner_Module#readme) | [Web Flasher](https://sequoiasan.github.io/FlipperZero-WiFi-Scanner_Module/)
|
||||
- [ESP8266] Deauther: [How to use](https://github.com/SequoiaSan/FlipperZero-Wifi-ESP8266-Deauther-Module#readme) | [Web Flasher](https://sequoiasan.github.io/FlipperZero-Wifi-ESP8266-Deauther-Module/)
|
||||
- [ESP32] WiFi Marauder: [How to use](https://github.com/UberGuidoZ/Flipper/tree/main/Wifi_DevBoard)<sub> docs by UberGuidoZ</sub> | [Marauder repo](https://github.com/justcallmekoko/ESP32Marauder)
|
||||
- [ESP32-CAM] Camera Suite: [How to use](https://github.com/CodyTolene/Flipper-Zero-Camera-Suite)
|
||||
- How to Upload `.bin` to ESP32/ESP8266: [Windows](https://github.com/SequoiaSan/Guide-How-To-Upload-bin-to-ESP8266-ESP32) | [FAP "ESP flasher"](https://github.com/0xchocolate/flipperzero-esp-flasher)
|
||||
- [GPIO] SentrySafe plugin: [How to use](/documentation/SentrySafe.md)
|
||||
|
||||
|
||||
## 👨💻 Firmware & Development
|
||||
|
||||
- **Developer Documentation** - [developer.flipper.net](https://developer.flipper.net/flipperzero/doxygen)
|
||||
- **[How to build](/documentation/HowToBuild.md#how-to-build-by-yourself) | [Project-structure](#project-structure)**
|
||||
- **CLion IDE** - How to setup workspace for flipper firmware development [by Savely Krasovsky](https://krasovs.ky/2022/11/01/flipper-zero-clion.html)
|
||||
- **"Hello world!"** - plugin tutorial [English<sub> by DroomOne</sub> ](https://github.com/DroomOne/Flipper-Plugin-Tutorial) | [Russian<sub> by Pavel Yakovlev</sub>](https://yakovlev.me/hello-flipper-zero)
|
||||
- [How to write your own app](https://flipper.atmanos.com/docs/overview/intro).
|
||||
|
||||
### Project structure
|
||||
|
||||
- `applications` - Applications and services used in firmware
|
||||
- `assets` - Assets used by applications and services
|
||||
@@ -268,3 +323,34 @@ See full list and sources here: [xMasterX/all-the-plugin](https://github.com/xMa
|
||||
- `scripts` - Supplementary scripts and python libraries home
|
||||
|
||||
Also, pay attention to the `ReadMe.md` files inside those directories.
|
||||
|
||||
|
||||
## 🔗 Links
|
||||
- **Unleashed web page:** [flipperunleashed.com](https://flipperunleashed.com)
|
||||
- **Unleashed update server, direct .tgz update links for web updater or direct download:** [unleashedflip.com](https://unleashedflip.com)
|
||||
|
||||
- Official Docs: [docs.flipper.net](https://docs.flipper.net)
|
||||
- Official Forum: [forum.flipperzero.one](https://forum.flipperzero.one)
|
||||
- Update! Developer Documentation [developer.flipper.net](https://developer.flipper.net/flipperzero/doxygen)
|
||||
|
||||
|
||||
[RFID Icon Badge]: https://custom-icon-badges.demolab.com/badge/-rgb(255,244,147)?style=flat&logo=fz-rfid&logoColor=black
|
||||
[iButton Icon Badge]: https://custom-icon-badges.demolab.com/badge/-rgb(225,187,166)?style=flat&logo=fz-ibutton&logoColor=black
|
||||
[SubGhz Icon Badge]: https://custom-icon-badges.demolab.com/badge/-rgb(165,244,190)?style=flat&logo=fz-subghz&logoColor=black
|
||||
|
||||
[GPIO Badge]: https://custom-icon-badges.demolab.com/badge/-GPIO-rgb(167,242,234)?style=flat&logo=fz-gpio&logoColor=black
|
||||
[GPIO Icon Badge]: https://custom-icon-badges.demolab.com/badge/-rgb(167,242,234)?style=flat&logo=fz-gpio&logoColor=black
|
||||
|
||||
[Tools Icon Badge]: https://custom-icon-badges.demolab.com/badge/-rgb(223,241,89)?style=flat&logo=fz-tools&logoColor=black
|
||||
[Media Icon Badge]: https://custom-icon-badges.demolab.com/badge/-rgb(223,181,255)?style=flat&logo=fz-media&logoColor=black
|
||||
[BT Icon Badge]: https://custom-icon-badges.demolab.com/badge/-rgb(139,172,255)?style=flat&logo=fz-bluetooth&logoColor=black
|
||||
[NFC Icon Badge]: https://custom-icon-badges.demolab.com/badge/-rgb(152,206,254)?style=flat&logo=fz-nfc&logoColor=black
|
||||
[USB Icon Badge]: https://custom-icon-badges.demolab.com/badge/-rgb(255,190,233)?style=flat&logo=fz-badusb&logoColor=black
|
||||
[IR Icon Badge]: https://custom-icon-badges.demolab.com/badge/-rgb(254,147,140)?style=flat&logo=fz-infrared&logoColor=black
|
||||
[Games Icon Badge]: https://custom-icon-badges.demolab.com/badge/-rgb(255,196,134)?style=flat&logo=fz-games&logoColor=black
|
||||
[Plugins Icon Badge]: https://custom-icon-badges.demolab.com/badge/-rgb(226,78,178)?style=flat&logo=fz-plugins&logoColor=black
|
||||
|
||||
[UFW Icon Badge]: https://img.shields.io/badge/by_UFW-%2314D411?style=flat-square
|
||||
[Official Icon Badge]: https://img.shields.io/badge/by_OFW-%23FF8200?style=flat-square
|
||||
[Author Icon Badge]: https://img.shields.io/badge/by_author-%23FFFF00?style=flat-square
|
||||
[None Icon Badge]: https://img.shields.io/badge/None-%23FF0000?style=flat-square
|
||||
|
||||
214
SConstruct
@@ -7,7 +7,7 @@
|
||||
# construction of certain targets behind command-line options.
|
||||
|
||||
import os
|
||||
from fbt.util import path_as_posix
|
||||
from fbt.util import open_browser_action
|
||||
|
||||
DefaultEnvironment(tools=[])
|
||||
|
||||
@@ -42,10 +42,11 @@ distenv = coreenv.Clone(
|
||||
"openocd",
|
||||
"blackmagic",
|
||||
"jflash",
|
||||
"doxygen",
|
||||
"textfile",
|
||||
],
|
||||
ENV=os.environ,
|
||||
UPDATE_BUNDLE_DIR="dist/${DIST_DIR}/f${TARGET_HW}-update-${DIST_SUFFIX}",
|
||||
VSCODE_LANG_SERVER=ARGUMENTS.get("LANG_SERVER", "cpptools"),
|
||||
)
|
||||
|
||||
firmware_env = distenv.AddFwProject(
|
||||
@@ -66,21 +67,24 @@ if GetOption("fullenv") or any(
|
||||
|
||||
# Target for self-update package
|
||||
dist_basic_arguments = [
|
||||
"${ARGS}",
|
||||
"--bundlever",
|
||||
'"${UPDATE_VERSION_STRING}"',
|
||||
"${UPDATE_VERSION_STRING}",
|
||||
]
|
||||
dist_radio_arguments = [
|
||||
"--radio",
|
||||
'"${ROOT_DIR.abspath}/${COPRO_STACK_BIN_DIR}/${COPRO_STACK_BIN}"',
|
||||
"${ROOT_DIR.abspath}/${COPRO_STACK_BIN_DIR}/${COPRO_STACK_BIN}",
|
||||
"--radiotype",
|
||||
"${COPRO_STACK_TYPE}",
|
||||
"${COPRO_DISCLAIMER}",
|
||||
"--obdata",
|
||||
'"${ROOT_DIR.abspath}/${COPRO_OB_DATA}"',
|
||||
"${ROOT_DIR.abspath}/${COPRO_OB_DATA}",
|
||||
"--stackversion",
|
||||
"${COPRO_CUBE_VERSION}",
|
||||
]
|
||||
dist_resource_arguments = [
|
||||
"-r",
|
||||
'"${ROOT_DIR.abspath}/assets/resources"',
|
||||
firmware_env.subst("${RESOURCES_ROOT}"),
|
||||
]
|
||||
dist_splash_arguments = (
|
||||
[
|
||||
@@ -93,7 +97,7 @@ if GetOption("fullenv") or any(
|
||||
|
||||
selfupdate_dist = distenv.DistCommand(
|
||||
"updater_package",
|
||||
(distenv["DIST_DEPENDS"], firmware_env["FW_RESOURCES"]),
|
||||
(distenv["DIST_DEPENDS"], firmware_env["FW_RESOURCES_MANIFEST"]),
|
||||
DIST_EXTRA=[
|
||||
*dist_basic_arguments,
|
||||
*dist_radio_arguments,
|
||||
@@ -126,7 +130,8 @@ if GetOption("fullenv") or any(
|
||||
|
||||
# Installation over USB & CLI
|
||||
usb_update_package = distenv.AddUsbFlashTarget(
|
||||
"#build/usbinstall.flag", (firmware_env["FW_RESOURCES"], selfupdate_dist)
|
||||
"#build/usbinstall.flag",
|
||||
(firmware_env["FW_RESOURCES_MANIFEST"], selfupdate_dist),
|
||||
)
|
||||
distenv.Alias("flash_usb_full", usb_update_package)
|
||||
|
||||
@@ -164,17 +169,28 @@ Depends(
|
||||
list(app_artifact.validator for app_artifact in external_app_list),
|
||||
)
|
||||
Alias("fap_dist", fap_dist)
|
||||
# distenv.Default(fap_dist)
|
||||
|
||||
distenv.Depends(firmware_env["FW_RESOURCES"], external_apps_artifacts.resources_dist)
|
||||
|
||||
# Copy all faps to device
|
||||
|
||||
fap_deploy = distenv.PhonyTarget(
|
||||
"fap_deploy",
|
||||
"${PYTHON3} ${FBT_SCRIPT_DIR}/storage.py -p ${FLIP_PORT} send ${SOURCE} /ext/apps",
|
||||
source=Dir("#/assets/resources/apps"),
|
||||
Action(
|
||||
[
|
||||
[
|
||||
"${PYTHON3}",
|
||||
"${FBT_SCRIPT_DIR}/storage.py",
|
||||
"-p",
|
||||
"${FLIP_PORT}",
|
||||
"send",
|
||||
"${SOURCE}",
|
||||
"/ext/apps",
|
||||
"${ARGS}",
|
||||
]
|
||||
]
|
||||
),
|
||||
source=firmware_env.Dir(("${RESOURCES_ROOT}/apps")),
|
||||
)
|
||||
Depends(fap_deploy, firmware_env["FW_RESOURCES_MANIFEST"])
|
||||
|
||||
|
||||
# Target for bundling core2 package for qFlipper
|
||||
@@ -195,7 +211,7 @@ distenv.Alias("jflash", firmware_jflash)
|
||||
|
||||
distenv.PhonyTarget(
|
||||
"gdb_trace_all",
|
||||
"$GDB $GDBOPTS $SOURCES $GDBFLASH",
|
||||
[["${GDB}", "${GDBOPTS}", "${SOURCES}", "${GDBFLASH}"]],
|
||||
source=firmware_env["FW_ELF"],
|
||||
GDBOPTS="${GDBOPTS_BASE}",
|
||||
GDBREMOTE="${OPENOCD_GDB_PIPE}",
|
||||
@@ -214,18 +230,19 @@ firmware_debug = distenv.PhonyTarget(
|
||||
source=firmware_env["FW_ELF"],
|
||||
GDBOPTS="${GDBOPTS_BASE}",
|
||||
GDBREMOTE="${OPENOCD_GDB_PIPE}",
|
||||
FBT_FAP_DEBUG_ELF_ROOT=path_as_posix(firmware_env.subst("$FBT_FAP_DEBUG_ELF_ROOT")),
|
||||
FBT_FAP_DEBUG_ELF_ROOT=firmware_env["FBT_FAP_DEBUG_ELF_ROOT"],
|
||||
)
|
||||
distenv.Depends(firmware_debug, firmware_flash)
|
||||
|
||||
distenv.PhonyTarget(
|
||||
firmware_blackmagic = distenv.PhonyTarget(
|
||||
"blackmagic",
|
||||
"${GDBPYCOM}",
|
||||
source=firmware_env["FW_ELF"],
|
||||
GDBOPTS="${GDBOPTS_BASE} ${GDBOPTS_BLACKMAGIC}",
|
||||
GDBREMOTE="${BLACKMAGIC_ADDR}",
|
||||
FBT_FAP_DEBUG_ELF_ROOT=path_as_posix(firmware_env.subst("$FBT_FAP_DEBUG_ELF_ROOT")),
|
||||
FBT_FAP_DEBUG_ELF_ROOT=firmware_env["FBT_FAP_DEBUG_ELF_ROOT"],
|
||||
)
|
||||
distenv.Depends(firmware_blackmagic, firmware_flash)
|
||||
|
||||
# Debug alien elf
|
||||
debug_other_opts = [
|
||||
@@ -250,7 +267,7 @@ distenv.PhonyTarget(
|
||||
distenv.PhonyTarget(
|
||||
"debug_other_blackmagic",
|
||||
"${GDBPYCOM}",
|
||||
GDBOPTS="${GDBOPTS_BASE} ${GDBOPTS_BLACKMAGIC}",
|
||||
GDBOPTS="${GDBOPTS_BASE} ${GDBOPTS_BLACKMAGIC}",
|
||||
GDBREMOTE="${BLACKMAGIC_ADDR}",
|
||||
GDBPYOPTS=debug_other_opts,
|
||||
)
|
||||
@@ -259,39 +276,76 @@ distenv.PhonyTarget(
|
||||
# Just start OpenOCD
|
||||
distenv.PhonyTarget(
|
||||
"openocd",
|
||||
"${OPENOCDCOM}",
|
||||
[["${OPENOCDCOM}", "${ARGS}"]],
|
||||
)
|
||||
|
||||
# Linter
|
||||
distenv.PhonyTarget(
|
||||
"lint",
|
||||
"${PYTHON3} ${FBT_SCRIPT_DIR}/lint.py check ${LINT_SOURCES}",
|
||||
[
|
||||
[
|
||||
"${PYTHON3}",
|
||||
"${FBT_SCRIPT_DIR}/lint.py",
|
||||
"check",
|
||||
"${LINT_SOURCES}",
|
||||
"${ARGS}",
|
||||
]
|
||||
],
|
||||
LINT_SOURCES=[n.srcnode() for n in firmware_env["LINT_SOURCES"]],
|
||||
)
|
||||
|
||||
distenv.PhonyTarget(
|
||||
"format",
|
||||
"${PYTHON3} ${FBT_SCRIPT_DIR}/lint.py format ${LINT_SOURCES}",
|
||||
[
|
||||
[
|
||||
"${PYTHON3}",
|
||||
"${FBT_SCRIPT_DIR}/lint.py",
|
||||
"format",
|
||||
"${LINT_SOURCES}",
|
||||
"${ARGS}",
|
||||
]
|
||||
],
|
||||
LINT_SOURCES=[n.srcnode() for n in firmware_env["LINT_SOURCES"]],
|
||||
)
|
||||
|
||||
# PY_LINT_SOURCES contains recursively-built modules' SConscript files + application manifests
|
||||
# PY_LINT_SOURCES contains recursively-built modules' SConscript files
|
||||
# Here we add additional Python files residing in repo root
|
||||
firmware_env.Append(
|
||||
PY_LINT_SOURCES=[
|
||||
# Py code folders
|
||||
"site_scons",
|
||||
"scripts",
|
||||
"applications",
|
||||
"applications_user",
|
||||
"assets",
|
||||
"targets",
|
||||
# Extra files
|
||||
"SConstruct",
|
||||
"firmware.scons",
|
||||
"fbt_options.py",
|
||||
]
|
||||
],
|
||||
IMG_LINT_SOURCES=[
|
||||
# Image assets
|
||||
"applications",
|
||||
"assets",
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
black_commandline = "@${PYTHON3} -m black ${PY_BLACK_ARGS} ${PY_LINT_SOURCES}"
|
||||
black_base_args = ["--include", '"\\.scons|\\.py|SConscript|SConstruct"']
|
||||
black_commandline = [
|
||||
[
|
||||
"@${PYTHON3}",
|
||||
"-m",
|
||||
"black",
|
||||
"${PY_BLACK_ARGS}",
|
||||
"${PY_LINT_SOURCES}",
|
||||
"${ARGS}",
|
||||
]
|
||||
]
|
||||
black_base_args = [
|
||||
"--include",
|
||||
'"(\\.scons|\\.py|SConscript|SConstruct|\\.fam)$"',
|
||||
]
|
||||
|
||||
distenv.PhonyTarget(
|
||||
"lint_py",
|
||||
@@ -311,13 +365,79 @@ distenv.PhonyTarget(
|
||||
PY_LINT_SOURCES=firmware_env["PY_LINT_SOURCES"],
|
||||
)
|
||||
|
||||
# Start Flipper CLI via PySerial's miniterm
|
||||
# Image assets linting
|
||||
distenv.PhonyTarget(
|
||||
"cli", "${PYTHON3} ${FBT_SCRIPT_DIR}/serial_cli.py -p ${FLIP_PORT}"
|
||||
"lint_img",
|
||||
[
|
||||
[
|
||||
"${PYTHON3}",
|
||||
"${FBT_SCRIPT_DIR}/imglint.py",
|
||||
"check",
|
||||
"${IMG_LINT_SOURCES}",
|
||||
"${ARGS}",
|
||||
]
|
||||
],
|
||||
IMG_LINT_SOURCES=firmware_env["IMG_LINT_SOURCES"],
|
||||
)
|
||||
|
||||
# Update WiFi devboard firmware
|
||||
distenv.PhonyTarget("devboard_flash", "${PYTHON3} ${FBT_SCRIPT_DIR}/wifi_board.py")
|
||||
distenv.PhonyTarget(
|
||||
"format_img",
|
||||
[
|
||||
[
|
||||
"${PYTHON3}",
|
||||
"${FBT_SCRIPT_DIR}/imglint.py",
|
||||
"format",
|
||||
"${IMG_LINT_SOURCES}",
|
||||
"${ARGS}",
|
||||
]
|
||||
],
|
||||
IMG_LINT_SOURCES=firmware_env["IMG_LINT_SOURCES"],
|
||||
)
|
||||
|
||||
distenv.Alias("lint_all", ["lint", "lint_py", "lint_img"])
|
||||
distenv.Alias("format_all", ["format", "format_py", "format_img"])
|
||||
|
||||
|
||||
# Start Flipper CLI via PySerial's miniterm
|
||||
distenv.PhonyTarget(
|
||||
"cli",
|
||||
[
|
||||
[
|
||||
"${PYTHON3}",
|
||||
"${FBT_SCRIPT_DIR}/serial_cli.py",
|
||||
"-p",
|
||||
"${FLIP_PORT}",
|
||||
"${ARGS}",
|
||||
]
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
# Measure CLI loopback performance
|
||||
distenv.PhonyTarget(
|
||||
"cli_perf",
|
||||
[
|
||||
[
|
||||
"${PYTHON3}",
|
||||
"${FBT_SCRIPT_DIR}/serial_cli_perf.py",
|
||||
"-p",
|
||||
"${FLIP_PORT}",
|
||||
"${ARGS}",
|
||||
]
|
||||
],
|
||||
)
|
||||
|
||||
# Update WiFi devboard firmware with release channel
|
||||
distenv.PhonyTarget(
|
||||
"devboard_flash",
|
||||
[
|
||||
[
|
||||
"${PYTHON3}",
|
||||
"${FBT_SCRIPT_DIR}/wifi_board.py",
|
||||
"${ARGS}",
|
||||
]
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
# Find blackmagic probe
|
||||
@@ -331,26 +451,50 @@ distenv.PhonyTarget(
|
||||
distenv.PhonyTarget(
|
||||
"get_stlink",
|
||||
distenv.Action(
|
||||
lambda **kw: distenv.GetDevices(),
|
||||
lambda **_: distenv.GetDevices(),
|
||||
None,
|
||||
),
|
||||
)
|
||||
|
||||
# Prepare vscode environment
|
||||
VSCODE_LANG_SERVER = cmd_environment["LANG_SERVER"]
|
||||
vscode_dist = distenv.Install(
|
||||
"#.vscode",
|
||||
[
|
||||
distenv.Glob("#.vscode/example/*.json"),
|
||||
distenv.Glob(f"#.vscode/example/{VSCODE_LANG_SERVER}/*.json"),
|
||||
distenv.Glob("#.vscode/example/*.json", exclude="*.tmpl"),
|
||||
distenv.Glob("#.vscode/example/${LANG_SERVER}/*.json"),
|
||||
],
|
||||
)
|
||||
for template_file in distenv.Glob("#.vscode/example/*.tmpl"):
|
||||
vscode_dist.append(
|
||||
distenv.Substfile(
|
||||
distenv.Dir("#.vscode").File(template_file.name.replace(".tmpl", "")),
|
||||
template_file,
|
||||
SUBST_DICT={
|
||||
"@FBT_PLATFORM_EXECUTABLE_EXT@": ".exe" if os.name == "nt" else ""
|
||||
},
|
||||
)
|
||||
)
|
||||
distenv.Precious(vscode_dist)
|
||||
distenv.NoClean(vscode_dist)
|
||||
distenv.Alias("vscode_dist", vscode_dist)
|
||||
distenv.Alias("vscode_dist", (vscode_dist, firmware_env["FW_CDB"]))
|
||||
|
||||
# Configure shell with build tools
|
||||
distenv.PhonyTarget(
|
||||
"env",
|
||||
"@echo $( ${FBT_SCRIPT_DIR}/toolchain/fbtenv.sh $)",
|
||||
"@echo $( ${FBT_SCRIPT_DIR.abspath}/toolchain/fbtenv.sh $)",
|
||||
)
|
||||
|
||||
doxy_build = distenv.DoxyBuild(
|
||||
"documentation/doxygen/build/html/index.html",
|
||||
"documentation/doxygen/Doxyfile-awesome.cfg",
|
||||
doxy_env_variables={
|
||||
"DOXY_SRC_ROOT": Dir(".").abspath,
|
||||
"DOXY_BUILD_DIR": Dir("documentation/doxygen/build").abspath,
|
||||
"DOXY_CONFIG_DIR": "documentation/doxygen",
|
||||
},
|
||||
)
|
||||
distenv.Alias("doxygen", doxy_build)
|
||||
distenv.AlwaysBuild(doxy_build)
|
||||
|
||||
# Open generated documentation in browser
|
||||
distenv.PhonyTarget("doxy", open_browser_action, source=doxy_build)
|
||||
|
||||
@@ -40,7 +40,6 @@ Applications for main Flipper menu.
|
||||
Background services providing system APIs to applications.
|
||||
|
||||
- `applications.h` - Firmware application list header
|
||||
|
||||
- `bt` - BLE service and application
|
||||
- `cli` - Console service and API
|
||||
- `crypto` - Crypto cli tools
|
||||
@@ -68,11 +67,15 @@ Small applications providing configuration for basic firmware and its services.
|
||||
- `power_settings_app` - Basic power options
|
||||
- `storage_settings` - Storage settings app
|
||||
- `system` - System settings
|
||||
- `input_settings_app` - Basic input options
|
||||
|
||||
|
||||
## system
|
||||
|
||||
Utility apps not visible in other menus.
|
||||
Utility apps not visible in other menus, plus few external apps pre-packaged with the firmware.
|
||||
|
||||
- `hid_app` - BLE & USB HID remote
|
||||
- `js_app` - JS engine runner
|
||||
- `snake_game` - Snake game
|
||||
- `storage_move_to_sd` - Data migration tool for internal storage
|
||||
- `updater` - Update service & application
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#include <furi.h>
|
||||
#include <furi_hal.h>
|
||||
#include <stdarg.h>
|
||||
#include <power/power_service/power.h>
|
||||
|
||||
void AccessorApp::run(void) {
|
||||
AccessorEvent event;
|
||||
@@ -34,13 +35,19 @@ void AccessorApp::run(void) {
|
||||
AccessorApp::AccessorApp()
|
||||
: text_store{0} {
|
||||
notification = static_cast<NotificationApp*>(furi_record_open(RECORD_NOTIFICATION));
|
||||
expansion = static_cast<Expansion*>(furi_record_open(RECORD_EXPANSION));
|
||||
power = static_cast<Power*>(furi_record_open(RECORD_POWER));
|
||||
onewire_host = onewire_host_alloc(&gpio_ibutton);
|
||||
furi_hal_power_enable_otg();
|
||||
expansion_disable(expansion);
|
||||
power_enable_otg(power, true);
|
||||
}
|
||||
|
||||
AccessorApp::~AccessorApp() {
|
||||
furi_hal_power_disable_otg();
|
||||
power_enable_otg(power, false);
|
||||
expansion_enable(expansion);
|
||||
furi_record_close(RECORD_EXPANSION);
|
||||
furi_record_close(RECORD_NOTIFICATION);
|
||||
furi_record_close(RECORD_POWER);
|
||||
onewire_host_free(onewire_host);
|
||||
}
|
||||
|
||||
|
||||
@@ -6,34 +6,36 @@
|
||||
#include "helpers/wiegand.h"
|
||||
#include <one_wire/one_wire_host.h>
|
||||
#include <notification/notification_messages.h>
|
||||
#include <expansion/expansion.h>
|
||||
#include <power/power_service/power.h>
|
||||
|
||||
class AccessorApp {
|
||||
public:
|
||||
void run(void);
|
||||
|
||||
AccessorApp();
|
||||
~AccessorApp();
|
||||
AccessorApp(void);
|
||||
~AccessorApp(void);
|
||||
|
||||
enum class Scene : uint8_t {
|
||||
Exit,
|
||||
Start,
|
||||
};
|
||||
|
||||
AccessorAppViewManager* get_view_manager();
|
||||
AccessorAppViewManager* get_view_manager(void);
|
||||
void switch_to_next_scene(Scene index);
|
||||
void search_and_switch_to_previous_scene(std::initializer_list<Scene> scenes_list);
|
||||
bool switch_to_previous_scene(uint8_t count = 1);
|
||||
Scene get_previous_scene();
|
||||
Scene get_previous_scene(void);
|
||||
|
||||
void notify_green_blink();
|
||||
void notify_success();
|
||||
void notify_green_blink(void);
|
||||
void notify_success(void);
|
||||
|
||||
char* get_text_store();
|
||||
uint8_t get_text_store_size();
|
||||
char* get_text_store(void);
|
||||
uint8_t get_text_store_size(void);
|
||||
void set_text_store(const char* text...);
|
||||
|
||||
WIEGAND* get_wiegand();
|
||||
OneWireHost* get_one_wire();
|
||||
WIEGAND* get_wiegand(void);
|
||||
OneWireHost* get_one_wire(void);
|
||||
|
||||
private:
|
||||
std::list<Scene> previous_scenes_list = {Scene::Exit};
|
||||
@@ -51,4 +53,6 @@ private:
|
||||
OneWireHost* onewire_host;
|
||||
|
||||
NotificationApp* notification;
|
||||
Expansion* expansion;
|
||||
Power* power;
|
||||
};
|
||||
|
||||
@@ -1,49 +1,53 @@
|
||||
#include "accessor_view_manager.h"
|
||||
#include "accessor_event.h"
|
||||
#include <callback-connector.h>
|
||||
#include "callback_connector.h"
|
||||
|
||||
AccessorAppViewManager::AccessorAppViewManager() {
|
||||
event_queue = furi_message_queue_alloc(10, sizeof(AccessorEvent));
|
||||
|
||||
view_dispatcher = view_dispatcher_alloc();
|
||||
auto callback = cbc::obtain_connector(this, &AccessorAppViewManager::previous_view_callback);
|
||||
view_holder = view_holder_alloc();
|
||||
auto callback =
|
||||
cbc::obtain_connector(this, &AccessorAppViewManager::view_holder_back_callback);
|
||||
|
||||
// allocate views
|
||||
submenu = submenu_alloc();
|
||||
add_view(ViewType::Submenu, submenu_get_view(submenu));
|
||||
|
||||
popup = popup_alloc();
|
||||
add_view(ViewType::Popup, popup_get_view(popup));
|
||||
|
||||
// set back callback
|
||||
view_holder_set_back_callback(view_holder, callback, NULL);
|
||||
|
||||
gui = static_cast<Gui*>(furi_record_open(RECORD_GUI));
|
||||
view_dispatcher_attach_to_gui(view_dispatcher, gui, ViewDispatcherTypeFullscreen);
|
||||
|
||||
// set previous view callback for all views
|
||||
view_set_previous_callback(submenu_get_view(submenu), callback);
|
||||
view_set_previous_callback(popup_get_view(popup), callback);
|
||||
view_holder_attach_to_gui(view_holder, gui);
|
||||
}
|
||||
|
||||
AccessorAppViewManager::~AccessorAppViewManager() {
|
||||
// remove views
|
||||
view_dispatcher_remove_view(
|
||||
view_dispatcher, static_cast<uint32_t>(AccessorAppViewManager::ViewType::Submenu));
|
||||
view_dispatcher_remove_view(
|
||||
view_dispatcher, static_cast<uint32_t>(AccessorAppViewManager::ViewType::Popup));
|
||||
|
||||
// remove current view
|
||||
view_holder_set_view(view_holder, NULL);
|
||||
// free view modules
|
||||
furi_record_close(RECORD_GUI);
|
||||
submenu_free(submenu);
|
||||
popup_free(popup);
|
||||
|
||||
// free dispatcher
|
||||
view_dispatcher_free(view_dispatcher);
|
||||
|
||||
// free view holder
|
||||
view_holder_free(view_holder);
|
||||
// free event queue
|
||||
furi_message_queue_free(event_queue);
|
||||
}
|
||||
|
||||
void AccessorAppViewManager::switch_to(ViewType type) {
|
||||
view_dispatcher_switch_to_view(view_dispatcher, static_cast<uint32_t>(type));
|
||||
View* view;
|
||||
|
||||
switch(type) {
|
||||
case ViewType::Submenu:
|
||||
view = submenu_get_view(submenu);
|
||||
break;
|
||||
case ViewType::Popup:
|
||||
view = popup_get_view(popup);
|
||||
break;
|
||||
default:
|
||||
furi_crash();
|
||||
}
|
||||
|
||||
view_holder_set_view(view_holder, view);
|
||||
}
|
||||
|
||||
Submenu* AccessorAppViewManager::get_submenu() {
|
||||
@@ -65,16 +69,10 @@ void AccessorAppViewManager::send_event(AccessorEvent* event) {
|
||||
furi_check(result == FuriStatusOk);
|
||||
}
|
||||
|
||||
uint32_t AccessorAppViewManager::previous_view_callback(void*) {
|
||||
void AccessorAppViewManager::view_holder_back_callback(void*) {
|
||||
if(event_queue != NULL) {
|
||||
AccessorEvent event;
|
||||
event.type = AccessorEvent::Type::Back;
|
||||
send_event(&event);
|
||||
}
|
||||
|
||||
return VIEW_IGNORE;
|
||||
}
|
||||
|
||||
void AccessorAppViewManager::add_view(ViewType view_type, View* view) {
|
||||
view_dispatcher_add_view(view_dispatcher, static_cast<uint32_t>(view_type), view);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#pragma once
|
||||
#include <furi.h>
|
||||
#include <gui/view_dispatcher.h>
|
||||
#include <gui/view_holder.h>
|
||||
#include <gui/modules/submenu.h>
|
||||
#include <gui/modules/popup.h>
|
||||
#include "accessor_event.h"
|
||||
@@ -10,28 +10,26 @@ public:
|
||||
enum class ViewType : uint8_t {
|
||||
Submenu,
|
||||
Popup,
|
||||
Tune,
|
||||
};
|
||||
|
||||
FuriMessageQueue* event_queue;
|
||||
|
||||
AccessorAppViewManager();
|
||||
~AccessorAppViewManager();
|
||||
AccessorAppViewManager(void);
|
||||
~AccessorAppViewManager(void);
|
||||
|
||||
void switch_to(ViewType type);
|
||||
|
||||
void receive_event(AccessorEvent* event);
|
||||
void send_event(AccessorEvent* event);
|
||||
|
||||
Submenu* get_submenu();
|
||||
Popup* get_popup();
|
||||
Submenu* get_submenu(void);
|
||||
Popup* get_popup(void);
|
||||
|
||||
private:
|
||||
ViewDispatcher* view_dispatcher;
|
||||
Gui* gui;
|
||||
ViewHolder* view_holder;
|
||||
|
||||
uint32_t previous_view_callback(void* context);
|
||||
void add_view(ViewType view_type, View* view);
|
||||
void view_holder_back_callback(void* context);
|
||||
|
||||
// view elements
|
||||
Submenu* submenu;
|
||||
|
||||
@@ -4,9 +4,7 @@ App(
|
||||
apptype=FlipperAppType.DEBUG,
|
||||
targets=["f7"],
|
||||
entry_point="accessor_app",
|
||||
cdefines=["APP_ACCESSOR"],
|
||||
requires=["gui"],
|
||||
stack_size=4 * 1024,
|
||||
order=40,
|
||||
fap_category="Debug",
|
||||
)
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
#ifndef CALLBACKCONNECTOR_H
|
||||
#define CALLBACKCONNECTOR_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
#include <functional>
|
||||
namespace cbc {
|
||||
namespace Details {
|
||||
|
||||
template <std::size_t Tag, typename T, typename Ret, typename... Args> class FuncMemberWrapper {
|
||||
template <std::size_t Tag, typename T, typename Ret, typename... Args>
|
||||
class FuncMemberWrapper {
|
||||
public:
|
||||
FuncMemberWrapper() = delete;
|
||||
using member_fun_t = Ret (T::*)(Args...);
|
||||
@@ -43,7 +46,8 @@ template <std::size_t Tag, typename T, typename Ret, typename... Args>
|
||||
typename FuncMemberWrapper<Tag, T, Ret, Args...>::const_member_fun_t
|
||||
FuncMemberWrapper<Tag, T, Ret, Args...>::const_member{};
|
||||
|
||||
template <typename Functor, typename Ret, typename... Args> struct FunctorWrapper {
|
||||
template <typename Functor, typename Ret, typename... Args>
|
||||
struct FunctorWrapper {
|
||||
public:
|
||||
static std::function<Ret(Args...)> functor;
|
||||
static auto instatiate(Functor fn) {
|
||||
@@ -75,7 +79,8 @@ auto const_instantiate(T* t, Ret (T::*ptr)(Args...) const) {
|
||||
return FuncMemberWrapper<tag, T, Ret, Args...>::instantiate(t, ptr);
|
||||
}
|
||||
|
||||
template <std::size_t tag, typename T, typename Func> auto const_instantiate(T* t, Func ptr) {
|
||||
template <std::size_t tag, typename T, typename Func>
|
||||
auto const_instantiate(T* t, Func ptr) {
|
||||
return const_instantiate(t, ptr);
|
||||
}
|
||||
|
||||
@@ -91,9 +96,11 @@ auto obtain_connector(T* t, Ret (T::*ptr)(Args...) const) {
|
||||
return Details::FuncMemberWrapper<tag, T, Ret, Args...>::instantiate(t, ptr);
|
||||
}
|
||||
|
||||
template <typename Functor> auto obtain_connector(Functor functor) {
|
||||
template <typename Functor>
|
||||
auto obtain_connector(Functor functor) {
|
||||
return Details::deducer(std::move(functor), &Functor::operator());
|
||||
}
|
||||
} //end of cbc scope
|
||||
|
||||
#endif // __cplusplus
|
||||
#endif // CALLBACKCONNECTOR_H
|
||||
@@ -2,12 +2,12 @@
|
||||
#include <furi.h>
|
||||
#include <furi_hal.h>
|
||||
|
||||
volatile unsigned long WIEGAND::_cardTempHigh = 0;
|
||||
volatile unsigned long WIEGAND::_cardTemp = 0;
|
||||
volatile unsigned long WIEGAND::_lastWiegand = 0;
|
||||
unsigned long WIEGAND::_cardTempHigh = 0;
|
||||
unsigned long WIEGAND::_cardTemp = 0;
|
||||
unsigned long WIEGAND::_lastWiegand = 0;
|
||||
unsigned long WIEGAND::_code = 0;
|
||||
unsigned long WIEGAND::_codeHigh = 0;
|
||||
volatile int WIEGAND::_bitCount = 0;
|
||||
int WIEGAND::_bitCount = 0;
|
||||
int WIEGAND::_wiegandType = 0;
|
||||
|
||||
constexpr uint32_t clocks_in_ms = 64 * 1000;
|
||||
@@ -98,10 +98,7 @@ void WIEGAND::ReadD1() {
|
||||
_lastWiegand = DWT->CYCCNT; // Keep track of last wiegand bit received
|
||||
}
|
||||
|
||||
unsigned long WIEGAND::GetCardId(
|
||||
volatile unsigned long* codehigh,
|
||||
volatile unsigned long* codelow,
|
||||
char bitlength) {
|
||||
unsigned long WIEGAND::GetCardId(unsigned long* codehigh, unsigned long* codelow, char bitlength) {
|
||||
if(bitlength == 26) // EM tag
|
||||
return (*codelow & 0x1FFFFFE) >> 1;
|
||||
|
||||
|
||||