Полезное по смартфонам и ZennoDroid Enterprise

FreddyKrueger

Client
Регистрация
06.09.2016
Сообщения
705
Благодарностей
629
Баллы
93
А он случайно не начинает пробовать отключить кабель? Я какую-то прилагу ставил для контроля заряда, так она програмно пробовала кабель отключать и дроид сбоил. Пришлось удалить.
Нет, кабель не отключает, передача данных не обрывается, все работает в адб и дроиде. По крайней мере на самсунгах (A03 Core, A04s). На очереди еще xiaomi, oneplus, google pixel.

Yuriy Zymlex
Может последние посты про зарядку реально перенести в другую тему, чтобы тут не захламлять.
А в чем захламление? Вроде бы "полезно и для смартфонов". Перегрев\вздутие аккумуляторов думаю, что самая распространенная проблема. Модуль, что я предложил, определенно помогает в этом вопросе.

Есть и другие идеи и рекомендации по поводу снижения перегрева и удобного размещения смартфонов, но раз уже 2 человека отписалось, то захламлять не будем.
 
Последнее редактирование:
  • Спасибо
Реакции: RipWay и alexeipigilov12

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 559
Благодарностей
3 388
Баллы
113
Yuriy Zymlex
Может последние посты про зарядку реально перенести в другую тему, чтобы тут не захламлять.
Тут скоро потребуется отдельная тема для обсуждения...
А в чем захламление? Вроде бы "полезно и для смартфонов". Перегрев\вздутие аккумуляторов думаю, что самая распространенная проблема. Модуль, что я предложил, определенно помогает в этом вопросе.

Есть и другие идеи и рекомендации по поводу снижения перегрева и удобного размещения смартфонов, но раз уже 2 человека отписалось, то захламлять не будем.
По перегреву: было бы ещё полезно ограничивать нагрев процессора, а особенно радиомодуля.
Так же по отзывам, на самсунге за троттлинг отвечает com.samsung.android.game.gos

Возможно, тут бы ещё пригодилась инфа по ограничению напряжения по USB.
 
  • Спасибо
Реакции: FreddyKrueger

westruk

Client
Регистрация
30.03.2020
Сообщения
367
Благодарностей
119
Баллы
43
  • Спасибо
Реакции: mta и FreddyKrueger

Iv1

Client
Регистрация
21.02.2016
Сообщения
1 953
Благодарностей
780
Баллы
113
Про энергопотребление есть большая хорошая статья
+ там если [persist.radio.multisim.config]: [dsds] переписать как [persist.radio.multisim.config]: [ds] то телефон сделается 1 симочным, вместо 2х что тоже позволит сэкономить потребление.
Только на реальном устройстве build.prop хрен просто так отредактируешь)) Подключение в recovery mode - не рассматриваю, потому что это жутко неудобно.
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 559
Благодарностей
3 388
Баллы
113
Подключение в recovery mode - не рассматриваю, потому что это жутко неудобно.
А вы там ещё не факт, что что-то сможете сделать, так как у системных разделов используется дедупликация и
по этой причине оно read-only, а места для распаковку - нет, но как знаю, для этого уже сделали модифицированные инструменты.
 

Iv1

Client
Регистрация
21.02.2016
Сообщения
1 953
Благодарностей
780
Баллы
113
А вы там ещё не факт, что что-то сможете сделать, так как у системных разделов используется дедупликация и
по этой причине оно read-only, а места для распаковку - нет, но как знаю, для этого уже сделали модифицированные инструменты.
Где сделали эти инструменты?
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 559
Благодарностей
3 388
Баллы
113
Регистрация
23.12.2014
Сообщения
688
Благодарностей
232
Баллы
43
Закрыть все вкладки
C#:
var droid = instance.DroidInstance;
droid.App.CloseAll();
 
Последнее редактирование модератором:
  • Спасибо
Реакции: Hannes

Midnight

Client
Регистрация
28.02.2016
Сообщения
322
Благодарностей
185
Баллы
43
Проверка состояния экрана (заблокирован\разблокирован\ожидает свайпа) и разблокировка при необходимости
C#:
string power_dump = instance.DroidInstance.Input.Shell("adb shell dumpsys power", 60 * 1000);
bool mHoldingWakeLockSuspendBlocker = bool.Parse(Regex.Match(power_dump, "(?<=mHoldingWakeLockSuspendBlocker=).*").Value.Trim());
bool mHoldingDisplaySuspendBlocker = bool.Parse(Regex.Match(power_dump, "(?<=mHoldingDisplaySuspendBlocker=).*").Value.Trim());
if (mHoldingWakeLockSuspendBlocker && mHoldingDisplaySuspendBlocker){
    project.SendInfoToLog("display on, unlocked", true);
}
else if (!mHoldingWakeLockSuspendBlocker && mHoldingDisplaySuspendBlocker){
    project.SendInfoToLog("display on, locked", true);
    instance.DroidInstance.Input.Shell("adb shell input keyevent 82", 60 * 1000);
}
else if (!mHoldingWakeLockSuspendBlocker && !mHoldingDisplaySuspendBlocker){
    project.SendInfoToLog("display off, locked", true);
    instance.DroidInstance.Input.Shell("adb shell input keyevent KEYCODE_WAKEUP", 60 * 1000);
    instance.DroidInstance.Input.Shell("adb shell input keyevent 82", 60 * 1000);
}
 
Регистрация
20.02.2019
Сообщения
293
Благодарностей
35
Баллы
28
Подскажите как работает установка geo, должна ли быть включена геолокация на смартфоне? или не обязательно?
 
Регистрация
23.12.2014
Сообщения
688
Благодарностей
232
Баллы
43
И включена и разрешение у используемого приложения на гео должно быть, но многое зависит от прошивки телефона
 
  • Спасибо
Реакции: alexeipigilov12

Midnight

Client
Регистрация
28.02.2016
Сообщения
322
Благодарностей
185
Баллы
43
Проверка наличия текста на экране путем распознавания страницы через Tesseract. Полезно когда в структуре элементов пустота и по другому уже никак. Предварительно нужно подключить Tessercat.

C#:
string pattern = "pattern";
//
string text_ocr = string.Empty;
byte[] screenshot = instance.DroidInstance.Screen.ScreenshotAsArray();
Bitmap resizedBitmap;
using (MemoryStream ms = new MemoryStream(screenshot))
using (Bitmap originalBitmap = new Bitmap(ms)){
    int targetWidth = 640;
    int targetHeight = (int)Math.Round((double)originalBitmap.Height * targetWidth / originalBitmap.Width);
    resizedBitmap = new Bitmap(targetWidth, targetHeight);
    using (Graphics g = Graphics.FromImage(resizedBitmap)){
        g.DrawImage(originalBitmap, 0, 0, targetWidth, targetHeight);
    }
}
using (var api = OcrApi.Create()){
    api.Init(Languages.English);
    string text = api.GetTextFromImage(resizedBitmap);
    string[] lines = text.Split(new[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries);
    text_ocr = string.Join(" ", lines);
}
if (text_ocr.Contains(pattern)){
    project.SendInfoToLog("Success", true);
}
else{
    project.SendInfoToLog("Fail", true);
}
 
Регистрация
23.12.2014
Сообщения
688
Благодарностей
232
Баллы
43
Если у Приложение работает "мимо прокси" то попробуйте перед открытием приложения исполнить этот код

C#:
instance.DroidInstance.Proxy.UseDnsTcp = false;
instance.DroidInstance.Proxy.UseDnsUdp = false;
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 559
Благодарностей
3 388
Баллы
113
Если у Приложение работает "мимо прокси" то попробуйте перед открытием приложения исполнить этот код

C#:
instance.DroidInstance.Proxy.UseDnsTcp = false;
instance.DroidInstance.Proxy.UseDnsUdp = false;
Это на случай, если прокси не пропускает DNS.
Необходимо сначала выполнить код, а потом установить прокси.
 
Регистрация
23.12.2014
Сообщения
688
Благодарностей
232
Баллы
43
Это на случай, если прокси не пропускает DNS.
Необходимо сначала выполнить код, а потом установить прокси.
В моем случае не совсем так........ Хром работал со всеми прокси , а браузер от Я нет, по сути только это и исправило положение
 
Последнее редактирование:
Регистрация
23.12.2014
Сообщения
688
Благодарностей
232
Баллы
43
Проверка наличия текста на экране путем распознавания страницы через Tesseract. Полезно когда в структуре элементов пустота и по другому уже никак. Предварительно нужно подключить Tessercat.

C#:
string pattern = "pattern";
//
string text_ocr = string.Empty;
byte[] screenshot = instance.DroidInstance.Screen.ScreenshotAsArray();
Bitmap resizedBitmap;
using (MemoryStream ms = new MemoryStream(screenshot))
using (Bitmap originalBitmap = new Bitmap(ms)){
    int targetWidth = 640;
    int targetHeight = (int)Math.Round((double)originalBitmap.Height * targetWidth / originalBitmap.Width);
    resizedBitmap = new Bitmap(targetWidth, targetHeight);
    using (Graphics g = Graphics.FromImage(resizedBitmap)){
        g.DrawImage(originalBitmap, 0, 0, targetWidth, targetHeight);
    }
}
using (var api = OcrApi.Create()){
    api.Init(Languages.English);
    string text = api.GetTextFromImage(resizedBitmap);
    string[] lines = text.Split(new[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries);
    text_ocr = string.Join(" ", lines);
}
if (text_ocr.Contains(pattern)){
    project.SendInfoToLog("Success", true);
}
else{
    project.SendInfoToLog("Fail", true);
}
У меня не работает!!!!!
 
Регистрация
23.12.2014
Сообщения
688
Благодарностей
232
Баллы
43
Взялся реализовать решение смарткапчи от Я через сервис white-captcha , но как на зло сервер ихний упал.....
 

Midnight

Client
Регистрация
28.02.2016
Сообщения
322
Благодарностей
185
Баллы
43
Регистрация
20.02.2019
Сообщения
293
Благодарностей
35
Баллы
28
Взялся реализовать решение смарткапчи от Я через сервис white-captcha , но как на зло сервер ихний упал.....
Я ними работал, гадает хорошо, сервер спать ложиться также системно.
captcha-guru с ними работаю, там все есть. Работает четко
 

Midnight

Client
Регистрация
28.02.2016
Сообщения
322
Благодарностей
185
Баллы
43
Не советую брать Galaxy A8 ( 2018 ) и Galaxy A12. На первом часто летит непроходящий RMM State: Prenormal, второй на некоторых версиях загрузчика не шьется. Есть небольшой шанс прошить только китайским платным софтом, предварительно разобрав девайс и замкнув контакты тестпоинт
 
  • Спасибо
Реакции: fazan

rooboting

Новичок
Регистрация
07.03.2024
Сообщения
3
Благодарностей
0
Баллы
1
Кто может помочь с настройкой и сборкой проекта?
 

Vlad_Curnoi

Client
Регистрация
09.08.2017
Сообщения
492
Благодарностей
206
Баллы
43
Регистрация
23.12.2014
Сообщения
688
Благодарностей
232
Баллы
43

rooboting

Новичок
Регистрация
07.03.2024
Сообщения
3
Благодарностей
0
Баллы
1

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 559
Благодарностей
3 388
Баллы
113
https://t.me/zennolabchat/1/469887
если ругается на "Не удалось запустить прокси", значит не удалось установить утилиту gnirehtet. Для решения ошибки нужно на телефоне в разделе "для разработчиков" помимо отладки по usb, дать разрешение на установку приложений по usb. Если у вас телефон xiaomi, то для включения этой функции понадобится войти в mi аккаунт. Плюс должна быть вставлена симкарта в телефон (обойтись только wi-fi не выйдет).
 
  • Спасибо
Реакции: brun0
Регистрация
23.12.2014
Сообщения
688
Благодарностей
232
Баллы
43
Не плохая альтернатива ACCA для контроля зарядки Battery charge limit
 
Регистрация
23.12.2014
Сообщения
688
Благодарностей
232
Баллы
43
Если не удается обновит/установить Magisk , то сразу включите впн (не РФ)
 

frion-seo

Client
Регистрация
27.02.2011
Сообщения
539
Благодарностей
472
Баллы
63

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