Android no system space

Android Studio: на устройстве не осталось свободного места

Записная книжка рассеянного [в пространстве и времени] программиста

Android Studio: на устройстве не осталось свободного места

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

И так каждый раз. А вся проблема в том, что студия использует /tmp для распаковки установочных архивов перед копированием.

И чаще всего места там катастрофически недостает.

Во многих дистрибутивах размер раздела выставляется равным половине объема озу. Решений несколько и каждый применяет то, которое ему нравится больше.

Временное увеличение размера /tmp

Чем плохо: система активно начнем использовать подкачку и ей может просто не хватить суммарного объема свопа и ram.

Переназначение временной директории для студии

В открывшийся файл дописываем указание временной директории для виртуальной машины.

Минус подхода: вся инфраструктура будет использовать эту временную директорию (компиляция, запуск и прочее), что приведет к замедлению работы если директория находится на диске (и неважно ssd это или hdd).

А еще все настройки будут теряться при обновлении студии (они хранятся в каталоге с настройками студии.

Есть другой вариант, позволяющий вынести настройки в глобальную область.

Указать временную директорию для всех приложений java

Прописать в .bashrc

Это наименее разумный способ — он заставит абсолютно все java-приложения использовать указанную директорию.

Указать отдельное размещение для распаковки временных файлов в момент установки

Самый разумный способ, имхо. Делать это нужно непосредственно перед тем, как вы нажмете кнопку “обновить”.

Литература

RSS feed This page was generated by GitHub Pages.

Источник

How to Clean up Your Android Device and «Other» Storage?

Have you ever run into this situation on your Android devices, when you were trying to download some Apps or videos to your phone, an «insufficient storage» message on your phone’s notification bar and, there are large amount of data usage in your internal memory which displayed as «other». If you are reading this article, I guess it’s probably because that you’ve run into this trouble on your device or it was performing even worse.

So how to clean up your Android device, how to clear the «other» storage to release more space? Before looking for a third-party app, why not trying with the Android system itself? Sometimes, the easiest way may be the best way. Check the steps below. Also please kindly note that the follow tips are based on my own Huawei Android 6.0 Marshmallow, as we know, Android devices’ feature are different from each other resulted from various version and brand, so the operation below will be a little differences with yours.

Part 1: Clean up your Android device and «other» storage.

Step 1 Manually clean the app’s cache.

Cache is basically a storage area where data or frequently used processes are saved for quicker access in the future. Many apps on our device are prone to download many images, text, flash, videos etc automatically, if don’t clean them regularly, before long, they will take up large space on your device. So by doing a cleaning of app’s cache you can save much memory of your device and this won’t do any harm or loss to your phone.

Читайте также:  Обновление андроида через wifi
  • Go to the Settings Menu;
  • Click on Apps;.
  • Choose an app that is taking up a lot of space;
  • Click the button Storage and Clear Cache;

    If you’re running Android 6.0 Marshmallow on your device, like my Huawei Android 6.0, simply click on Files and then Clean up. This only can clear your app’s cache, your app residual trash, unused app packages will also be detected and, on the advanced management of storage, you can check all your data usage exhaustively, and select certain contents to clean up.

    Step 2 Application restore.

    Basically, some gaming apps and messaging apps like WhatsApp may save much gaming data or chat record which takes up large space, and that’s what we usually see the «Other» storage when analyzing the storage. To clean up these data, of course, first you should make sure you no longer need them or already backed up them, then do the cleaning. Some Android version and device version supports restore applications, which could restore the apps to its origin without uninstalling them:

  • Go to the Files Menu;
  • Click on Clean up;
  • Find the Storage manager tab after scanning process was done;
  • Choose Application restore;
  • Select the app which takes up large space to restore.

    Note: the process of restore will clean up all the app data, so before restoring the apps, you must need to make sure that you no longer need the data or already backed up them.

    Step 3 Factory reset your device.

    If the above steps still could not release your space, the ultimate method, restoring your phone to factory settings like how they were the day it came out of the box. All your data such as contacts, call logs, photos, apps, phone settings won’t be there anymore. I recommend that if your phone has been used over one year and works very slowly, this option could basically give your phone a new life. Of course, do not forget to backup your phone before doing this.

  • Go to Settings, Advanced settings;
  • Click on Backup and Reset;
  • Make a backup by clicking on Data backup;
  • Click on Factory Data Reset;
  • Restart your phone.

    Part 2: Other tips and tricks.

    Backing up your data to cloud or use an external memory device such as a microSD card if your device supports also could help. Besides, remember to uninstall the apps you don’t really need, sometimes it may release large space than you expected. You can re-install it when you need it.

    Of course, using a third-party app to put your phone in control is a good option as well. In this article, DiskUsage and CCleaner are my two recommendations. DiskUsage could help you identify which files are using up the most space on your phone visually after scanning your phone, of course it will also let you select which ones to delete to release the space. The other one is CCleaner, you may know this App as it is also the most popular application on the computer. It supports to scan all types of data saved on your device and list all the apps with the memory taken up, on the simple user interface, and then recommend what should be deleted after the analysis. Both Apps could be found in Google store.

    Please kindly note that clean up your phone just a way to release the space, but doesn’t mean a performance enhance of your phone, including the factory resetting, it may enhance your Android phone’s performance temporarily, before long, it freezes again since the performance of most Android phone are related to their hardware, so don’t mistakenly believe some third-apps claim that they could give your device a better performance. If your phone is too old to perform well, it’s just the time to switch your phone.

    Читайте также:  Brawl stars android код

    Part 3: Recommendation tool: Comprehensive phone manager.

    Syncios Mobile Manager

    Syncios Mobile Manager is an easy-to-use and powerful iOS & Android Mobile manager, which is well-designed for users who want to manage device contents on PC. It allows you to export contacts, apps, photos, music, ringtone, videos, SMS messages, eBooks and more.

    • Sync contacts, messages, call history, audio, photos, videos and other contents to computer.
    • Import photos, videos, audios and more media files from computer to iOS/Android devices.
    • Help to organize every iOS devices/Android’s file.
    • Handy tools: One-Click Backup/Restore, HEIC Converter, Photo Compression, Ringtone Maker.

    Syncios iOS & Android manager, an all-in-one management tool for all smartphones, supports transfer data between phone and computer easily and efficiently. Besides, it enables you manage, create, edit, delete device contents straightforward and one-click backup& resotre your phone, so if you want to backup your data before cleaning up your phone, it can be a great alternative. There are more features on its toolbox, like making ringtone, converting HEIC to JPG, compressing photos and etc. Truly a trick. Simply install it on your computer, worth a try.

    Источник

    Основы безопасности операционной системы Android. Native user space, ч.2

    Вступление

    Сегодня я продолжу рассматривать безопасность на уровне немного выше ядра. Во второй части мы рассмотрим, откуда появляются system.img, userdata.img и cache.img, а также как обеспечивается безопасность в Native user space.
    Всем кому интересно, добро пожаловать!

    Список статей

    Что подразумевается под Native user space

    Под Native user space подразумеваются все компоненты пространства пользователя, которые выполняются вне Dalvik Virtual Machine, и которые не являются частью Linux kernel. Native user space — это исполняемые файлы, скомпилированные под определенную архитектуру. К ним относятся исполняемые файлы, которые запускаются из init скрипта автоматически или в случае наступления какого-либо события, toolbox утилиты, а также некоторые исполняемые файлы, которые пользователь может запустить из-под shell.

    Начало

    Как я уже рассказывал в первой части, в основе Android лежит Linux kernel. Как и во всех Linux системах, в основе безопасности Android лежит access control. Т.е. каждый ресурс (например, файл) содержит мета-информацию о том, кто создал этот файл — owner (владелец) — и к какой основной группе (owner group) принадлежит owner (владелец). Каждый процесс запускается от имени какого-то user (пользователя). У каждого пользователя есть основная группа. Кроме того он может являться членом других групп. Таким образом, если к каждому ресурсу прикрепить информацию (в формате rwxrwxrwx) о том, кто может читать/писать/исполнять ресурс (например, файл), то можно контролировать доступ к этому файлу. Например, файлу можно назначить разрешения: что может делать с этим файлом owner (владелец) этого файла; что могут делать пользователи, которые входят в состав owner group; что могут творить все остальные. Здесь об этом можно почитать подробнее.

    Но у Android есть некоторые отличия. Во-первых, изначально Android — это операционная система для телефонов, которые, как известно, относятся к очень личным вещам и которые мы не любим давать в чужие руки. То есть она была задумана как операционная система, у которой только один пользователь. Поэтому было принято решение использовать различных Linux users для обеспечения безопасности (для каждого приложения — отдельный пользователь, как я уже рассказывал в первой статье). Во-вторых, в Android некоторые user (пользователи) и их UID (идентификаторы) были жестко запрограммированы в систему, что вызывает очень много нареканий людей связанных с безопасностью (хотя я, если честно, не очень понимаю, почему критикуется такой подход). Мы уже видели этих пользователей в файле system/core/include/private/android_filesystem_config.h Например, root имеет идентификатор 0, а system1000.

    Как я уже отмечал, процесс запускается от имени того же пользователя (UID), что и процесс, который запускает этот новый процесс, т.е. UID(calling_process) == UID (called_process). Первый процесс, который запускается в Android — init — запускается от имени root (UID == 0). Таким образом, по-идее, все процессы также должны быть запущены от имени того же пользователи. Так оно, наверное, бы и было. Но, во-первых, процессы, запущенные от имени привилегированного пользователя (а так же те, кто обладает определенными capabilities), могут изменять свой UID на менее привилегированный. А во-вторых, в Android при запуске демонов в init.rc скрипте так же можно указать, с привилегиями какого пользователя и каких групп запускать данный процесс.

    Читайте также:  Android starting intent from service

    Все процессы, которые будут запущены через этих демонов, уже не будут иметь root привилегии.

    System, data и cache

    Я столько раз анонсировал эту тему, что можно было подумать, что она очень сложная и запутанная. На самом деле, это не так. System.img, userdata.img и cache.img — то, что получается в результате компиляции операционной системы Android. То есть в результате сборки системы получаются эти три файла, которые мы и записываем на наше устройство.

    Но самое важно здесь не это. Благодаря тому, что в Android системе user name и UID системных пользователей жестко запрограммированы, уже на этапе компиляции мы можем определить права доступа различных системных пользователей к различным директориям в данных образах. Эти права доступа указаны в файле system/core/include/private/android_filesystem_config.h, который мы уже рассматривали в первой статье. Права доступа определяются отдельно для директорий (android_dirs[]) и отдельно для файлов (android_files[]) следующим образом:

    А функция static inline void fs_config(const char *path, int dir, unsigned *uid, unsigned *gid, unsigned *mode, uint64_t *capabilities), которая определена дальше в этом файле отвечает за выставление owner, owner group, capabilities и прав доступа. Эта функция вызывается во время сборки образа.

    В общем здесь всё должно быть более-менее понятно, за исключением установки флагов прав доступа (setuid и setgid) для некоторых файлов (например, для «system/xbin/su» права доступа определены как 06755, где первая 6 означает, что выставлен флаг установки ID пользователя (4) и флаг установки ID группы (2)). Установка этих флагов означает, что пользователь может повысить права запускаемого процесса до уровня owner (владельца) файла или owner group (группы владельца). В случае Android, каждое приложение — это пользователь со своими UID и GID. Таким образом, по умолчанию если вы из своего приложения запускаете какой-нибудь native executable, он исполняется с теми же UID и GID, как и приложение его вызвавшее. Установка данных флагов прав доступа позволяет выполнить native executable с правами владельца. В нашем случае, владелец — AID_ROOT (root). Происходит это следующим обрзазом system/extras/su/su.c:

    Т.е. вызываются функции setuid и setgid. В этом случае, если данные функции выполнились успешно, то процесс начинает работать от имени owner и owner group данного файла. В нашем примере, данный процесс получает права суперпользователя, т.е. он может делать всё, что ему пожелается 🙂 Подобная анархия не всегда оправдана, поэтому в Linux ввели понятие capabilities. Так приложению «run-as» не нужны всё права суперпользователя, ему достаточно иметь возможность только менять свой идентификатор, чтобы запускать приложения от имени различных пользователей. Кстати, capabilities похоже появились недавно — в Android 2.3.x я их не встречал.

    Безопасность

    В случае привилегированных программ (типа, su) необходимо ограничивать круг приложений, которые могут вызывать эти программы. В противном случае любое приложение может получить права суперпользователя. Поэтому очень часто в такие программы встраивают проверку по UID:

    Т.е. программа вначале проверяет, от чьего имени запущен вызывающий процесс, используя функцию getuid(). А потом сравнивает эти значения со значениями, которые жестко запрограммированы в систему. В данном случае, только процессы запущенные от имени пользователей «system» и «root» имеют право использовать su.

    Заключение

    В данной статье мы закончили разбирать, как обеспечивается безопасность на уровне Native user space. В следующих статьях я планирую разобрать, как работают permission (разрешения), но в связи с большой текущей загрузкой не знаю, когда приступлю к их написанию. Как всегда, буду очень рад дополнениям и исправлениям.

    Источник

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