[ZDE] Сохрание данных приложения не работает

ermax

Client
Регистрация
06.10.2012
Сообщения
130
Благодарностей
43
Баллы
28
Что через стандартный кубик, что через C# получаю

C#:
Выполнение действия BackupAppData Невозможно найти папку с программой
При этом если делать вручную бекап с пк через adb backup, все работает.
У меня такое подозрение что зенодройд пытается сделать бекап через adb shell backup, и поэтому не видит папку или само приложение (а нужно то через adb shell bu backup)

Я бы даже не писал сюда, если бы не одно но, если делать бекап с пк через adb backup, файлы бекапа приложений почему то по 47 байт только весят


PS. Телефон с ROOT, установлен magisk, lsposed, zagisk, shamiko, play integrity fix, playcurl, IamNotADeveloper, PrivacySpace
PS. Crdroid 10 (android 14)
PS. ZennoDroid 2.3.9.0
 
Последнее редактирование:

Anatoly79

Moderator
Регистрация
17.04.2020
Сообщения
414
Благодарностей
313
Баллы
63
Выполнение действия BackupAppData Невозможно найти папку с программой
Приложение хотя бы раз запускалось и перед архивацией свернуто? Что возвращает выполнение кубика "Свой код C#" (название приложения нужно заменить на требуемое)
C#:
return instance.DroidInstance.App.DataDir("com.android.chrome");
через adb backup, все работает.
adb backup это бесполезная функция, мы ей не пользуемся.
 

ermax

Client
Регистрация
06.10.2012
Сообщения
130
Благодарностей
43
Баллы
28
C#:
return instance.DroidInstance.App.DataDir("com.android.chrome");
Папку видит (использовал org.telegram.messenger)
C#:
Выполнение кода C#  Результат: /data/user/0/org.telegram.messenger
adb backup это бесполезная функция, мы ей не пользуемся.
Уже сам понял, что после 12 андройда она толком не работает

Приложение хотя бы раз запускалось и перед архивацией свернуто? Что возвращает выполнение кубика "Свой код C#" (название приложения нужно заменить на требуемое)
{AndroidKeys.HOME} c эмуляцией клавиатуры у меня почему то не срабатывает, но проблема явно не в этому, я для теста сворачивал вручную перед бекапом, и бекап не работает, так же тестировал с убиванием процессов, и бекап так же не работает.

Хотелось бы понять, что вы используете под капотом бекапа, собственную библиотеку или что типа tarb (github), чтобы понять в чем причина
 

Anatoly79

Moderator
Регистрация
17.04.2020
Сообщения
414
Благодарностей
313
Баллы
63
Выполнение кода C# Результат: /data/user/0/org.telegram.messenger
tar.
Я правильно понимаю, что код
return instance.DroidInstance.App.DataDir("org.telegram.messenger");
возвращает корректный путь к папке с данными, а
instance.DroidInstance.App.DataDir("org.telegram.messenger", "c:\\backup\\telega.tar.gz");
выдает ошибку "Невозможно найти папку с программой"?
 

ermax

Client
Регистрация
06.10.2012
Сообщения
130
Благодарностей
43
Баллы
28
tar.
Я правильно понимаю, что код
return instance.DroidInstance.App.DataDir("org.telegram.messenger");
возвращает корректный путь к папке с данными, а
instance.DroidInstance.App.DataDir("org.telegram.messenger", "c:\\backup\\telega.tar.gz");
выдает ошибку "Невозможно найти папку с программой"?
Да верно.

Только не
instance.DroidInstance.App.DataDir("org.telegram.messenger", "c:\\backup\\telega.tar.gz");
А
instance.DroidInstance.App.BackupAppData("org.telegram.messenger", "c:\\backup\\telega.tar.gz");

124039


124040
 
  • Спасибо
Реакции: Anatoly79

Anatoly79

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

ermax

Client
Регистрация
06.10.2012
Сообщения
130
Благодарностей
43
Баллы
28
Да, там еще одна проверка папки.
А такой код, что возвращает?
return instance.DroidInstance.Input.Shell("su -c 'busybox test -d /data/user/0/org.telegram.messenger' && echo ok || echo false");
124044


124045



Наверно будет вопрос про это
124046


и если нужно было ставить busybox то я его не ставил, так не знал что он нужен
в мануале к zde просто не было про это
 

Anatoly79

Moderator
Регистрация
17.04.2020
Сообщения
414
Благодарностей
313
Баллы
63
и если нужно было ставить busybox то я его не ставил, так не знал что он нужен
busybox нужен, он ищется автоматически на телефоне и, судя по всему, он найден (иначе так бы и написало - "busybox не найден"), но что-то работает не так.

Что выдают команды, если использовать пути, которые указаны на вкладке настроек?
return instance.DroidInstance.Input.Shell("su -c '/sbin/.magisk/busybox/busybox test -d /data/user/0/org.telegram.messenger' && echo ok || echo false");
return instance.DroidInstance.Input.Shell("su -c '/debug_ramdisk/.magisk/busybox/busybox test -d /data/user/0/org.telegram.messenger' && echo ok || echo false");
 

Anatoly79

Moderator
Регистрация
17.04.2020
Сообщения
414
Благодарностей
313
Баллы
63
  • Спасибо
Реакции: уауауауа

ermax

Client
Регистрация
06.10.2012
Сообщения
130
Благодарностей
43
Баллы
28
busybox нужен, он ищется автоматически на телефоне и, судя по всему, он найден (иначе так бы и написало - "busybox не найден"), но что-то работает не так.

Что выдают команды, если использовать пути, которые указаны на вкладке настроек?
return instance.DroidInstance.Input.Shell("su -c '/sbin/.magisk/busybox/busybox test -d /data/user/0/org.telegram.messenger' && echo ok || echo false");
return instance.DroidInstance.Input.Shell("su -c '/debug_ramdisk/.magisk/busybox/busybox test -d /data/user/0/org.telegram.messenger' && echo ok || echo false");
124047


124048
 
  • Спасибо
Реакции: Anatoly79

Anatoly79

Moderator
Регистрация
17.04.2020
Сообщения
414
Благодарностей
313
Баллы
63
  • Спасибо
Реакции: ermax

ermax

Client
Регистрация
06.10.2012
Сообщения
130
Благодарностей
43
Баллы
28
Странно, работает.
Попробуйте оставить только этот путь для busybox
/debug_ramdisk/.magisk/busybox/busybox
Перезапустить ProjectMaker и еще раз сделать бэкап.
instance.DroidInstance.App.BackupAppData("org.telegram.messenger", "c:\\backup\\telega.tar.gz");
большое спасибо
бекапы заработали

просто оставил этот путь как вы и советовали
/debug_ramdisk/.magisk/busybox/busybox
 
  • Спасибо
Реакции: Anatoly79

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