📦 Jak powstaje paczka z kodami startowymi

:package: Budowanie paczki startowej z kodami

To jest nasza wewnętrzna instrukcja do tworzenia paczki startowej.
Może się to komuś przyda do wykonania własnego mechanizmu wykonywania kopii zapasowej całego systemu.

Czym jest paczka kodów startowych

Wszystkie programy napisane w C/C++ (tzw binarki), pakiety pythona i pakiety nodejs i ogólnie wszystkie kody które są na bramce znajdują się w paczce startowej.

Paczka ta jest spakowaną zawartością katalogu /data/data/pl.sviete.dom/files/

Uwaga

:warning:
uwaga opisane tu skrypty ( ./backup_ais.sh) i polecenia usuwają identyfikator bramki, opcjonalne serwisy, wszystkie hasła i lokalne ustawienia, tak żeby paczka z kodami startowymi była przenośna pomiędzy bramkami. Możesz użyć tych rzeczy jako bazę do stworzenia własnego mechanizmu kopii zapasowej, ale NIE uruchamiaj tych rzeczy na bramce jeśli nie rozumiesz ich działania, bo stracisz wszystkie swoje ustawienia.

Jak powstaje paczka startowa

Paczka powstaje na “fizycznej bramce” DEV1

Tworzymy ją skryptem ./backup_ais.sh który znajduje się na każdej bramce w lokalizacji /data/data/pl.sviete.dom/.ais

Cały proces tworzenia nowej paczki startowej wygląda następująco:

1. Wyczyszczenie bramki - pobranie poprzedniej paczki startowej

Łączymy się po ADB do bramki i usuwamy folder /data/data/pl.sviete.dom/files/

su -c "rm -rf /data/data/pl.sviete.dom/files/"

następnie restartujemy bramkę

su -c "reboot now"

Bramka podczas uruchamiania, gdy nie ma katalogu /data/data/pl.sviete.dom/files/ “rozumie”, że nastąpił pełen reset aplikacji i stara się pobrać paczkę startową z naszego serwisu https://powiedz.co/ota Jeżeli się to nie uda (brak połączenia z siecią) to pobiera paczkę z fabrycznej kopii partycji na urządzeniu z lokalizacji /system/media/oem
Następnie rozpakowuje kody z paczki startowej do lokalizacji /data/data/pl.sviete.dom/files/

2. Aktualizacja systemu

W starej paczce startowej nie ma aktualnych kodów które wydaliśmy przed utworzeniem paczki. Dlatego po uruchomieniu bramki na starej (poprzedniej paczce startowej) musimy ją zaktualizować - tą samą procedurą z aplikacji lub pilota jak każdy.

3. Tworzenie nowej paczki startowej

Po aktualizacji (punkt 2.) mamy najnowsze kody (pliki w folderze /data/data/pl.sviete.dom/files/) i możemy robić nową paczkę.
W tym celu uruchamiamy skrypt ./backup_ais.sh i cierpliwie czekamy aż system się spakuje:

jak widać cały system to obecnie: 12508 folders, 84108 files, 1186320674 bytes (1132 MiB)
po spakowaniu daje to 259 MiB

4. Udostępnienie paczki na serwer powiedz.co

Taką spakowaną paczkę kopiujemy na serwer powiedz.co bezpośrednio z lokalizacji na bramce /sdcard/files.tar.7z za pomocą komendy scp:

5. Test nowej paczki

Żeby mieć pewność, że nowa paczka startowa jest OK, wykonujemy na naszej bramce test. Ponownie usuwamy folder /data/data/pl.sviete.dom/files/ i restartujemy bramkę:

su -c "rm -rf /data/data/pl.sviete.dom/files/"

następnie restartujemy bramkę

su -c "reboot now"

Bramka podczas uruchamiania, gdy nie ma katalogu … pobierze najnowszą paczkę i uruchomi system.
Logujemy się do bramki:

Sprawdzamy wersję i logi:
image

Paczka działa, mamy zabezpieczenie na wypadek gdyby komuś nie udało się zaktualizować - możemy wydawać nową wersję
:slight_smile:

3 polubienia