Релиз ZennoDroid Enterprise 2.4.4.0 — Сохранение данных приложения с аккаунтом •Экшен "Добавить аккаунт" •В генератор модели добавлены GPU Vendor и Renderer

ZennoLab Team

Super Moderator
Команда форума
Регистрация
22.01.2019
Сообщения
2 092
Реакции
4 583
Баллы
113
ULOX22.png


Весь список изменений 2.4.4.0

Добавлено:

+ Полностью переработаны экшены сохранения и восстановления данных приложения:
  • Добавлена поддержка Android 12 и выше.
  • Добавлено сохранение и восстановление выданных приложению разрешений.
  • Добавлено сохранение и восстановление связанного с приложением аккаунта, если данные аккаунта содержатся в хранилище аккаунтов, а не в приложении
    (аккаунт Google не поддерживается).
+ Добавлен экшен "Добавить аккаунт" (аккаунт Google не поддерживается).
+ В экшен "Получить файл" добавлена возможность получить файлы, к которым запрещен доступ.
+ В экшен "Отправить файл" добавлена возможность отправить файлы в разделы, к которым запрещен доступ (например, /data).
+ В API добавлена возможность искать по нескольким изображениям одновременно
Код:
Развернуть Свернуть Копировать
var imgHashes = new string[] { "iVBOR...YII", "iVBOR...mCC" };
var rectangle = instance.DroidInstance.Screen.FindImage(imgHashes, null, 95, 60);
+ В API Appium добавлены новые свойства для работы с найденным элементом
IsDisplayed - элемент находится в видимой части экрана.
Rectangle - положение, размер, координаты границ элемента.
Код:
Развернуть Свернуть Копировать
var element = instance.DroidInstance.AppiumDriver.FindElementByXPath("//*[@text='Google']");
if (element == null)
    throw new Exception("Элемент не найден");
if (!element.IsDisplayed)
    throw new Exception("Элемент вне экрана");

return element.Rectangle;
+ Модуль ZennoDroid обновлен до версии 1.11.0.
+ В API в генератор модели устройства добавлены GPU Vendor и Renderer
Код:
Развернуть Свернуть Копировать
// Добавление шума Canvas Fingerprint
var json = instance.DroidInstance.Settings.GenerateRandomLSPosedSettings(project.Profile.Country);
var jSettings = Global.ZennoLab.Json.JsonConvert.DeserializeObject<Global.ZennoLab.Json.Linq.JObject>(json);
jSettings["GlCanvasNoise"] = new Random().Next(1, int.MaxValue);
json = Global.ZennoLab.Json.JsonConvert.SerializeObject(jSettings);
instance.DroidInstance.Settings.SetLSPosedSettings(json);

В случае проблем с отображением на экране нужно отключить генерацию GPU Vendor и Renderer.
Код:
Развернуть Свернуть Копировать
// Отключение подмены GPU Vendor/Renderer
var json = instance.DroidInstance.Settings.GenerateRandomLSPosedSettings(project.Profile.Country);
var jSettings = Global.ZennoLab.Json.JsonConvert.DeserializeObject<Global.ZennoLab.Json.Linq.JObject>(json);
jSettings["GlVendor"] = string.Empty;
jSettings["GlRenderer"] = string.Empty;
json = Global.ZennoLab.Json.JsonConvert.SerializeObject(jSettings);
instance.DroidInstance.Settings.SetLSPosedSettings(json);
+ В API в генератор модели устройства добавлено имя устройства (маркетинговое название, о телефоне). Исправлена подмена имени устройства на некоторых прошивках.

Исправлено:

Экшен "Получить аккаунт" теперь возвращает метаданные аккаунта, необходимые для его корректного восстановления (аккаунт Google не поддерживается).
Исправлен критический баг при отправке файлов на устройство.

Где скачать?

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


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

Просьба сообщать обо всех багах в Багтрекере, сопровождая проблему подробным описанием и сценарием воспроизведения. Это позволит нам быстро диагностировать и исправить ошибку.
 
Попробывал получить куки из приложения (instagram), и как вы думаете это получилось? Конечно нет, пустая переменная, очередная функция которая заявлена в ZDE и не работает! 8-)
 
Попробывал получить куки из приложения (instagram), и как вы думаете это получилось? Конечно нет, пустая переменная, очередная функция которая заявлена в ZDE и не работает! 8-)
Instagram не хранит файл с куками.
 
Instagram не хранит файл с куками.
Доброго времени суток, подскажите пожалуйста, у меня на 10 дроиде не работает экшн получить буфер обмена, задать буфер обмена, установить значение из буфера обмена windows и ввод русских символов при методе ввода "native input + clipboard". Это так и должно быть из за того что андроид старый или логи присылать?) Проблема эта ещё в 2.4.3 наблюдалась
 
Попробывал получить куки из приложения (instagram), и как вы думаете это получилось? Конечно нет, пустая переменная, очередная функция которая заявлена в ZDE и не работает! 8-)
Тут проблема в самом Android как он хранит куки и их шифрует. Даже если бы получилось их выгрузить, все равно бы получили значения encrypted_value, а зашифрованные данные бесполезны, мы их никуда не сможем применить
 
у меня на 10 дроиде не работает экшн получить буфер обмена, задать буфер обмена, установить значение из буфера обмена windows
У меня на Андроид 10 буфер работает. Нужно выполнить еще раз экшен "Задать буфер обмена" и сохранить вывод команды Adb Shell logcat -d в файл. Диагностика не нужна.
 
Последнее редактирование:
  • Спасибо
Реакции: Sherminator
реддит при попытке логина или регистрации:

Gb7Sr6o.jpeg
 
Не отрабатывает как надо новое восстановление данных приложения. Поставил галочки на разрешения и связанный аккаунт, указал куда сохранять архив .tar.gz, всё сохранилось вроде нормально. Запускаю тот же шаблон с тем же аккаунтом, на пункте восстановление(галочки стоят) получаю: Выполнение действия RestoreAppData Входная строка имела неверный формат. Галочки пробовал и включать и выключать, в любом случае ошибка та же. При этом видно, что какие-то действия выполняются, так как появляется окно с уведомлением про суперпользователя и ошибка не сразу появляется, а спустя 3-4 секунды работы кубика. При этом отдельно сохранил данные из "получить аккаунты" и сам акк восстановился без проблем. На предыдущей версии не было проблем с сохранением и восстановлением

Также вопрос, аккаунты и приложения сохранённые старым способом можно восстанавливать через новые кубики? В "добавить аккаунты" нечего вписать в metadata получается, а сохранение делалось без разрешений и аккаунтов. Или нужно в каждый войти старым способом, сохранить новым способом и потом уже через новые кубики будет работать?
 
13, realme note 50. Попробовал сохранять без установленных галочек, тоже самое, как и если с 1 галочкой
Мы тестировали на таком телефоне, только с Android 14 и 15.
Отправьте мне в личку один нерабочий бэкап.
 
136111

Баг работы "GlVendor" и "GlRenderer" из JSON для подмены LSP

В пятницу перешел на версию 2.4.4.0, а сегодня столкнулся с такой проблемой.
При генерации устройства для LSP, часто получаю такие параметры, при которых не работает экран, хотя дерево формируется и все нужные элементы есть. Проблема только в визуале.
На 2.4.3.0 такой проблемы не было, если я правильно понимаю это стало из-за новых данных, которые генерируются в JSON для подмены: "GlVendor" и "GlRenderer".

Если сгенерировать новые JSON, то экран будет отображать, при условие если GlVendor и GlRenderer получились правильные.
 
Подскажите пожалуйста каким образом работают кубики "Получение и добавление аккаунта"?
Сохраняю данные приложение БЕЗ аккаунта - очищаю приложение - удаляю аккаунты - восстанавливаю данные - добавляю аккаунты. Затем проверяю кубиком получить аккаунты и у меня разные значения metadata и происходит вылет сессии. Instagram.
 
При генерации устройства для LSP, часто получаю такие параметры, при которых не работает экран, хотя дерево формируется и все нужные элементы есть. Проблема только в визуале.
Нужно выполнить генерацию модели. Закрыть/открыть браузер. Повторить несколько раз.
Черный экран всегда при одном и том же вендоре?
C#:
Развернуть Свернуть Копировать
var json = instance.DroidInstance.Settings.GenerateRandomLSPosedSettings(project.Profile.Country);
instance.DroidInstance.Settings.SetLSPosedSettings(json);

var jSettings = Global.ZennoLab.Json.JsonConvert.DeserializeObject<Global.ZennoLab.Json.Linq.JObject>(json);
project.SendInfoToLog("Vendor:" + jSettings.Value<string>("GlVendor"));
 
Это нормально. Какая версия Android?
ONEPLUS A5010 / Android 12
Тогда можете рассказать почему происходит вылет сессии и как этого избежать? Нужно переавторизовываться в инсте, следовательно где-то детект происходит
 
данные приложение БЕЗ аккаунта - очищаю приложение - удаляю аккаунты - восстанавливаю данные - добавляю аккаунты.
А что за аккаунты удаляются и добавляются? Не вижу, чтобы Instagram пользовался менеджером аккаунтов.
После авторизации в Instagram нужно открыть вкладку Аккаунты и синхронизация (экшен команда Adb shell am start -a android.settings.SYNC_SETTINGS)
Там есть аккаунты связанные с Instagram? Сделайте скриншот страницы.
 
А что за аккаунты удаляются и добавляются? Не вижу, чтобы Instagram пользовался менеджером аккаунтов.
После авторизации в Instagram нужно открыть вкладку Аккаунты и синхронизация (экшен команда Adb shell am start -a android.settings.SYNC_SETTINGS)
Там есть аккаунты связанные с Instagram? Сделайте скриншот страницы.
Начну сначала. Есть проблема, что при сохранение и восстановление данных постоянно происходит вылет сессии инсты - меня выкидывает из аккаунта и нужно снова авторизоваться. Начал разбираться, в чём причина и наткнулся на кубики по сохранению и восстановлению аккаунта.
При запуске кубика получить аккаунты в переменную приходит такое значение:
[
{
"name": "72689******", (ВМЕСТО ***** ОСТАЛЬНЫЕ ЦИФРЫ, НЕ СТАЛ СЮДА ПОЛНЫЙ АЙДИ ЗАКИДЫВАТЬ)
"type": "www.instagram.com",
"password": null,
"metadata": "+DU/oosLSJV9EzGxkBuTxBSZqd1ozmKSoBYp9yjxPHlhePsSrMdwhU8F/J9emiVKdLDQAiMWBnSU5IETE9DVniXcpslzSOr1yQdvOmYroxDLDMuiLjw1AfyF3psFkU2ocvujJub+DXY92w5xnChRkuPc2OeHY7og0ra + ещё 10 строк кода"
}
]

Следовательно этот аккаунт где-то сохраняется, раз кубик такие данные выводит?
Дальше я сохраняю прилу, сохраняю этот аккаунт, очищаю прилу и удаляю аккаунт, восстанавливаю прилу и добавляю этот аккаунт. Затем захожу в приложение и вылет сессии.
Фото по Вашему запросу adb shell.
136115


Собственно вопрос, почему вылет то происходит? Меня где-то детектит, но ГДЕ?
 
  • Спасибо
Реакции: Anatoly79
Нужно выполнить генерацию модели. Закрыть/открыть браузер. Повторить несколько раз.
Черный экран всегда при одном и том же вендоре?
C#:
Развернуть Свернуть Копировать
var json = instance.DroidInstance.Settings.GenerateRandomLSPosedSettings(project.Profile.Country);
instance.DroidInstance.Settings.SetLSPosedSettings(json);

var jSettings = Global.ZennoLab.Json.JsonConvert.DeserializeObject<Global.ZennoLab.Json.Linq.JObject>(json);
project.SendInfoToLog("Vendor:" + jSettings.Value<string>("GlVendor"));

Набросал такой код для теста

C#:
Развернуть Свернуть Копировать
var droid = instance.DroidInstance;
var filter = new DeviceFilter();
filter.Brand = "POCO|Xiaomi";
filter.Version = "12";

var json = droid.Settings.GenerateRandomLSPosedSettings(project.Profile.Country, filter);

var data = Global.ZennoLab.Json.Linq.JObject.Parse(json);
var brand = data.SelectToken("PhoneBrand").ToString();
var version = data.SelectToken("PhoneFingerprint").ToString();
var vendor = data.SelectToken("GlVendor").ToString();
var render = data.SelectToken("GlRenderer").ToString();

droid.Settings.SetLSPosedSettings(json);
droid.App.CloseAll();
droid.App.Clean("com.yandex.browser");
droid.App.OpenUrl("https://ya.ru", "com.yandex.browser");

project.SendInfoToLog($"Brand: {brand}\n PhoneFingerprint: {version}\n GlVendor: {vendor} | GlRenderer: {render}");

Если отрубаем filter, то работает нормально(очень редко когда, черный экран), если включаем filter, то черный экран лезет очень часто.

На ARM - черный экран
На Qualcomm - ОК
 
Последнее редактирование:
  • Спасибо
Реакции: Anatoly79
Следовательно этот аккаунт где-то сохраняется, раз кубик такие данные выводит?
Да, действительно, спустя некоторое время после входа в приложение в хранилище появляется аккаунт с набором данных id, имя, accesToken,... На вкладке настроек он не отображается.
Попробовал удалить этот аккаунт, у меня это не привело к разлогину. Нужно проверить:
  1. Авторизуйтесь в приложении.
  2. Сделайте бэкап приложения (instagram_1.tar.gz) вместе со связанным аккаунтом (тип www.instagram.com).
  3. Отключите интернет.
  4. Очистите приложение и удалите связанный аккаунт
  5. Восстановите бэкап и после этого сделайте еще один бэкап (instagram_2.tar.gz)
  6. После этого включите интернет и запустите приложение, дождитесь вылета из сессии и сделайте бэкап (instagram_3.tar.gz)
Скиньте мне в личку все три бэкапа.
 
  • Спасибо
Реакции: smallbastard
Да, действительно, спустя некоторое время после входа в приложение в хранилище появляется аккаунт с набором данных id, имя, accesToken,... На вкладке настроек он не отображается.
Попробовал удалить этот аккаунт, у меня это не привело к разлогину. Нужно проверить:
  1. Авторизуйтесь в приложении.
  2. Сделайте бэкап приложения (instagram_1.tar.gz) вместе со связанным аккаунтом (тип www.instagram.com).
  3. Отключите интернет.
  4. Очистите приложение и удалите связанный аккаунт
  5. Восстановите бэкап и после этого сделайте еще один бэкап (instagram_2.tar.gz)
  6. После этого включите интернет и запустите приложение, дождитесь вылета из сессии и сделайте бэкап (instagram_3.tar.gz)
Скиньте мне в личку все три бэкапа.

Интернет отключаю только на телефоне, я правильно понял? Последний бэкап нужно делать ПОСЛЕ ВЫЛЕТА (без авторизации последующей)?
 
Кубики из lsposed Api "Включить модуль ZennoDroid" и "Отключить модуль ZennoDroid", срабатывают, но дают ошибку:
Выполнение действия CSharp OwnCode: Включить модуль ZennoDroid. Reboot is required(перезагрузка естественно не помогает). Решается "необязательным выполнением", но всё равно, если есть возможность пофиксить, было бы здорово. Устройство: realme note 50 3/64, android 13
 
Всем привет! А экшен "Получить список устройств" у всех в этой версии корректно работает? Сейчас заметил что в список попадают все устройства, даже занятые в проекте. Проблема сохраняется и при подключении черед ADB и при LAN подключении. Что делать? :)
 
  • Спасибо
Реакции: SoloFarmer2
Речь о работе экшена при использовании фильтров? Экшен Получить список устройств по-разному работает в Project Maker и в ZennoDroid.
Действительно! Спасибо за ссылку. Ознакомился, вопросов больше не имею :)

Я просто в мейкере тестировал во время работы и он брал занятые мобилы. Поэтому и подумал что не так работает :)
 
А экшен "Получить список устройств" у всех в этой версии корректно работает? Сейчас заметил что в список попадают все устройства, даже занятые в проекте.

Экшен доработан в тестовом билде ZennoDroid 2.4.7.0, теперь фильтр учитывает все занятые устройства.
+ Экшен Получить список устройств при выполнении в ProjectMaker теперь получает данные о всех занятых устройствах, включая используемые в проектах запущенных в ZennoDroid. Раньше ProjectMaker не видел потоки выполняющиеся в Zennodroid.
 
  • Спасибо
Реакции: SoloFarmer2

Похожие темы

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