Релиз ZennoDroid Enterprise 2.4.3.0 — Экшен "Настройка GPU" • Экшен "Настройки Appium" • Установка собственных правил проксирования

ZennoLab Team

Super Moderator
Команда форума
Регистрация
22.01.2019
Сообщения
1 872
Благодарностей
4 137
Баллы
113


Добавлен экшен "Настройка GPU"

Экшен позволяет:
  • указать в приложениях GPU Vendor и GPU Renderer. В браузерах изменяет параметры WebGL: Unmasked Vendor, Unmasked Renderer;
  • добавить шум для Canvas Fingerprint (в приложениях и в браузерах).

В API добавлены методы для подмены соответствующих параметров GPU. Свой код C#:
C#:
// Шум может быть задан случайным или статичным значением (если нужно, чтобы Canvas Fingerprint не менялся каждый раз). WebGlNoise =  0 - отключить шум.
int noise = new Random().Next(1, int.MaxValue);
var settings = new {
        GlVendor =  "Qualcomm",
        GlRenderer = "Adreno (TM) 750",
        GlCanvasNoise =  noise,
};
var json = Global.ZennoLab.Json.JsonConvert.SerializeObject(settings);
instance.DroidInstance.Settings.SetLSPosedSettings(json);

Добавлен экшен "Настройки Appium"

Экшен позволяет управлять настройками формирования дерева элементов:
  • Разрешить невидимый WebView: исправляет проблему, когда при просмотре больших страниц перестает формироваться дерево элементов.
  • Разрешить невидимые элементы: в дереве элементов будут отображаться все элементы экрана, включая те, которые находятся за его пределами. У невидимых элементов атрибут displayed равен false. Формирование дерева будет происходить намного медленнее, особенно на больших страницах.
  • Игнорировать неважные элементы: дерево будет формироваться без второстепенных элементов не содержащих полезной информации (FrameLayout, ViewGroup и т.д.). Формирование дерева будет происходить намного быстрее.

Разрешить невидимый WebView выключен


Разрешить невидимый WebView включен


Добавлена возможность установить собственные правила проксирования

В экшен "Установить прокси" для режима Clash добавлена возможность установить собственные правила проксирования. Правила разделяются точкой с запятой ( ; ) или переносом строки.

DOMAIN-REGEX,^abc,DIRECT # Не проксировать если домен начинается с abc
DOMAIN-SUFFIX,ya.ru,REJECT # Блокировать трафик на домен ya.ru
DOMAIN-KEYWORD,google,PROXY # Проксировать трафик если имя домена google
IP-CIDR,1.1.1.1/32,DIRECT # Не проксировать трафик на адрес 1.1.1.1
AND,((NETWORK,TCP),(DST-PORT,5228-5230)),DIRECT # не проксировать трафик на порты TCP 5228-5230
MATCH,DIRECT # Не проксировать весь трафик
MATCH,PROXY # Проксировать весь трафик

Например, если указать следующие правила, то трафик на 2ip.ru пойдет через прокси, а весь остальной трафик проксироваться не будет:
DOMAIN-SUFFIX,2ip.ru,PROXY;MATCH,DIRECT

Добавлена возможность получить скриншот элемента

В экшен "Получение значения" добавлена возможность получить скриншот элемента (в формате Base64).

В API добавлена возможность сделать скриншот элемента или всего экрана (в формате Base64). Свой код C#:

C#:
// Весь экран
return instance.DroidInstance.AppiumDriver.GetScreenshot();

// Элемент
var element = instance.DroidInstance.AppiumDriver.FindElementByUiAutomator($"new UiSelector().textContains(\"Chrome\")");
return element.GetScreenshot();
Для наглядности можно сохранить полученный скриншот в переменную base64 и затем преобразовать его в картинку (Свой код C#):
C#:
var base64 = project.Variables["base64"].Value;
using (var ms = new MemoryStream(Convert.FromBase64String(base64)))
using (var bmp = new Bitmap(ms))
        bmp.Save(project.Path + "screen.png", System.Drawing.Imaging.ImageFormat.Png);
Весь список изменений 2.4.3.0

Добавлено:

+ Добавлен экшен "Настройка GPU".
+ В API добавлены методы для подмены соответствующих параметров GPU (Свой код C#).
+ Добавлен экшен "Настройки Appium".
+ В экшен "Установить прокси" для режима Clash добавлена возможность установить собственные правила проксирования.
+ В экшен "Получение значения" добавлена возможность получить скриншот элемента (в формате Base64).
+ В экшен "Эмуляция Swipe" добавлена возможность указать силу и направление изгиба свайпа. От -1.0 до +1.0. Изгиб будет изменяться каждый раз случайным образом в пределах заданного значения. Знак числа влияет на направление изгиба.
+ В API добавлены новые методы для указания силы изгиба
+ Улучшена подмена Android ID. Добавлен обход обнаружения реального Android ID, используемый в My Dev IDs.
+ В Менеджер устройств добавлена возможность указать адреса сканирования сети на наличие устройств подключенных по WiFi. Для отключения сканирования можно указать конечный адрес равным нулю.
+ Обновлена сборка LSPosed 1.10.2 с поддержкой API для работы с LSPosed.
+ Clash обновлен до 1.19.10.
Автоматическое обновление происходит только при удалении установленной версии. Для удаления текущей версии выполнить экшен Adb Shell (галочка с правами суперпользователя):
rm -f /data/adb/box/bin/clash
После чего установить прокси в формате clash. Новая версия установится автоматически.
+ UIAutomator2 обновлен до 7.6.2
+ FFmpeg обновлен до 7.1.1
+ Adb обновлен до 36.0.0
+ Scrcpy обновлен до 3.3.1
+ Frida обновлена до 16.7.19
+ Модуль ZennoDroid обновлен до 1.10.0.

Исправлено:

Исправлен критический баг, из-за которого при использовании экшена "Получить список устройств" мог заблокироваться запуск новых потоков.
Исправлено пропадание дерева элементов в Chrome при открытии нескольких вкладок, описанное в этом посте. Необходимо добавить Chrome в список подмены модуля ZennoDroid (включать подмену параметров необязательно, исправление включается автоматически после добавления).
Исправлена работа метода API instance.DroidInstance.AppiumDriver.ScrollToElementByAccessibilityId(string id, int maxSwipes)
Исправлен ввод текста при использовании в качестве устройства Nox с Android 9.
Исправлен бэкап настроек LSPosed на Android 10.
Исправлен баг, из-за которого в ZennoDroid не открывались настройки BotUI.
Исправлено падение приложений после подмены на Android 8.1.
Исправлена подмена Canvas fingerprint.
Исправления и оптимизация подмены параметров. Исправлен критический баг, из-за которого после подмены могли упасть некоторые приложения.
Исправлено отображение проектов при выборе меток.



Где скачать?

ZennoDroid Enterprise 2.4.3.0 уже доступен в личном кабинете!
Также обновление будет предложено при запуске ProjectMaker.


Как сообщать о проблемах?

Просьба сообщать обо всех багах в Багтрекере, сопровождая проблему подробным описанием и сценарием воспроизведения. Это позволит нам быстро диагностировать и исправить ошибку.
 

upravlenie

Client
Регистрация
31.12.2020
Сообщения
237
Благодарностей
16
Баллы
18
а где можно посмотреть установленную версию clash?
 

Anatoly79

Moderator
Регистрация
17.04.2020
Сообщения
584
Благодарностей
488
Баллы
63

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 554
Благодарностей
897
Баллы
113
Экшен консольная команда ADB, выполнять с правами суперпользователя
/data/adb/box/bin/clash -v | head -n 1
Доброго времени суток, а подскажите пожалуйста, то что вот новый снипет настройки GPU, если использовать
instance.DroidInstance.Settings.GenerateRandomLSPosedSettings(project.Profile.Country); то там эти параметры не генерируются, это так и задумано или позже добавите ?
 
Последнее редактирование:

Midnight

Client
Регистрация
28.02.2016
Сообщения
344
Благодарностей
206
Баллы
43
У кого нибудь появились проблемы в adb клавиатурой на последних обновах? Такая картина теперь постоянно

135334


еще красные рамки по бокам в приложении стали появляться, хз что такое.
 

Anatoly79

Moderator
Регистрация
17.04.2020
Сообщения
584
Благодарностей
488
Баллы
63
Доброго времени суток, а подскажите пожалуйста, то что вот новый снипет настройки GPU, если использовать
instance.DroidInstance.Settings.GenerateRandomLSPosedSettings(project.Profile.Country); то там эти параметры не генерируются, это так и задумано или позже добавите ?
Специально пока не добавлялось.
Это принципиально новый вид хуков и прежде чем обновлять генератор, нам важно было убедиться, что такие подмены не приведут к массовым проблемам.
 
  • Спасибо
Реакции: Sherminator

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
1 387
Благодарностей
707
Баллы
113
Доброго времени суток, а подскажите пожалуйста, то что вот новый снипет настройки GPU, если использовать
instance.DroidInstance.Settings.GenerateRandomLSPosedSettings(project.Profile.Country); то там эти параметры не генерируются, это так и задумано или позже добавите ?
C#:
//instance.DroidInstance.Settings.SetRandomLSPosedSettings(project.Profile.Country);
var rnd = new Random();

// Шум для канваса
int noise = rnd.Next(1, int.MaxValue);
var set = instance.DroidInstance.Settings.GenerateRandomLSPosedSettings(project.Profile.Country);
var setDes = JsonConvert.DeserializeObject<Dictionary<string, object>>(set);
var glPairs = new (string Vendor, string Renderer)[]
{
    // Qualcomm Adreno
    ("Qualcomm", "Adreno (TM) 750"),
    ("Qualcomm", "Adreno (TM) 740"),
    ("Qualcomm", "Adreno (TM) 730"),
    ("Qualcomm", "Adreno (TM) 660"),
//    ("Qualcomm", "Adreno (TM) 650"),
//    ("Qualcomm", "Adreno (TM) 642L"),
//    ("Qualcomm", "Adreno (TM) 640"),
//    ("Qualcomm", "Adreno (TM) 630"),
//    ("Qualcomm", "Adreno (TM) 619"),
//    ("Qualcomm", "Adreno (TM) 618"),
//    ("Qualcomm", "Adreno (TM) 612"),
//    ("Qualcomm", "Adreno (TM) 610"),

    // ARM Mali
//    ("ARM", "Mali-G715"),
//    ("ARM", "Mali-G710"),
//    ("ARM", "Mali-G78"),
//    ("ARM", "Mali-G77"),
//    ("ARM", "Mali-G76"),
//    ("ARM", "Mali-G68"),
//    ("ARM", "Mali-G57"),
//    ("ARM", "Mali-G52"),
//    ("ARM", "Mali-G51"),
//    ("ARM", "Mali-T880"),
//    ("ARM", "Mali-T860")
};

// Случайная валидная пара
var pair = glPairs[rnd.Next(glPairs.Length)];


setDes["GlVendor"]   = pair.Vendor;
setDes["GlRenderer"] = pair.Renderer;
setDes["GlCanvasNoise"] = noise;

var totalSet = JsonConvert.SerializeObject(setDes);
instance.DroidInstance.Settings.SetLSPosedSettings(totalSet);
 

finoz0

Client
Регистрация
20.01.2021
Сообщения
128
Благодарностей
27
Баллы
28
Сегодня на двух устройствах появились ошибки с lsposed api, причём только на двух действиях
Отключить модуль ZennoDroid
Включить модуль ZennoDroid
Всё остальное api работает отлично. Ошибку добавил на скрине, перезагрузка соответственно не помогает, в сами кубики изменений не вносил, скопировал из шаблона с примерами.
Устройство: realme note 50, android 13, сток + рут магиск обычный. Скорее всего дело в самих устройствах, регулярно что-нибудь выкидывают, но на всякий случай отпишу, вдруг у кого тоже будет такая проблема
apierr.png
 
  • Спасибо
Реакции: usboff

usboff

Client
Регистрация
25.08.2021
Сообщения
121
Благодарностей
135
Баллы
43
Сегодня на двух устройствах появились ошибки с lsposed api, причём только на двух действиях
Отключить модуль ZennoDroid
Включить модуль ZennoDroid
Всё остальное api работает отлично. Ошибку добавил на скрине, перезагрузка соответственно не помогает, в сами кубики изменений не вносил, скопировал из шаблона с примерами.
Устройство: realme note 50, android 13, сток + рут магиск обычный. Скорее всего дело в самих устройствах, регулярно что-нибудь выкидывают, но на всякий случай отпишу, вдруг у кого тоже будет такая проблема
Посмотреть вложение 135453
Аналогично впервые встретилась ошибка модуля ZennoDroid LSposed - "ERROR: transact failed Get manager binder fail, maybe the daemon hasn't started yet or you have not enabled cli" на одной конкретной мобиле из всего парка. Помогла перезагрузка тела.
 

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
893
Благодарностей
629
Баллы
93
Здравствуйте @Anatoly79 , при отрицательных bounds не верно парсятся точки координат и все что с ними связано.

Еще просьба добавить свойства X1 Y1, X2 Y2, все равно они парсятся для вычисления высоты и ширины, а для работы иногда нужны.

135454
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)