D2
Администратор
- Регистрация
- 19 Фев 2025
- Сообщения
- 4,380
- Реакции
- 0
Введение
Какие устройства можно рассматривать как условно безопасные?
- Те устройства где можно после установки кастомной прошивки заблокировать bootloader.Какие устройства можно рассматривать как условно безопасные?
- Где защищен стек, куча, память
- Где есть firewall с правилами для каждого процесса или приложения и
есть возможность запретить обращение к конкретному домену конкретному процессу
И так далее...
Спойлер: Как выглядит нормальный firewall
Спойлер: Список устройств
Google pixel 3-8
OnePlus 6, 6t
Razer phone 2
В хорошей прошивке у нас должен быть firewall, не такой о котором говорят представители GrapheneOS и другие, они нам говорят что нормальный firewall невозможно реализовать, где есть логирование (пример логирование соединений приложений в IOS)
Что мы можем со всем этим сделать?
Конечно же собрать свою прошивку на основе их и добавить все нужные функции!
Берем за основу DivestOS и iodeOS
Теперь нужно подготовить железо и окружение к сборке:
Спойлер: Характеристики сервера сборок
Код: Скопировать в буфер обмена
Настройка окружения
Спойлер: Fedora
Bash: Скопировать в буфер обмена
Теперь нужно подробно рассмотреть пункт:
Манифест содержит список ресурсов которые будут синхронизироваться из реп (деревья девайсов, разный софт и зависимости)
Чтобы не тащить лишние ресурсы давайте приведем его вот к такому виду:
Спойлер: local_manifest.xml
XML: Скопировать в буфер обмена
Далее нам нужно произвести синхронизацию
Спойлер: Синхронизация
Наберитесь терпения процесс не быстрый
Bash: Скопировать в буфер обмена
После синхронизации нужно отредактировать папку vendor/iode
Спойлер: vendor_extra
Bash: Скопировать в буфер обмена
Спойлер: product.mk
Makefile: Скопировать в буфер обмена
Далее снова переходим к инициализации окружения
Спойлер
Bash: Скопировать в буфер обмена
Спойлер: CCACHE
Bash: Скопировать в буфер обмена
Приступаем к сборке
Спойлер
Bash: Скопировать в буфер обмена
Если всё сделано правильно прошивки появятся в папке $DOS_BUILDS
На этом всё!
ЗЫ:
Если вам нужна подобная инфраструктура для своих девайсов, или более изощренная, где не используются vds и сервис доставки обновлений не торчит жопой в интернет, а обновления рассылаются по средствам p2p из-за nat через tox или как то иначе, вы знаете к кому обращаться.
Если и этого мало и хочется противостоять imsicatcher'am, fakeBaseStation, silentsms и триангуляции по средствам предоставления вам возможности подключения к 1 базовой станции а не к 3 через удобный интерфейс в виде карты с точками, милости прошу в торговую тему.
Так же могу сделать так чтобы ваш телефон не сможет загружался без специального стика и помимо FBE будет FDE.
Разработка программно-аппаратных комплексов
Донаты сюда:
Monero -> 47XLGe6UvUGjcFpckozPhKggU4N11Ux6WEA5hSqjZQHeJoCQ9MDgRvnfu3HFwHbm7y2nyp5Sgu4XXgEzjFYawi285cEscia
BTC -> bc1qqqr2k32my2qhuz5s3dr3nnczgl3mkcr0k38gac







Спойлер: Список устройств
Google pixel 3-8
OnePlus 6, 6t
Razer phone 2
В хорошей прошивке у нас должен быть firewall, не такой о котором говорят представители GrapheneOS и другие, они нам говорят что нормальный firewall невозможно реализовать, где есть логирование (пример логирование соединений приложений в IOS)
Что мы можем со всем этим сделать?
Конечно же собрать свою прошивку на основе их и добавить все нужные функции!
Берем за основу DivestOS и iodeOS
Теперь нужно подготовить железо и окружение к сборке:
Спойлер: Характеристики сервера сборок
Код: Скопировать в буфер обмена
Код:
For builds under 3 hours you'll want to have at least a powerful quad core processor, 32GB of RAM, and a 7200RPM drive.
For builds under an hour you'll want to have a processor that gets a score of 30k+ or higher on Passmark, 64GB of RAM, and a large SSD.
Note: CFI enabled kernels will fail to compile with less than 64GB of RAM.
It may be possible to get by with 16GB + zram, regardless zram is recommended in all cases.
If you plan on building in a virtual machine, in terms of performance: KVM > Hyper-V > VMWare > VirtualBox
You'll need a lot of available free space on your drives
- Source Code: 200GB + ~5GB per device
- ~100GB per device for building
- ~10GB per device for optional ccache
- ~4GB for each resulting build
- ~10GB for two target-files for a device to optionally generate incremental updates
- Cheap: ~$60 2TB 7200RPM HDD (non-SMR)
- Fast: ~$150 2TB SSD (MLC/"enterprise" preferred)
- If you plan on having multiple versions available btrfs+zstd:1+duperemove is strongly recommended.
Настройка окружения
Спойлер: Fedora
Bash: Скопировать в буфер обмена
Код:
sudo dnf install @development-tools android-tools automake bc bison bzip2 bzip2-libs ccache curl dpkg-dev flex gcc gcc-c++ git git-lfs glibc-devel.{x86_64,i686} gnupg gperf ImageMagick ImageMagick-c++-devel ImageMagick-devel java-1.8.0-openjdk java-1.8.0-openjdk-devel libgcc.{x86_64,i686} libstdc++.{x86_64,i686} libX11-devel.{x86_64,i686} libxml2-devel libXrandr.{x86_64,i686} libXrender.{x86_64,i686} libxslt lz4-libs lzop make maven mesa-libGL-devel.{x86_64,i686} ncurses ncurses-compat-libs ncurses-devel.{x86_64,i686} ninja-build openssl-devel optipng jpegoptim perl perl-Digest-MD5-File perl-Switch pngcrush python python2 python3-virtualenv python3 python3-mako python-mako python-markdown python-networkx readline-devel.{x86_64,i686} rsync schedtool SDL squashfs-tools syslinux-devel unzip wxGTK xml2 xz-lzma-compat zip zlib zlib-devel.{x86_64,i686} vim-common vboot-utils mozilla-fira-mono-fonts mozilla-fira-sans-fonts openssl nano htop wget;
sudo curl https://storage.googleapis.com/git-repo-downloads/repo >> /usr/bin/repo;
sudo chmod a+x /usr/bin/repo;
umask 0022;
git config --global user.name "Tr3Kzzz";
git config --global user.email "Tr3Kzzz@protonmail.com";
#Clone
git clone https://codeberg.org/divested-mobile/divestos-build.git DivestOS;
cd DivestOS;
#Submodules
sed -i 's|git@gitlab.com:|https://gitlab.com/|' .git/config .gitmodules;
git submodule update --init --recursive;
#Basic directories
mkdir -p Build/LineageOS-20.0/.repo/local_manifests Builds Signing_Keys .Signing_Keys;
#Encrypted key storage
gocryptfs -init .Signing_Keys; #Create the vault
gocryptfs .Signing_Keys/ Signing_Keys/; #Mount the vault
#Update settings
nano Scripts/Generate_Signing_Keys.sh; #Update description
cd Build/LineageOS-20.0;
#Add the initial manifest
cat ../../Manifests/Manifest_LAOS-20.0.xml > .repo/local_manifests/local_manifest.xml;
nano .repo/local_manifests/local_manifest.xml;
Теперь нужно подробно рассмотреть пункт:
nano .repo/local_manifests/local_manifest.xml
Манифест содержит список ресурсов которые будут синхронизироваться из реп (деревья девайсов, разный софт и зависимости)
Чтобы не тащить лишние ресурсы давайте приведем его вот к такому виду:
Спойлер: local_manifest.xml
XML: Скопировать в буфер обмена
Код:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="gitlab" fetch="https://gitlab.com/" />
<remote name="angry" fetch="https://gitea.angry.im/" />
<remote name="iode" fetch="https://gitlab.com/iode/os/public" revision="v4.10" />
<!-- START OF UNNECESSARY REPO REMOVAL -->
<remove-project name="LineageOS/android_external_ant-wireless_ant_native" />
<remove-project name="LineageOS/android_external_ant-wireless_ant_service" />
<remove-project name="LineageOS/android_external_bash" />
<remove-project name="LineageOS/android_external_htop" />
<remove-project name="LineageOS/android_external_libncurses" />
<remove-project name="LineageOS/android_external_nano" />
<remove-project name="LineageOS/android_external_openssh" />
<remove-project name="LineageOS/android_external_rsync" />
<remove-project name="LineageOS/android_external_unrar" />
<remove-project name="LineageOS/android_external_vim" />
<remove-project name="LineageOS/android_packages_apps_Eleven" />
<remove-project name="LineageOS/android_packages_apps_Jelly" />
<!--<remove-project name="LineageOS/android_packages_apps_Stk" />-->
<remove-project name="LineageOS/charter" />
<remove-project name="LineageOS/cm_crowdin" />
<remove-project name="LineageOS/contributors-cloud-generator" />
<remove-project name="LineageOS/hudson" />
<remove-project name="LineageOS/lineage_wiki" />
<remove-project name="LineageOS/mirror" />
<remove-project name="LineageOS/www" />
<remove-project name="platform/packages/apps/Browser2" />
<remove-project name="platform/packages/apps/Music" />
<remove-project name="platform/packages/apps/MusicFX" />
<remove-project name="platform/packages/apps/QuickSearchBox" />
<remove-project name="platform/packages/apps/SampleLocationAttribution" />
<!--<remove-project name="platform/packages/modules/AdServices" />-->
<remove-project name="platform/prebuilts/clang/host/darwin-x86" />
<remove-project name="platform/prebuilts/go/darwin-x86" />
<!-- END OF UNNECESSARY REPO REMOVAL -->
<!-- START OF BRANCH SWITCHING -->
<!--<remove-project name="platform/external/swiftshader" />
<project path="external/swiftshader" name="google/swiftshader" remote="github" revision="master" />-->
<!-- Switch to the Mulch WebView -->
<remove-project name="LineageOS/android_external_chromium-webview_patches" />
<remove-project name="LineageOS/android_external_chromium-webview_prebuilt_arm" />
<remove-project name="LineageOS/android_external_chromium-webview_prebuilt_arm64" />
<remove-project name="LineageOS/android_external_chromium-webview_prebuilt_x86" />
<remove-project name="LineageOS/android_external_chromium-webview_prebuilt_x86_64" />
<project path="external/chromium-webview" name="divested-mobile/mulch" groups="pdk" clone-depth="1" remote="gitlab" revision="master" />
<!-- END OF BRANCH SWITCHING -->
<!-- START OF ADDITIONAL REPOS -->
<!-- GrapheneOS -->
<project path="external/hardened_malloc" name="GrapheneOS/hardened_malloc" remote="github" revision="8d5c63122499169df5fd9ed6e91fb116512a4745" />
<!-- OpenEUICC -->
<project path="packages/apps/OpenEUICC" name="PeterCxy/OpenEUICC" remote="angry" revision="6add8c89ac141f177cd8d124a0a955232f4222f9" />
<project path="prebuilts/openeuicc-deps" name="PeterCxy/android_prebuilts_openeuicc-deps" remote="angry" revision="55f3e2c7ab26484f7478b26540fa14392d0c2cd7" />
<!-- END OF ADDITIONAL REPOS -->
<!-- START OF DEVICE REPOS -->
<!-- Common -->
<project path="system/qcom" name="LineageOS/android_system_qcom" remote="github" revision="lineage-20" />
<project path="external/bson" name="LineageOS/android_external_bson" remote="github" revision="lineage-20" />
<project path="hardware/sony/macaddrsetup" name="LineageOS/android_hardware_sony_macaddrsetup" remote="github" revision="lineage-20" />
<project path="hardware/sony/simdetect" name="LineageOS/android_hardware_sony_simdetect" remote="github" revision="lineage-20" />
<project path="hardware/sony/SonyOpenTelephony" name="LineageOS/android_hardware_sony_SonyOpenTelephony" remote="github" revision="lineage-20" />
<project path="hardware/sony/timekeep" remote="github" name="LineageOS/android_hardware_sony_timekeep" revision="lineage-20" />
<project path="packages/apps/ElmyraService" name="LineageOS/android_packages_apps_ElmyraService" remote="github" />
<!-- Google Pixel 3 (crosshatch/blueline) -->
<project path="device/google/crosshatch" name="LineageOS/android_device_google_crosshatch" remote="github" revision="lineage-20" />
<project path="device/google/blueline" name="LineageOS/android_device_google_blueline" remote="github" revision="lineage-20" />
<project path="kernel/google/msm-4.9" name="LineageOS/android_kernel_google_msm-4.9" remote="github" revision="lineage-20" />
<!-- Google Pixel 3a (bonito/sargo) -->
<project path="device/google/bonito" name="LineageOS/android_device_google_bonito" remote="github" revision="lineage-20" />
<project path="device/google/sargo" name="LineageOS/android_device_google_sargo" remote="github" revision="lineage-20" />
<!-- uses google/msm-4.9 kernel -->
<!-- Google Pixel 4 (coral/flame) -->
<project path="device/google/coral" name="LineageOS/android_device_google_coral" remote="github" revision="lineage-20" />
<project path="device/google/flame" name="LineageOS/android_device_google_flame" remote="github" revision="lineage-20" />
<project path="kernel/google/msm-4.14" name="LineageOS/android_kernel_google_msm-4.14" remote="github" revision="lineage-20" />
<!-- Google Pixel 4a (sunfish) -->
<project path="device/google/sunfish" name="LineageOS/android_device_google_sunfish" remote="github" revision="lineage-20" />
<!-- uses google/msm-4.14 kernel -->
<!-- Google Pixel 4a 5G (bramble) -->
<project path="device/google/bramble" name="LineageOS/android_device_google_bramble" remote="github" revision="lineage-20" />
<project path="device/google/redbull" name="LineageOS/android_device_google_redbull" remote="github" revision="lineage-20" />
<project path="kernel/google/redbull" name="LineageOS/android_kernel_google_redbull" remote="github" revision="lineage-20" />
<!-- Google Pixel 5 (redfin) -->
<project path="device/google/redfin" name="LineageOS/android_device_google_redfin" remote="github" revision="lineage-20" />
<!-- uses redbull commons -->
<!-- Google Pixel 5a (barbet) -->
<project path="device/google/barbet" name="LineageOS/android_device_google_barbet" remote="github" revision="lineage-20" />
<!-- uses redbull commons -->
<!-- Google Pixel 6 (oriole/raven) -->
<project path="device/google/oriole" name="LineageOS/android_device_google_oriole" remote="github" revision="lineage-20" />
<project path="device/google/raven" name="LineageOS/android_device_google_raven" remote="github" revision="lineage-20" />
<project path="device/google/raviole" name="LineageOS/android_device_google_raviole" remote="github" revision="lineage-20" />
<project path="device/google/gs101" name="LineageOS/android_device_google_gs101" remote="github" revision="lineage-20" />
<project path="kernel/google/gs101/private/gs-google" name="LineageOS/android_kernel_google_gs101" remote="github" revision="lineage-20" />
<!-- Google Pixel 6a (bluejay) -->
<project path="device/google/bluejay" name="LineageOS/android_device_google_bluejay" remote="github" revision="lineage-20" />
<!-- uses gs101 commons -->
<!-- Google Pixel 7 (panther/cheetah) -->
<project path="device/google/panther" name="LineageOS/android_device_google_panther" remote="github" revision="lineage-20" />
<project path="device/google/cheetah" name="LineageOS/android_device_google_cheetah" remote="github" revision="lineage-20" />
<project path="device/google/pantah" name="LineageOS/android_device_google_pantah" remote="github" revision="lineage-20" />
<project path="device/google/gs201" name="LineageOS/android_device_google_gs201" remote="github" revision="lineage-20" />
<project path="kernel/google/gs201/private/gs-google" name="LineageOS/android_kernel_google_gs201" remote="github" revision="lineage-20" />
<!-- uses gs101 commons -->
<!-- OnePlus 6 (enchilada) -->
<project path="hardware/oneplus" name="LineageOS/android_hardware_oneplus" remote="github" revision="lineage-20" />
<project path="device/oneplus/sdm845-common" name="LineageOS/android_device_oneplus_sdm845-common" remote="github" revision="lineage-20" />
<project path="device/oneplus/enchilada" name="LineageOS/android_device_oneplus_enchilada" remote="github" revision="lineage-20" />
<project path="kernel/oneplus/sdm845" name="LineageOS/android_kernel_oneplus_sdm845" remote="github" revision="lineage-20" />
<!-- OnePlus 6T (fajita) -->
<project path="device/oneplus/fajita" name="LineageOS/android_device_oneplus_fajita" remote="github" revision="lineage-20" />
<!-- Razer Phone 2 (aura) -->
<project path="device/razer/aura" name="LineageOS/android_device_razer_aura" remote="github" revision="lineage-20" />
<project path="kernel/razer/sdm845" name="LineageOS/android_kernel_razer_sdm845" remote="github" revision="lineage-20" />
<!-- Proprietary Blobs -->
<project path="vendor/google/barbet" name="LineageOS/proprietary_vendor_google_barbet" remote="github" revision="lineage-20" />
<project path="vendor/google/bluejay" name="LineageOS/proprietary_vendor_google_bluejay" remote="gitlab" revision="lineage-20" />
<project path="vendor/google/blueline" name="LineageOS/proprietary_vendor_google_blueline" remote="github" revision="lineage-20" />
<project path="vendor/google/bonito" name="LineageOS/proprietary_vendor_google_bonito" remote="github" revision="lineage-20" />
<project path="vendor/google/bramble" name="LineageOS/proprietary_vendor_google_bramble" remote="github" revision="lineage-20" />
<project path="vendor/google/cheetah" name="LineageOS/proprietary_vendor_google_cheetah" remote="gitlab" revision="lineage-20" />
<project path="vendor/google/coral" name="LineageOS/proprietary_vendor_google_coral" remote="github" revision="lineage-20" />
<project path="vendor/google/crosshatch" name="LineageOS/proprietary_vendor_google_crosshatch" remote="github" revision="lineage-20" />
<project path="vendor/google/flame" name="LineageOS/proprietary_vendor_google_flame" remote="github" revision="lineage-20" />
<project path="vendor/google/oriole" name="LineageOS/proprietary_vendor_google_oriole" remote="gitlab" revision="lineage-20" />
<project path="vendor/google/panther" name="LineageOS/proprietary_vendor_google_panther" remote="gitlab" revision="lineage-20" />
<project path="vendor/google/raven" name="LineageOS/proprietary_vendor_google_raven" remote="gitlab" revision="lineage-20" />
<project path="vendor/google/redfin" name="LineageOS/proprietary_vendor_google_redfin" remote="github" revision="lineage-20" />
<project path="vendor/google/sargo" name="LineageOS/proprietary_vendor_google_sargo" remote="github" revision="lineage-20" />
<project path="vendor/google/sunfish" name="LineageOS/proprietary_vendor_google_sunfish" remote="github" revision="lineage-20" />
<project path="vendor/oneplus/enchilada" name="LineageOS/proprietary_vendor_oneplus_enchilada" remote="github" revision="lineage-20" />
<project path="vendor/oneplus/fajita" name="LineageOS/proprietary_vendor_oneplus_fajita" remote="github" revision="lineage-20" />
<project path="vendor/oneplus/sdm845-common" name="LineageOS/proprietary_vendor_oneplus_sdm845-common" remote="github" revision="lineage-20" />
<project path="vendor/razer/aura" name="LineageOS/proprietary_vendor_razer_aura" remote="github" revision="lineage-20" />
<!-- IODE-EXTRA (Firewall) -->[/CENTER]
<project path="packages/modules/NetworkStack" name="lineage/packages_modules_NetworkStack" groups="pdk-cw-fs,pdk-fs" remote="iode" />
<project path="packages/modules/Permission" name="lineage/packages_modules_Permission" groups="pdk-cw-fs,pdk-fs" remote="iode" />
[CENTER] <project path="system/sepolicy" name="lineage/system_sepolicy" groups="pdk" remote="iode" />
<project path="packages/apps/FDroidPrivilegedExtension" name="lineage/packages_apps_FDroidPrivilegedExtension" remote="iode" />
<project path="vendor/extra" name="lineage/vendor_extra" remote="iode" />
<project path="system/iode-snort" name="blocker/iode-snort" remote="iode" />
<project path="external/libnetfilter_conntrack" name="blocker/external_libnetfilter_conntrack" remote="iode" />
<project path="external/libnetfilter_queue" name="blocker/external_libnetfilter_queue" remote="iode" />
<project path="external/libnfnetlink" name="blocker/external_libnfnetlink" remote="iode" />
<project path="external/libmnl" name="blocker/external_libmnl" remote="iode" />
</manifest>
Далее нам нужно произвести синхронизацию
Спойлер: Синхронизация
Наберитесь терпения процесс не быстрый
Bash: Скопировать в буфер обмена
Код:
#Download!
repo init -u https://github.com/LineageOS/android.git -b lineage-20.0 --git-lfs;
repo sync -j1;
После синхронизации нужно отредактировать папку vendor/iode
Спойлер: vendor_extra
Bash: Скопировать в буфер обмена
Код:
rm -rf ./bootanimation
rm -rf ./etc
rm -rf ./overlay
rm -rf ./prebuilts/!(iode)
rm -rf ./product-overlay
rm -rf ./translations
Спойлер: product.mk
Makefile: Скопировать в буфер обмена
Код:
ifneq ($(wildcard certs/releasekey.*),)
PRODUCT_DEFAULT_DEV_CERTIFICATE := certs/releasekey
PRODUCT_OTA_PUBLIC_CERTIFICATES := certs/releasekey
endif
ifneq ($(wildcard certs/sideload.*),)
PRODUCT_EXTRA_RECOVERY_CERTIFICATES := certs/sideload
endif
PRODUCT_BROKEN_VERIFY_USES_LIBRARIES := true
PRODUCT_PACKAGES += \
iode-snort \
domains-black \
domains-white \
default-apps
PRODUCT_PACKAGES += \
Iode
PRODUCT_HOST_PACKAGES += \
host_cross_fastboot \
host_cross_mke2fs \
make_f2fs.static \
host_cross_make_f2fs.static
Далее снова переходим к инициализации окружения
Спойлер
Bash: Скопировать в буфер обмена
Код:
source ../../Scripts/init.sh;
awk -i inplace '!/enforce-product-packages-exist-internal/' vendor/lineage/config/common.mk;
source build/envsetup.sh && breakfast lineage_sailfish-user && make -j20 generate_verity_key; #Edit device if not available, can be any
sh ../../Scripts/Generate_Signing_Keys.sh $device; #Repeat as needed for other devices
mv -nv $DOS_SIGNING_KEYS/NEW/* "$DOS_SIGNING_KEYS/"; #Move the new keys into place
Bash: Скопировать в буфер обмена
Код:
mkdir /opt/ccache; # Укажите свой путь
echo "export USE_CCACHE=1;" >> ~/.bashrc;
echo "export CCACHE_COMPRESS=1;" >> ~/.bashrc;
echo "export CCACHE_COMPRESSLEVEL=1;" >> ~/.bashrc;
echo "export CCACHE_EXEC=/usr/bin/ccache;" >> ~/.bashrc;
echo "export CCACHE_DIR=/opt/ccache;" >> ~/.bashrc; #Укажите свой путь из первой строки
source ~/.bashrc;
ccache -M 128GB; #Укажите лимит
Приступаем к сборке
Спойлер
Bash: Скопировать в буфер обмена
Код:
cd Build/LineageOS-20.0;
source ../../Scripts/init.sh;
resetWorkspace;
rm -rf packages/apps/Fennec_DOS-Shim/ vendor/divested/ vendor/fdroid_prebuilt/ packages/apps/SupportDivestOS/; #Remove remenants
rm -rf out;
patchWorkspace;
buildDevice [DEVICE NAME]; #buildDevice fajita как пример
echo $DOS_BUILDS # тут появятся прошиви если всё сделано правильно
Если всё сделано правильно прошивки появятся в папке $DOS_BUILDS
На этом всё!
ЗЫ:
Если вам нужна подобная инфраструктура для своих девайсов, или более изощренная, где не используются vds и сервис доставки обновлений не торчит жопой в интернет, а обновления рассылаются по средствам p2p из-за nat через tox или как то иначе, вы знаете к кому обращаться.
Если и этого мало и хочется противостоять imsicatcher'am, fakeBaseStation, silentsms и триангуляции по средствам предоставления вам возможности подключения к 1 базовой станции а не к 3 через удобный интерфейс в виде карты с точками, милости прошу в торговую тему.
Так же могу сделать так чтобы ваш телефон не сможет загружался без специального стика и помимо FBE будет FDE.
Разработка программно-аппаратных комплексов
Донаты сюда:
Monero -> 47XLGe6UvUGjcFpckozPhKggU4N11Ux6WEA5hSqjZQHeJoCQ9MDgRvnfu3HFwHbm7y2nyp5Sgu4XXgEzjFYawi285cEscia
BTC -> bc1qqqr2k32my2qhuz5s3dr3nnczgl3mkcr0k38gac