- Как найти папки data и system на Android: простой путь
- How to back up your Android phone
- How to back up your Android phone with Google
- Photos and videos
- Other files
- Settings, apps, SMS, call history, and much more!
- How to back up your Android phone with Amazon Photos, OneDrive, and others?
- Backing up to your computer
- Using Android File Transfer
- Wireless sync with Syncthing
- How to use Plex camera upload to back up Android phone
- Other options to back up Android phone
- Unrooted phone
- Rooted phones
- Как работает Android, часть 1
- Немного фактов
- Android is Linux
- It’s all about apps
- Binder
Как найти папки data и system на Android: простой путь
Иногда пользователю устройства с системой от Google приходится столкнуться с нетривиальными задачами, решение которых требует сначала найти папки data и system, где находятся важные файлы. Как это сделать на Android, мы расскажем в статье.
В первую очередь, пользователю понадобится файловый менеджер, который показывает не разбивку по мультимедийным данным, а реальное содержание диска. Иногда такие менеджеры встроены в прошивку, в противном же случае можно обратиться в Play Store, где есть и бесплатные варианты.
Далее с помощью него выходим в корень системы, обозначенный как «/». В ряде менеджеров для быстрого доступа к оному есть отдельный пункт в Action Bar, а где-то нужно просто нажать на знак «..» или выбрать «Корень файловой системы». Именно тут на Android и можно обнаружить папки data и system, имена их, кстати, тоже начинаются с косой черты.
Стоит обратить внимание, что данные разделы, особенно второй, содержат критически важную информацию. Если у пользователя имеется root‑доступ и он удалит файлы в папках data и system, это может вызвать проблемы с работоспособностью устройства.
Заметили ошибку? Выделите её и нажмите Ctrl+Enter или сообщите здесь.
Источник
How to back up your Android phone
There’s always the possibility that you’ll lose your phone or drop it in water and lose everything. Thankfully, there are plenty of ways to back up Android devices, ensuring that even if something happens to your phone, you won’t lose all those embarrassing photos of your kids you were going to show at their 21st birthday.
Whether it be through Google, a third-party app, or your computer, here are multiple ways to back up phones to make sure you never find yourself in a situation where you end up with lost data.
Editor’s note: All steps in this article were put together using a Pixel 4a running Android 11 and an Asus ZenBook Pro Duo running Windows 10 Pro. Remember steps might differ depending on your device and software.
How to back up your Android phone with Google
Backing up most of your data is pretty easy with Google, and it has gotten far easier over the past few years. Unfortunately, there isn’t yet a one-stop backup method for Android phones through Google, but different data types individually.
Photos and videos
If you’re not already using Google Photos, you should be. The service automatically backs up every photo and video you take to the cloud, so you’ll never have to back up your media ever again manually. If the Photos app isn’t already on your phone, you can download it. Once it’s installed, you’ll need to make sure Photos is set to back up your files automatically.
How to sync your images to Google Photos:
- Open the Google Photos app.
- Tap on the profile imaged in the top-right corner.
- Select Photos settings.
- Tap Back up & sync.
- Toggle on Back up and sync.
Just keep in mind uploading to Google Photos is no longer completely free. Starting June 1, 2021, any new photos and videos you upload will count toward the free 15GB of storage that comes with every Google Account. Of course, you can pay for more storage .
Worry not, as any photos or videos you may have uploaded in high-quality before June 1, 2021, will not count toward your 15GB of free storage and will still be considered free and exempt from the storage limit.
Other files
Google Drive lets you store your other files in the cloud, which means they’ll be accessible from any connected device.
How to store your files in Google Drive:
- Download the Google Drive app , if you don’t have it already.
- In the app, press the + button.
- Press Upload.
- Select the file(s) you’d like to back up.
- That’s it!
Settings, apps, SMS, call history, and much more!
Google Drive and Photos make Google’s backup solutions fragmented, but things get much more seamless with all other essential data. Android’s native cloud backup solution can store settings, apps, SMS messages, and even your call history. This makes it easy to restore everything on a new phone.
How to back up Android to Google One:
- Open the Settings app on your Android phone.
- Tap on Google.
- Go into Backup.
- Toggle on Backup by Google One.
- You can also go into Google Account data and select other data you can sync. This includes the Calendar, Docs, Google Fit, Keep, and much more.
- Go back to the main Backup settings.
- Tap on Back up now.
How to back up your Android phone with Amazon Photos, OneDrive, and others?
Cloud services are a dime and a dozen, and Google isn’t the only one offering oodles of storage. Microsoft’s OneDrive is a very competent alternative. If you subscribe to Office 365, the company tosses in 1TB of online storage for free.
Elsewhere, Amazon Photos offers unlimited photo storage plus 5GB video storage with a Prime subscription. Meanwhile, 100GB storage is a mere $1.99/month or $19.99/year, making it an affordable, albeit not as tightly integrated alternative.
The biggest downside of straying from Google’s ecosystem is the effort required to make sure all your content is copied or synced. These aren’t as tightly integrated to Android, so they need a bit more work. Check out more options in the article linked below!
Backing up to your computer
Using Android File Transfer
Instead of backing up your device to the cloud or to the phone itself, you might want to back up all your files to your computer for easy access later on. Luckily, this is pretty easy to do, and the process is pretty much the same whether you’re a Mac or PC user. Mac users will need to download and install the Android File Transfer app, though.
How to back up your Android device to a computer:
- Plug your phone into your computer with your USB cable.
- On Windows, go to My Computer and open the phone’s storage.
- On Mac, open Android File Transfer.
- Drag the files you want to back up to a folder on your computer.
Yes, the Android File Transfer app is quite clunky and doesn’t always do the job. If manually copying over files is your preferred option, it might be a good idea to invest in a better app. Commander One is an excellent app that lets you do just that. Android Authority’s Oliver Craig gives us all the information on the best way to transfer files between an Android phone and Mac.
Wireless sync with Syncthing
What if you could automatically back up all your images and files to your computer or NAS drive without having to connect a cable? That’s where sync utilities come into action.
Syncthing is a great utility to ensure all my photographs and additional files are downloaded to the computer. The premise is simple; install an app on your phone and select a folder to constantly keep an eye on. Meanwhile, a client runs on your computer, allowing you to link up with your phone.
Now, whenever the app on the phone detects a change or file addition in a watched folder, it immediately sends over a copy to the computer. Simple and reliable. It just works. Of course, you can use it as a standard sync utility too, but I prefer to have all my files sent one way to the computer to have a copy available even if I delete something from my phone.
How do you set up Syncthing:
- Install the Syncthing app from the Play Store.
- Install the Syncthing app on your PC or Mac.
- It is a good idea to pair a device before creating folder pairs. Head to the Devices tab and tap the + icon.
- You can either enter the device name or click the bar code scan to add the device pair using a QR code.
- That’s it. Head over to the Folders tab and tap the + icon.
- Select the folder you want to keep an eye on. Select one-way sending or sync. You can even set the folder to receive data if you want to add content to your phone.
- Within a few moments, you will be asked to confirm the pair on your PC, and synchronization will start.
How to use Plex camera upload to back up Android phone
Another great option is the camera upload functionality built into Plex. This is particularly handy if you already use Plex as a media server. An advantage over other backup solutions is that the solution works remotely and even lets you browse your entire photo library.
How to set Plex camera sync:
- Head over to the Plex app, tap the gear icon to enter Settings, and then the Camera upload option.
- The next step is to select a library. You can choose to have a single library for all your phones or create separate ones for family members.
- Next, select or create an album. If you are backing up multiple phones, you can create separate albums for each device or sync to a shared library.
- Finally, you can allow Plex to back up images over mobile data. This is a good idea if you have a generous data allowance.
That’s it. Sit back and watch as Plex copies over all your images to your computer. You can also pop over to the newly created photos tab to take a look at all your pictures. Since Plex has apps for nearly every platform out there, you can now beam up your photos to the big screen, or any other phone or tablet with Plex signed in.
Other options to back up Android phone
Google’s services are excellent, but if you’re looking for a more comprehensive solution — one that backs up everything at once, that is — you might need to use a third-party app.
Unrooted phone
There are many great apps for backing up your data, and one of the best is Super Backup & Restore . It allows you to back up individual items on your phone, such as apps, contacts, SMS, calendars, voice calls, and more. Users can define where the backups go for easy locating later, and you can also schedule automatic backups along with backing up to cloud storage.
How to back up Android using Super Backup & Restore:
- Download Super Backup & Restore.
- You will see a list of item categories that you can back up (Pictures, Apps, etc.).
- Select which category you want to back up.
- Select the individual items you’d like to include in your backup.
- Tap on Backup.
Rooted phones
While most people won’t need to root their phones to back up what they need to, rooting your phone can help you back up a few more things . By rooting your phone, just about everything on your phone can be restored, including stuff like app settings, system data, and even Wi-Fi passwords. One of the most used apps for backing up a rooted phone is Titanium Backup. W hile Titanium Backup certainly looks a little outdated, it’s a compelling app indeed. Here’s how to back up your files using Titanium Backup:
- Download and open the app.
- Tap the Menu button in the top-right corner and select Batch actions.
- Select everything you want to back up.
- If this is the first time you’re backing up your device, you’ll at least want to select backup all user apps and backup all system data.
- You can also choose to back up the files to Dropbox or Google Drive, which you may want to do if you lose your phone.
- You can also opt to create a recovery-compatible .zip backup file.
- This ensures that even if your phone’s system files become corrupt or something else happens that prevents you from booting up your phone, you’ll be able to restore your phone from the backup.
Источник
Как работает Android, часть 1
В этой серии статей я расскажу о внутреннем устройстве Android — о процессе загрузки, о содержимом файловой системы, о Binder и Android Runtime, о том, из чего состоят, как устанавливаются, запускаются, работают и взаимодействуют между собой приложения, об Android Framework, и о том, как в Android обеспечивается безопасность.
Немного фактов
Android — самая популярная операционная система и платформа для приложений, насчитывающая больше двух миллиардов активных пользователей. На ней работают совершенно разные устройства, от «интернета вещей» и умных часов до телевизоров, ноутбуков и автомобилей, но чаще всего Android используют на смартфонах и планшетах.
Android — свободный и открытый проект. Большинство исходного кода (который можно найти на https://source.android.com) распространяется под свободной лицензией Apache 2.0.
Компания Android Inc. была основана в 2003 году и в 2005 году куплена Google. Публичная бета Android вышла в 2007 году, а первая стабильная версия — в 2008, с тех пор мажорные релизы выходят примерно раз в год. Последняя на момент написания стабильная версия Android — 7.1.2 Nougat.
Android is Linux
По поводу такой формулировки было много споров, так что сразу поясню, что именно я имею в виду под этой фразой: Android основан на ядре Linux, но значительно отличается от большинства других Linux-систем.
Среди исходной команды разработчиков Android был Robert Love, один из самых известных разработчиков ядра Linux, да и сейчас компания Google остаётся одним из самых активных контрибьюторов в ядро, поэтому неудивительно, что Android построен на основе Linux.
Как и в других Linux-системах, ядро Linux обеспечивает такие низкоуровневые вещи, как управление памятью, защиту данных, поддержку мультипроцессности и многопоточности. Но — за несколькими исключениями — вы не найдёте в Android других привычных компонентов GNU/Linux-систем: здесь нет ничего от проекта GNU, не используется X.Org, ни даже systemd. Все эти компоненты заменены аналогами, более приспособленными для использования в условиях ограниченной памяти, низкой скорости процессора и минимального потребления энергии — таким образом, Android больше похож на встраиваемую (embedded) Linux-систему, чем на GNU/Linux.
Другая причина того, что в Android не используется софт от GNU — известная политика «no GPL in userspace»:
We are sometimes asked why Apache Software License 2.0 is the preferred license for Android. For userspace (that is, non-kernel) software, we do in fact prefer ASL 2.0 (and similar licenses like BSD, MIT, etc.) over other licenses such as LGPL.
Android is about freedom and choice. The purpose of Android is promote openness in the mobile world, and we don’t believe it’s possible to predict or dictate all the uses to which people will want to put our software. So, while we encourage everyone to make devices that are open and modifiable, we don’t believe it is our place to force them to do so. Using LGPL libraries would often force them to do just that.
Само ядро Linux в Android тоже немного модифицировано: было добавлено несколько небольших компонентов, в том числе ashmem (anonymous shared memory), Binder driver (часть большого и важного фреймворка Binder, о котором я расскажу ниже), wakelocks (управление спящим режимом) и low memory killer. Исходно они представляли собой патчи к ядру, но их код был довольно быстро добавлен назад в upstream-ядро. Тем не менее, вы не найдёте их в «обычном линуксе»: большинство других дистрибутивов отключают эти компоненты при сборке.
В качестве libc (стандартной библиотеки языка C) в Android используется не GNU C library (glibc), а собственная минималистичная реализация под названием bionic, оптимизированная для встраиваемых (embedded) систем — она значительно быстрее, меньше и менее требовательна к памяти, чем glibc, которая обросла множеством слоёв совместимости.
В Android есть оболочка командной строки (shell) и множество стандартных для Unix-подобных систем команд/программ. Во встраиваемых системах для этого обычно используется пакет Busybox, реализующий функциональность многих команд в одном исполняемом файле; в Android используется его аналог под названием Toybox. Как и в «обычных» дистрибутивах Linux (и в отличие от встраиваемых систем), основным способом взаимодействия с системой является графический интерфейс, а не командная строка. Тем не менее, «добраться» до командной строки очень просто — достаточно запустить приложение-эмулятор терминала. По умолчанию он обычно не установлен, но его легко, например, скачать из Play Store (Terminal Emulator for Android, Material Terminal, Termux). Во многих «продвинутых» дистрибутивах Android — таких, как LineageOS (бывший CyanogenMod) — эмулятор терминала предустановлен.
Второй вариант — подключиться к Android-устройству с компьютера через Android Debug Bridge (adb). Это очень похоже на подключение через SSH:
Из других знакомых компонентов в Android используются библиотека FreeType (для отображения текста), графические API OpenGL ES, EGL и Vulkan, а также легковесная СУБД SQLite.
Кроме того, раньше для реализации WebView использовался браузерный движок WebKit, но начиная с версии 7.0 вместо этого используется установленное приложение Chrome (или другое; список приложений, которым разрешено выступать в качестве WebView provider, конфигурируется на этапе компиляции системы). Внутри себя Chrome тоже использует основанный на WebKit движок Blink, но в отличие от системной библиотеки, Chrome обновляется через Play Store — таким образом, все приложения, использующие WebView, автоматически получают последние улучшения и исправления уязвимостей.
It’s all about apps
Как легко заметить, использование Android принципиально отличается от использования «обычного Linux» — вам не нужно открывать и закрывать приложения, вы просто переключаетесь между ними, как будто все приложения запущены всегда. Действительно, одна из уникальных особенностей Android — в том, что приложения не контролируют напрямую процесс, в котором они запущены. Давайте поговорим об этом подробнее.
Основная единица в Unix-подобных системах — процесс. И низкоуровневые системные сервисы, и отдельные команды в shell’е, и графические приложения — это процессы. В большинстве случаев процесс представляет собой чёрный ящик для остальной системы — другие компоненты системы не знают и не заботятся о его состоянии. Процесс начинает выполняться с вызова функции main() (на самом деле _start ), и дальше реализует какую-то свою логику, взаимодействуя с остальной системой через системные вызовы и простейшее межпроцессное общение (IPC).
Поскольку Android тоже Unix-подобен, всё это верно и для него, но в то время как низкоуровневые части — на уровне Unix — оперируют понятием процесса, на более высоком уровне — уровне Android Framework — основной единицей является приложение. Приложение — не чёрный ящик: оно состоит из отдельных компонентов, хорошо известных остальной системе.
У приложений Android нет функции main() , нет одной точки входа. Вообще, Android максимально абстрагирует понятие приложение запущено как от пользователя, так и от разработчика. Конечно, процесс приложения нужно запускать и останавливать, но Android делает это автоматически (подробнее я расскажу об этом в следующих статьях). Разработчику предлагается реализовать несколько отдельных компонентов, каждый из которых обладает своим собственным жизненным циклом.
In Android, however, we explicitly decided we were not going to have a main() function, because we needed to give the platform more control over how an app runs. In particular, we wanted to build a system where the user never needed to think about starting and stopping apps, but rather the system took care of this for them… so the system had to have some more information about what is going on inside of each app, and be able to launch apps in various well-defined ways whenever it is needed even if it currently isn’t running.
Для реализации такой системы нужно, чтобы приложения имели возможность общатся друг с другом и с системными сервисами — другими словами, нужен очень продвинутый и быстрый механизм IPC.
Этот механизм — Binder.
Binder
Binder — это платформа для быстрого, удобного и объектно-ориентированного межпроцессного взаимодействия.
Разработка Binder началась в Be Inc. (для BeOS), затем он был портирован на Linux и открыт. Основной разработчик Binder, Dianne Hackborn, была и остаётся одним из основных разработчиков Android. За время разработки Android Binder был полностью переписан.
Binder работает не поверх System V IPC (которое даже не поддерживается в bionic), а использует свой небольшой модуль ядра, взаимодействие с которым из userspace происходит через системные вызовы (в основном ioctl ) на «виртуальном устройстве» /dev/binder . Со стороны userspace низкоуровневая работа с Binder, в том числе взаимодействие с /dev/binder и marshalling/unmarshalling данных, реализована в библиотеке libbinder.
Низкоуровневые части Binder оперируют в терминах объектов, которые могут пересылаться между процессами. При этом используется подсчёт ссылок (reference-counting) для автоматического освобождения неиспользуемых общих ресурсов и уведомление о завершении удалённого процесса (link-to-death) для освобождения ресурсов внутри процесса.
Высокоуровневые части Binder работают в терминах интерфейсов, сервисов и прокси-объектов. Описание интерфейса, предоставляемого программой другим программам, записывается на специальном языке AIDL (Android Interface Definition Language), внешне очень похожем на объявление интерфейсов в Java. По этому описанию автоматически генерируется настоящий Java-интерфейс, который потом может использоваться и клиентами, и самим сервисом. Кроме того, по .aidl -файлу автоматически генерируются два специальных класса: Proxy (для использования со стороны клиента) и Stub (со стороны сервиса), реализующие этот интерфейс.
Для Java-кода в процессе-клиенте прокси-объект выглядит как обычный Java-объект, который реализует наш интерфейс, и этот код может просто вызывать его методы. При этом сгенерированная реализация прокси-объекта автоматически сериализует переданные аргументы, общается с процессом-сервисом через libbinder, десериализует переданный назад результат вызова и возвращает его из Java-метода.
Stub работает наоборот: он принимает входящие вызовы через libbinder, десериализует аргументы, вызывает абстрактную реализацию метода, сериализует возвращаемое значение и передаёт его процессу-клиенту. Соответственно, для реализации сервиса программисту достаточно реализовать абстрактные методы в унаследованном от Stub классе.
Такая реализация Binder на уровне Java позволяет большинству кода использовать прокси-объект, вообще не задумываясь о том, что его функциональность реализована в другом процессе. Для обеспечения полной прозрачности Binder поддерживает вложенные и рекурсивные межпроцессные вызовы. Более того, использование Binder со стороны клиента выглядит совершенно одинаково, независимо от того, расположена ли реализация используемого сервиса в том же или в отдельном процессе.
Для того, чтобы разные процессы могли «найти» сервисы друг друга, в Android есть специальный сервис ServiceManager, который хранит, регистрирует и выдаёт токены всех остальных сервисов.
Binder широко используется в Android для реализации системных сервисов (например, пакетного менеджера и буфера обмена), но детали этого скрыты от разработчика приложений высокоуровневыми классами в Android Framework, такими как Activity, Intent и Context. Приложения могут также использовать Binder для предоставления друг другу собственных сервисов — например, приложение Google Play Services вообще не имеет собственного графического интерфейса для пользователя, но предоставляет разработчикам других приложений возможность пользоваться сервисами Google Play.
Подробнее про Binder можно узнать по этим ссылкам:
В следующей статье я расскажу о некоторых идеях, на которых построены высокоуровневые части Android, о нескольких его предшественниках и о базовых механизмах обеспечения безопасности.
Источник