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

ZennoLab Team

Super Moderator
Команда форума
Регистрация
22.01.2019
Сообщения
1 853
Благодарностей
4 117
Баллы
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 547
Благодарностей
896
Баллы
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
Благодарностей
703
Баллы
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);
 
  • Спасибо
Реакции: Sherminator

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