馃О Techniczna informacja dla u偶ytkownik贸w bramki AIS

Techniczna informacja dla u偶ytkownik贸w bramki AIS

:tipping_hand_woman:

Drogi u偶ytkowniku. Bramka DEV ma uprawnienia root-a - dlatego mo偶esz zrobi膰 wszystko co tylko potrafisz - mo偶esz te偶 zepsu膰 system.
Zamiast wkleja膰 w konsole wszystkie znalezione w sieci komendy i polecenia, zapoznaj si臋 prosz臋 :pray: z tym wprowadzeniem - w ten spos贸b unikniesz problem贸w i najcz臋艣ciej pope艂nianych b艂臋d贸w przez nowych u偶ytkownik贸w AIS.

:warning: Je偶eli po przeczytaniu zupe艂nie nie rozumiesz poni偶szego opisu, to dla w艂asnego dobra :pray: nie u偶ywaj konsoli i root-a na bramce :pray:

Czym jest technicznie system operacyjny na bramce AIS?

System dzia艂aj膮cy na bramce AIS to technicznie terminal dla systemu operacyjnego Android z w艂asnym ekosystemem pakiet贸w. Kompilujemy i dostarczamy ponad 1000 pakiet贸w do r贸偶nych cel贸w, w tym edytory kodu, kompilatory itp. Pakiety dostarczamy z naszego repozytorium apt:

https://powiedz.co/apt/

Najwa偶niejsze cechy system dzia艂aj膮cego na bramce AIS (w skr贸cie AIS):

AIS dzia艂a na urz膮dzeniach z systemem Android.
AIS to aplikacja napisana w C i Java.
AIS jak ka偶da aplikacja Android ma w艂asn膮 przestrze艅 u偶ytkownika (bo ka偶da aplikacja w Android to osobny u偶ytkownik Linux)
AIS nie dostarcza w艂asnego j膮dra Linux ale wsp贸艂dzieli j膮dro z systemem Android.

Czy AIS to emulator?

Nie, ale z drugiej strony tak. Czyli nie emulujemy sprz臋tu ale pow艂ok臋 programow膮鈥 wyja艣ni臋 bardziej poni偶ej:

NIE - bo AIS nie emuluje 偶adnego systemu ani architekrury procesora. Programy s膮 kompilowane pod architektur臋 procesora i wykonywane natywnie.

Czyli nie emulujemy 偶adnego urz膮dzenia fizycznego (architekrury CPU) - nasze programy kompilowane s膮 i wykonywane na takiej architekturze procesora jaka jest na bramce. W znaczeniu sprz臋towym (fizyczne urz膮dzenie) AIS nie jest emulatorem.

TAK. Z drugiej strony AIS jest emulatorem terminala komputerowego, w taki sam spos贸b, jak wiele popularnych program贸w dystrybucji Linuksa; np. terminal GNOME, Xterm itd鈥

Czyli AIS jest oprogramowaniem, kt贸re emuluje wy艣wietlacz (nie procesor lub ca艂y system) z mo偶liwo艣ciami okre艣lonego terminala sprz臋towego.

Po co jest root w AIS DEV?

Root to super u偶ytkownik (su - superuser), kt贸ry ma kontrol臋 nad wszystkimi komponentami systemu. Dzi臋ki dost臋powi root masz swobodny dost臋p do wszystkich system贸w plik贸w, mo偶esz modyfikowa膰 oprogramowanie sprz臋towe urz膮dzenia, a tak偶e dostraja膰 konfiguracj臋 j膮dra, sieci itp.

Niekt贸re zaawansowane narz臋dzia, takie jak mount, tcpdump wymagaj膮 uprawnie艅 root.

Czy potrzebuje dost臋pu root, 偶eby u偶ywa膰 bramki?

Absolutnie nie, ko艅cowy u偶ytkownik nie potrzebuje dost臋pu root.
Programy kt贸re dostarczamy na bramce takie jak: Asystent domowy (Home Assistant), Zigbee2Mqtt, ZwaveJs2mqtt, mqtt, ftp, tunel cloudflare itd鈥 dzia艂aj膮 w przestrzeni u偶ytkownika.

W telefonie z Android czy iOS dost臋p root jest zablokowany, 偶eby ko艅cowy u偶ytkownik niczego nie zepsu艂.
Root jest potrzebny tylko dla zaawansowanych u偶ytkownik贸w, programist贸w kt贸rzy wiedz膮 co robi膮.

:warning: Nigdy nie u偶ywaj komend z 鈥樷榮u鈥欌, je偶eli nie wiesz co robisz! Przyklejaj膮c komendy z sieci, napisane dla innych system贸w (bez zrozumienia) mo偶esz zepsu膰 terminal AIS na bramce.

Jakie s膮 r贸偶nice systemowe w stosunku do RPi?

3 podstawowe rzeczy to:

1. AIS nie jest zgodny z systemem plik贸w w RPi

Dlatego AIS nie u偶ywa pakiet贸w Raspberry Pi OS dla swojego 艣rodowiska ale w艂asne kompilacje.
Na bramce nie znajdziesz katalog贸w takich jak /bin, /etc, /usr, /tmp i innych tak jak wRPi.
Wszystkie nasze programy s膮 skompilowane tak aby dzia艂a膰 w przestrzeni u偶ytkownika - w lokalizacji /data/data/pl.sviete.dom/ - tu jest nasz g艂贸wny system plik贸w /
To dlatego, 偶e dzia艂amy w systemie Android i terminal AIS jest aplikacj膮 Android.

2. Pakiety AIS u偶ywaj膮 Bionic libc

Aby mie膰 najlepsz膮 kompatybilno艣膰 z systemem operacyjnym Android, wszystkie nasze pakiety kompilujemy za pomoc膮 Android NDK. Wynikowe binaria s膮 linkowane z libc Bionic (pliki libc.so, libm.so, libdl.so z /system/lib w Android).

Dlatego programy dynamicznie linkowane z RPi nie b臋d膮 dzia艂a膰, poniewa偶 w nich linker jest oczekiwany w nieistniej膮cej na Android lokalizacji (/lib).

3. G艂贸wny system plik贸w systemu AIS jest przechowywany jako zwyk艂e dane aplikacji Android

G艂贸wny system plik贸w i katalog domowy u偶ytkownika znajduj膮 si臋 w prywatnym katalogu danych aplikacji, kt贸ry znajduje si臋 na partycji /data w systemie Android a dok艂adnie w lokalizacji /data/data/pl.sviete.dom/

Je艣li robisz pe艂ny reset aplikacji AIS lub czy艣cisz dane serwera AIS z systemu Android, to tak naprawd臋 usuwasz pliki w lokalizacji 鈥樷/data/data/pl.sviete.dom/鈥欌, a nast臋pnie pobierasz najnowsz膮 paczk臋 z plikami z naszego serwera i zaczynasz przygod臋 z systemem od nowa.

:warning: Uwaga mo偶esz wszystko w systemie AIS

Jako u偶ytkownik AIS, masz pe艂ny dost臋p do odczytu i zapisu do wszystkich sk艂adnik贸w systemu AIS, w lokalizacji 鈥樷/data/data/pl.sviete.dom/鈥欌

B膮d藕 ostro偶ny, poniewa偶 bardzo 艂atwo jest zepsu膰 co艣 przez przypadkowe usuni臋cie lub nadpisanie plik贸w w 鈥樷/data/data/pl.sviete.dom/鈥.
Je偶eli przyklejasz do konsoli skrypty z internetu, napisane dla innych system贸w to mo偶esz co艣 zepsu膰.

Na szcz臋艣cie Android jest zabezpieczony i aplikacje na Androida dzia艂aj膮 w trybie piaskownicy (sandboxed) i maj膮 w艂asny identyfikator u偶ytkownika systemu Linux oraz etykiet臋 SELinux.
AIS nie jest wyj膮tkiem. Pe艂ny reset AIS to wyczyszczenie danych aplikacji i start od pocz膮tku.

:warning: :warning: Uwaga masz dost臋p root-a

Je偶eli w skryptach, kt贸re przyklejasz bez zrozumienia z sieci wyst臋puje prze艂膮czenie na root-a (su) i wykonujesz je bezrozumnie, to psujesz ju偶 nie system AIS, ale system Android.

Jak zepsujesz Android to pozostanie przywracanie ustawie艅 fabrycznych urz膮dzenia.

Na bramce mamy tzw. 鈥渘iezniszczaln膮鈥 struktur臋 systemu zaprojektowan膮 przez firm臋 Android, kt贸r膮 kupi艂o Google 偶eby konkurowa膰 z iOS. Mamy te same partycje, co system Android, poniewa偶 ten system zosta艂 zaprojektowany tak 偶eby nie da艂o si臋 go zepsu膰 - tutaj to wyja艣niamy:

:warning: :warning: :warning: Uwaga root mo偶e montowa膰 partycj臋 do zapisu

W skrajnym przypadku skrypt, kt贸ry uruchomisz na bramce mo偶e zamontowa膰 partycj臋 kt贸ra jest tylko do odczytu i co艣 na niej zmieni膰. Jak zmienisz co艣 na partycji zapasowej to nie uda si臋 jej przywr贸ci膰 i b臋dzie trzeba ponownie programowa膰 urz膮dzenie w AIS.

U偶ywaj膮c bramki nie zapominaj prosz臋, 偶e:

PS

Je偶eli nie mo偶esz zainstalowa膰 np. HACS na bramce AIS. To znaczy, 偶e nie znasz podstawowych komend w Linux, nie wiesz co robisz i nie powiniene艣 tego robi膰.

Ca艂a instalacja HACS polega na pobraniu i rozpakowaniu zip-a do forlderu custom_components/hacs bo HACS to komponent niestandardowy.

Mo偶na napisa膰 鈥渕agiczny skrypt鈥 kt贸ry to robi w 10 sekund i b臋dzie on sk艂ada艂 si臋 z 3 podstawowych komend w linux (mkdir, curl, unzip):

mkdir -p ~/AIS/custom_components/hacs
curl -L "https://github.com/hacs/integration/releases/latest/download/hacs.zip" -o ~/hacs.zip
unzip ~/hacs.zip -d ~/AIS/custom_components/hacs

Specjalnie nie opisujemy jak to robi膰 - dla dobra u偶ytkownik贸w :heart:
Bo je偶eli nie rozumiesz czym s膮 HACS-y i jak je zainstalowa膰, to znaczy, 偶e nie jeste艣 na to gotowy i wszystko co zrobisz w HACS, to wygenerujesz kolejne problemy kt贸rych nie zrozumiesz鈥

:peace:

11 polubie艅