Data local tmp android

Android: разрешение запрещено для / data / local / tmp / *

Я пытаюсь запустить сценарий оболочки через приложение Android. У сценария есть команда, которая просто запускает банку на устройстве. Когда я запускаю эту команду непосредственно в оболочке с помощью adb, все работает нормально. Но когда я запускаю его через скрипт с помощью приложения Android, я получаю исключение, исключенное из разрешения (open failed: EACCES (Permission denied)) для файлов, созданных в папке / data / local / tmp. Может ли кто-нибудь помочь в решении этой проблемы?

Это то, что выглядит мой манифест

Если я правильно понял сценарий, вы создаете сценарий «на лету» и используете /data/local/tmp в качестве простого места, которое является общедоступным и исполняемым. Однажды это было возможно. Но в последних версиях Android безопасность была ужесточена.

Приложение может выполнять файлы под /data/data/$ . Вы можете использовать getContext (). GetFilesDir (), чтобы надежно получить полный путь. Обратите внимание, что вам все равно нужно использовать chmod 500 чтобы убедиться, что файл имеет разрешение на выполнение.

Если у вас есть исправленные исполняемые файлы (бинарные файлы или скрипты), которые необходимо установить с вашим приложением, есть хитроумный трюк, позволяющий установщику системного пакета заботиться обо всем этом: убедитесь, что файл имеет имя « lib something .so» «И поместите его в каталог /libs/armeabi в корне проекта Eclipse. После установки файлы будут присутствовать в getContext (). GetApplicationInfo (). NativeLibraryDir каталог с установленными разрешениями.

PS Вам не нужно разрешение WRITE_EXTERNAL_STORAGE для работы (возможно, вам это нужно для других вещей, которые делает ваше приложение).

PPS Вы можете запускать сценарий оболочки из любого места, включая /sdcard , и для сценария вам не нужны исполняемые разрешения. Вместо этого используйте sh -c source full.path.to.script .

Я думаю, причина в том, что ваш Андорид не был укоренен. «/ Data» имеют разрешение root. Поэтому сначала запустите свой телефон и дайте своему приложению разрешение. Вы можете попробовать команду: «su» int изменить оболочку на root.

Вы можете использовать интерфейс adb для копирования и / или перемещения файлов в папку /data/local/tmp но если вы хотите использовать / видеть их в приложении терминала, вам нужно сначала (в интерфейсе adb)

Затем создайте папку внутри папки. пример

Следующий изменить разрешения

Теперь у вас есть папка, которую вы можете читать и писать.

Несколько вещей, которые я хотел бы знать, это то, как заставить систему думать, что su бинарный файл находится в папке /system/bin (без копирования), потому что я могу получить только доступ tmp … root, потому что даже с доступом root, я Не может повторно установить системный каталог как rw потому что zte-paragon имеет свой системный раздел, отформатированный как файловая система только для чтения

Убедитесь, что местоположение /data/local/tmp выполнено на вашем устройстве:

Если это не так, вы ничего не можете сделать, и вам нужно использовать стандартное хранилище (внутреннее /data/data/ или external /sdcard/ ).

Убедитесь, что вы сделали файл доступным для чтения.

Источник

Data local tmp android

Для начала приведу информацию относительно памяти телефона найденую мною на одном из сайтов.

    1. RAM (ОЗУ)

RAM (ОЗУ) — это память «с произвольным доступом», то есть т.н. оперативная память, куда программное обеспечение (ПО) записывает и считывает информацию быстро (и без эмуляции). Содержимое оперативной памяти очистится при пропадании питания, например, если телефон выключить. Объём оперативной памяти решает, сколько приложений можно запускать одновременно, или как большой файл может быть загружен в память для работы (просмотр, редактирование и т.д.). Возможна ошибка «Недостаточно памяти», если память исчерпана и не получается запустить программу. Android 2.2 знает, какие приложения можно убрать из RAM, когда необходимо. До Android 2.2, максимум 256 Мб оперативной памяти поддерживалось.

    2. ROM (ПЗУ)
Читайте также:  Font size xml android

ROM (ПЗУ) — это память только для чтения (Read-Only Memory). То, что в ней хранится, никогда не может быть изменено (записывается однократно на при изготовлении телефона); и ROM (ПЗУ) хранит данные даже без питания.

В Android-телефоне ROM разбита на несколько разделов. Одна часть для ОС (операционной системы). Раздел ОС защищён, и вы не сможете писать в него без прав root. Root — это получение прав супер-пользователя операционной системы, тогда будет можно читать/писать в разделе ОС, например, заменить образ ОС (что, таким образом, позволяет использовать несколько разных операционных систем).

    3. Internal phone storage («Внутренняя память телефона»)

Internal phone storage («Внутренняя память телефона») — это вторая часть памяти, предназначенная для пользовательских данных, включая загруженные приложения и их сохраненные данные (из RAM). В Android 2.2, она монтируется в /mnt/asec, и в котором — apk-файлы загруженных приложений. Поэтому этот вид памяти называют Internal phone storage («Ёмкость внутренней памяти телефона»). Этот раздел подобен компьютерному внутреннему HDD (диску «С:» у Windows или «file system» у Ubuntu/Linux). Свободного пространства в Internal phone storage («Внутренняя память телефона») становится меньше, когда вы устанавливаете больше приложений. Это место можно проверит так: «Настройки» -> «SD-карта и память телефона» -> «Внутренняя память» (Internal storage). Может наступить момент, когда уже нельзя установить приложения — когда на Internal phone storage («Внутренняя память телефона») слишком мало свободного пространства; тогда нужно удалить ненужные программы.

    4. MicroSD / SDHC / SDXC . (есть и смартфоны без слота для карты)

Это единственный тип памяти, которую пользователь может расширить. Он аналогичен внешнему жесткому диску (External HDD) для компьютера. МикроSD монтируется в /etc/SDCARD на телефоне. Эту память можно увидеть в разделе «Настройки» -> «SD-карта и память телефона» -> «SD карта».

На MicroSD-карте можно хранить любые данные в виде файлов (фильмы, музыку, фотографии и так далее). По сути, можно использовать телефон в качестве т.н. «флэшки», то есть в качестве микроSD-карты. В Android 2.2 часть установленных приложений можно перенести из «Внутренняя память» (Internal storage) сюда — на SD-карту; следовательно, это экономит драгоценное пространство «Внутренней памяти» (Internal storage). Но не все приложения могут быть перемещены из «Внутренней памяти» на карту памяти SD. Поэтому даже добавление большой SD-карты не поможет, если «Внутренняя память» близка к заполнению.

При желании заменть SD-карту (например, на другую с большей пропускной способностью), не забудьте отключить («отмонтировать») текущую SD-карту, прежде чем физически вынимать её: «Настройки» -> «SD-карта и память телефона» -> «SD карта» -> «Отключить SD-Card» (ведь Android основан на Linux-е). Вставленная новая SD-карта будет автоматически установлена («примонтирована»).

Я не являюсь специалистом ни по OS Android, ни по Linux, поэтому простите мне ошибки в названиях и неточности в тексте.
Так вот, приобрели мы моей жене замечательный телефон «Samsung Galaxy Ace» под управлением OS Android. Приобрели его под моим настоянием, т.к. я, до этого немного сталкивался с «Android, и вариант с IOS, Windows и прочими Simbian категорически отвергал. Замечательный оказался телефончик, отзывчивый экран, шустрый процессор, понятная OS, всё восторгало. И я, как «специалист», принялся его всячески улучшать, устанавливать одни программы, удалять другие, экспериментировать с настройками, играть в игрушки, лазить в интернет. Всё супер!
Прошёл месяц такого активного творчества. И вдруг, появилось сообщение «память телефона заполнена». Ну заполнена так заполнена — не придал значения я, освободим, и удалил данные у какой то программы. Помогло, и продолжилось мучение телефона.
Прошло какое-то время, сообщение появилось снова, ну я по проторенной дороге удалил данные у другой программы, затем несколько программ. Помогло.
Прошло какое то время, сообщение появилось снова! Я в настройки – «Очистить ОЗУ» — всё ОК. Ненадолго, увы.

Читайте также:  Андроид ксиаоми редми 5 плюс

Залез в интернет, скачал программы по очистке памяти –очищают, но сообщение остаётся. Залез в интернет, начал разбираться, выяснил, что не хватает места в Internal storage («Внутренняя память»), а все эти программы чистят RAM (ОЗУ) и для решения моей проблемы не пригодны. Сообщение «Память заполнена» вылезало при заполненности внутренней памяти телефона более 160 из 181 Мб.
Начал искать за..лей памяти Internal storage, выяснил, что это обновления Карт Google и данные Android Market. Запретил картам обновляться, перестал пользоваться Marketом. Временно помогло.

Начал удалять всё подряд, нужное, не нужное. Постепенно удалил почти всё, включая Google Maps, Android Market, Skype, и много другого, чего наустанавливал ранее (осталась только любимая игрушка жены Lines). Всё помогало временно, сообщение в конце концов вылезало снова, а удалять было больше нечего, осталось только самое необходимое.
Жена пилит – «Всё ты, со своими экспериментами»

Залез в интернет, выяснил, что доступ к Internal storage можно получить имея root права. Станцевал с бубном в течении примерно часов 10, получил на телефоне root права. Как? – не помню. В форуме всё написано, но либо у меня уже мозги не те, либо на форуме пишет народ с не теми мозгами :rolleyes:
С помощью программы Link2SD, перенёс часть программ на карту SD. Это хорошо почистило память. Хватило примерно на месяц. Через месяц СМС опять не приходят.

Начал настраивать себя на снос и переустановку системы, всё не решался >-)
Залез в интернет, выяснил, что есть такие временные файлы с расширением rm. Нашёл их в папке data\local\tmp c помощью программы RootExplorer, удалил – помогло не надолго (объём их был около 3 Мб).
Залез в папку data основательно, прошерстил её различными способами. Нашёл кучу файлов с расширением log, в названии которых присутствует слово error и название различных программ, в том числе тех, которые я удалил давно. Размер каждого из них составлял около 2 Mb, а количество – около 30 шт. Удалил их все. И, о чудо, внутренняя память заполнена 62 Мб из 181 (и телефон работает). Надолго ли? Посмотрим, такое ощущение что чистить надо постоянно.

Источник

Как очистить системную память на Андроиде

На днях столкнулся с извечной проблемой большинства пользователей андроид устройств – как очистить системную память на Андроиде. К примеру, на моем телефоне Lenovo p780 её – 2 Гб. Не помню уже сколько там изначально было под пользовательские нужды, но за год у меня она вконец закончилась осталось всего 80 Мб, и это при том, что я посносил кучу приложений из внутренней памяти, а свободного места при этом никак не увеличилось… В инете просто тонны информации на этот счет все дают какие то советы, начиная от банальных – перенести приложения на SD карту до чистки системных приложений, но все это мне совсем не помогло. Некоторые даже советуют сделать общий сброс – но это уже вообще самый тяжелый случай. И пока с этим повременим. Так что пришлось самому во всем основательно разбираться и пробовать на свой страх и риск.

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

Перво на перво я сделал себе рут для полного доступа к памяти устройства и приступил к делу. Root доступ я получил с помощью программы для компьютера – Root Genius.

Как получить ROOT права на Андроид с помощью Root Genius

Все очень просто и понятно – разберется абсолютно любой пользователь.

1. Качаем программу Root Genius. Ссылка на оф. сайт . Установка не требуется.
2. Подключаем телефон к ПК – выбираем режим “Медиа устройство (MTP) и включаем отладку по USB:

Читайте также:  Sdk android studio соответствие модели android

3. Подтверждаем свой выбор:

4. Запускаем Root Genius

5. нажимаем большую кнопку Root и ожидаем несколько минут, наблюдая за процессом.

6. По завершении этой процедуры аппарат самостоятельно перезагрузится и на экране компьютера вы увидите надпись об успешном рутировании вашего устройства.

Всё. Рут доступ получен. Идем дальше.

Как очистить системную память на Андроиде

Для начала нужно установить на свое Android устройство файловый менеджер ES Проводник. Конечно файловых менеджеров огромное количество, собственно как и способов рутировать свой аппарат, но я описываю как сам делал, а вы уж сами можете определиться как вам удобнее.

Запускаете на своем андроиде ES проводник и для начала нужно проделать небольшие настройки. Нажимаете на три полоски в левом верхнем углу:

или сделайте тап вправо, чтобы вызвать доп. меню. Опускаетесь в самый низ и включаете режим Root-проводник, чтобы переключатель загорелся синим:

Теперь вы сможете добраться до системных приложений и настроек и теперь главное не удалить ничего лишнего!

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

  • /data/app
  • /data/system/
  • /data/data
  • /system/ – сюда, я думаю вообще не стоит лезть .

Собственно все действия по очистке системной памяти необходимо проводить в папке /data, но повторюсь еще раз, делайте это очень аккуратно. Я, на всякий случай, прежде чем удалять что нибудь, копировал все на карту памяти, не знаю помогло бы это как нибудь или нет, но, как говорится береженого Бог бережет. Это как раз тот случай, когда нужно “сто раз отмерить и только один раз отрезать”.

Какие папки я почистил для освобождения места

В папке data/log_other_mode я удалил файлы:

  • kernel_log – весил 88 Мб;
  • kernel_log.1 – весил 20 Мб;
  • main_log – 9 Мб.

В data/local/tmp нарисовалась какая то непонятная папка под именем 94709470 и весом аж 337 Мб – почитал в инете, все твердят что data/local/tmp можно чистить смело. Что я и сделал, вернее мелкие файлы какие то я оставил, а вот папку удалил.

Дальше, /data/dalvik-cache – по описанию здесь находится кеш-память, для работы Java машины Dalvik которая является «двигателем» в Android отвечающая за запуск и работу приложений. Некоторые советуют и эту папку почистить. Но не полностью, а лишь те приложения, которые вы уже удалили, и после которых, по каким либо причинам, остался мусор. У меня она весила 310 Мб. Вручную перебирать десятки файлов с непонятным названием стало в лом, поэтому я рискнул очистить её полностью. Сразу же после этого начали выскакивать ошибки поэтому я перезагрузил телефон. Первый раз запускался он чуть чуть дольше, я уж было слегка запаниковал, но все обошлось, видимо он просто делал кэш для необходимых приложений. Так что, делая вывод последнюю папку /data/dalvik-cache лучше не трогать, а если и чистить, то выборочно.

Итог проделанной работы составил 330 Мб свободной системной памяти. Удалось освободить 250 Мб. Очень даже неплохо. Конечно можно еще пошерстить, но мне этого с головой хватит, так что на этом пока с экспериментами закончим.

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

Источник

Оцените статью