Могу ли я изменить права на запись для корневого каталога? Sygic Navigation и их API - PullRequest
1 голос
/ 18 января 2010

Мне нужно иметь возможность записывать текстовые файлы в корневой каталог моего устройства Android (как этот вопрос объясняет ).

Могу ли я изменить права на запись для корневого каталога / и если да, то как?

Я пытался отправить файл с помощью adb, но там говорилось, что файловая система доступна только для чтения = (

Довольно досадно, что я не могу управлять своим собственным устройством, что все так ограничено = (


РЕДАКТИРОВАТЬ 1: Эта тема перешла к обсуждению Sygic Navigation и их API, что, похоже, неправильно, когда речь идет о платформе Android. У меня есть еще несколько вопросов, которые обсуждают Sygic и их навигационное программное обеспечение.

Ответы [ 8 ]

6 голосов
/ 18 января 2010

Только при наличии root-доступа.

5 голосов
/ 08 ноября 2012

Это работало со мной:

mount -o rw,remount -t rootfs /

Получил отсюда: http://www.pocketmagic.net/?p=757

3 голосов
/ 19 января 2010

Если вы хотите проявить творческий подход и обойти (идиотское) требование / без полномочий root, вы можете использовать fakechroot , библиотеку LD_PRELOAD из debian.

Редактировать:это, вероятно, невозможно для java-программы, из-за того, как экземпляры vm разветвляются .Нативной программе придется бороться с бесполезным компоновщиком (без LD_PRELOAD), но если могут быть запущены произвольные программы, альтернативному компоновщику не потребуются привилегии root.

3 голосов
/ 18 января 2010

Не по умолчанию. Корневая файловая система, поставляемая на официальных устройствах Android, доступна только для чтения, и приложения могут записывать только определенные ограниченные области. Однако для многих устройств Android есть root-эксплойты, которые позволяют вам делать с файловой системой все, что вы хотите.

2 голосов
/ 18 января 2010

Я быстро просмотрел документацию Sygic API . Это действительно говорит о том, что входные файлы приходят из корневого каталога. В нем также говорится, что выходные файлы будут помещены в корневой каталог. Он даже выделяет «корневой каталог» жирным шрифтом, чтобы вы знали, что они действительно серьезно относятся к файлам данных.

Как уже говорилось, ни одно приложение Android не будет иметь разрешения на запись в этот каталог на стандартном телефоне, поэтому документация Sygic должна быть неправильной . Я предполагаю, что это поведение для других платформ, на которых работает Sygic, но они не обновили документацию для Android.

Я надеюсь, что они принимают данные через Intent, а не через файл, но без надлежащей документации сложно понять, что вы можете сделать.

В документации API упоминаются файлы .out и .event. Возможно, посмотрите на файловую систему вашего устройства и посмотрите, сможете ли вы ее найти. Если вы можете, .in файлы, вероятно, находятся в том же каталоге.

2 голосов
/ 18 января 2010

ROOT называется так, по какой-то причине пользователь ROOT называется так по той же причине. Любой, кроме ROOT, который владел / был бы неправ и нарушал бы каждый принцип безопасности UNIX. Вы не можете сделать это по ХОРОШЕЙ причине, пытаясь сделать это ПЛОХО.

1 голос
/ 19 января 2010

Вы говорите: «Приложение читает и анализирует IN-файл, когда он находится в корневом каталоге на мобильном устройстве».

Я очень сомневаюсь, что это приложение способно прочитать истинный корневой каталог вашего телефона. Я думаю, что это может быть корневой каталог, доступный для него через запоминающее устройство USB, aka /sdcard/.

0 голосов
/ 18 января 2010

Краткий ответ: Нет, вы не можете.

Длинный ответ: Нет, вы не можете и не должны.

Rant:


Извинитечто вам могут не понравиться некоторые ответы, которые вы получаете здесь, но они не такие, как вы выразились «умные замечания» (ну, они умные, но не умные люди).

Вместо этогото, что вы видите, это другие разработчики, вероятно с большим опытом на платформе, дающие вам подлинные предупреждения и полезные советы .Они предупреждают вас, что путь, по которому вы идете, отражает некоторые неудачные дизайнерские решения.

Вы заявили, что:

Я использую внешнее приложение, которое я не могу контролировать, ив соответствии с их API: Приложение считывает и анализирует IN-файл, когда он находится в корневом каталоге на мобильном устройстве. И у нас есть причина, по которой я не могу сохранить файл в другом месте и не могу "просмотреть"мой дизайн

Но commonsware.com совершенно прав, когда говорят:

Тогда прекратите использовать это" внешнее приложение ", что бы ни значило" внешнее приложение ".Это явно не Android APK, так как они не будут отправлять что-то, что требует возможности записи в корневой каталог.

Кроме того, вы разочарованно отметили, что:

Да, к сожалению, "рутировать" каждое устройство, которое будет использовать это решение, вероятно, не вариант = (Черт, все, что я пытаюсь сделать в Android, не работает по той или иной причине = (

Есть так много причин, по которым ОС Android не позволяет и не должна позволять каждому разработчику и их бабушке иметь полный контроль над корневыми / системными каталогами, но вместо того, чтобы перечислять некоторые из них, я попрошу вас об этом(риторически):

Зачем вообще беспокоиться о наличии контроля доступа и разрешений, если какой-либо программный продукт может изменять эти настройки всякий раз, когда ему это нравится?

I дляникто не чувствовал бы себя комфортно, загружая приложение для моего смартфона, если бы знал, что оно может иметь возможность биться обо мнеevice как пьяный слон .

Я мог бы продолжать разглагольствовать, но я остановлюсь здесь ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...