Size: a a a

2018 March 12

D

Dmitry in Android Guards
Интересно, спасибо, поизучаю тоже
источник
2018 March 13

D

Dmitry in Android Guards
Почитал про FileProvider. Там можно шарить все кроме... базы данных.


Пробую по другому.
https://developer.android.com/studio/publish/app-signing.html#considerations

Code/data sharing through permissions: Android provides signature-based permissions enforcement, so that an app can expose functionality to another app that is signed with a specified certificate. By signing multiple APKs with the same certificate and using signature-based permissions checks, your apps can share code and data in a secure manner.

Подпись одна и таже у приложений, версия 1.
Но почему-то при попытке открыть файл с базой через
Context oldPackageContext = context.createPackageContext("old.package.context", 0);
final File oldDBPath = oldPackageContext.getDatabasePath(databaseName);
final InputStream inputStream = new FileInputStream(oldDBPath);

Получаю

java.io.FileNotFoundException: /data/user/0/old.package.name/databases/oldbase.db (Permission denied)

Может быть какая-то засада от производителя телефона (пробую на Xiaomi)?
источник

KI

Konstantin Ivanov in Android Guards
Dmitry
Почитал про FileProvider. Там можно шарить все кроме... базы данных.


Пробую по другому.
https://developer.android.com/studio/publish/app-signing.html#considerations

Code/data sharing through permissions: Android provides signature-based permissions enforcement, so that an app can expose functionality to another app that is signed with a specified certificate. By signing multiple APKs with the same certificate and using signature-based permissions checks, your apps can share code and data in a secure manner.

Подпись одна и таже у приложений, версия 1.
Но почему-то при попытке открыть файл с базой через
Context oldPackageContext = context.createPackageContext("old.package.context", 0);
final File oldDBPath = oldPackageContext.getDatabasePath(databaseName);
final InputStream inputStream = new FileInputStream(oldDBPath);

Получаю

java.io.FileNotFoundException: /data/user/0/old.package.name/databases/oldbase.db (Permission denied)

Может быть какая-то засада от производителя телефона (пробую на Xiaomi)?
как так? неужели нельзя сделать копию файла база данных внутри и его расшарить как обычный файл?
источник

VD

Vitalii Dmitriev in Android Guards
Dmitry
Почитал про FileProvider. Там можно шарить все кроме... базы данных.


Пробую по другому.
https://developer.android.com/studio/publish/app-signing.html#considerations

Code/data sharing through permissions: Android provides signature-based permissions enforcement, so that an app can expose functionality to another app that is signed with a specified certificate. By signing multiple APKs with the same certificate and using signature-based permissions checks, your apps can share code and data in a secure manner.

Подпись одна и таже у приложений, версия 1.
Но почему-то при попытке открыть файл с базой через
Context oldPackageContext = context.createPackageContext("old.package.context", 0);
final File oldDBPath = oldPackageContext.getDatabasePath(databaseName);
final InputStream inputStream = new FileInputStream(oldDBPath);

Получаю

java.io.FileNotFoundException: /data/user/0/old.package.name/databases/oldbase.db (Permission denied)

Может быть какая-то засада от производителя телефона (пробую на Xiaomi)?
А сама база на телефоне точно есть?
источник

D

Dmitry in Android Guards
Возможно. Но вариант когда ты можешь просто молча скопировать файл другого приложения "втихую", при этом ничего не меняя в старом приложении, гораздо лучше.
источник

D

Dmitry in Android Guards
Vitalii Dmitriev
А сама база на телефоне точно есть?
Есть, старое приложение установлено и работает с этой базой без проблем.
источник

D

Dmitry in Android Guards
Я вот подозреваю что такие трюки только через контекст можно сделать
источник

D

Dmitry in Android Guards
А FileInputStream ничего не знает о контексте
источник

D

Dmitry in Android Guards
Вот так бы сработало oldPackageContext.openFileInput(), но тут такая же засада как с FileProvider, только из папки files можно читать файлы.
источник

D

Dmitry in Android Guards
Абсолюбный пусть нельзя указать, пробовал выдает эксепшел, что указан абсолютный путь, а не название файла
источник

D

Dmitry in Android Guards
Попробую базу скопировать при помощи старого приложения в диреткорию files
источник

VS

Vladislav Shipugin in Android Guards
Dmitry
Скажите, а можно как-то получить доступ к файлу с SQLite базой другого приложения, при том условии что оба приложения мои, но с разными applicationID. Про ContentProvider я знаю, но мне нужно именно скопировать файл с базой. Или это нереально?
FileProvider. В одном приложении копируешь бд в externalcash и провайдишь вдругое приложение.
источник

VS

Vladislav Shipugin in Android Guards
В котлине есть extension File().copy(newFile)
источник

VS

Vladislav Shipugin in Android Guards
Я наверное слоупок, ну да ладно...
источник

R

Rtem in Android Guards
источник

R

Rtem in Android Guards
Ну если кто-то еще не видел
источник

R

Rtem in Android Guards
https://commonsware.com/blog/2018/03/08/random-musings-p-developer-preview-1.html - и тут есть полезные штуки по ИБ (да-да, Артем наконец-то прочитал очередной выпуск Android Weekly) =)
источник

D

Dmitry in Android Guards
Vladislav Shipugin
FileProvider. В одном приложении копируешь бд в externalcash и провайдишь вдругое приложение.
Да вот не хотелось всех этих копирований. Видимо по другому никак.
источник

GP

George Profs in Android Guards
источник
2018 March 14

AV

Anton Vlasov in Android Guards
Парни, в универе тема ВКР "реализация модуля защиты данных в мобильном приложении". Что можете подсказать для изучения? Пока в голове какая-то слишком простенькая дичь с шифрованием данных и их выдачей :\ мне кажется это прям слишком легкий путь.. Может есть у кого боль с чем-то подобным, могу за бесплатно реализовать нечто подобное (опять же, знать бы что конкретно :D). Прошу вашего совета)
источник