Android Cloud server. Android Cloud server

Strengths and weaknesses of a Cloud-hosted Android CI Server

Using a CI Server is a programming practice that is well established and not opened to debate anymore. Sometimes, it’s even a topic on which the IT Department has regained control of, managing and rationalizing the servers. Yet, as is often the case, mobile is following its own way: the technologies used can be considered non-standard among the company, the ecosystem is updated way more frequently than in other computing areas, and the need of running on a specific OS for iOS can be the fatal blow that leaves mobile developers on their own. Therefore, they frequently end up installing a mac mini in the open-space, in order to run their builds on it.

Whereas the problems related to using such installations are mostly shared between Android and iOS, the solutions differ: this article focuses on Android.

Limitations of an on-premise CI Server

When he sets its Jenkins Server up, the mobile developer will have to deal with the following issues:

  • How to install Jenkins on the machine? How to make it boot alongside the OS?
  • How to allow or forbid network access to the machine from the company’s intranet or the whole Internet?
  • On which privileges should Jenkins run (root or not)? On which session are the needed binaries and the Android SDK installed? Are the read/write rights managed correctly?
  • How to deal with the Jenkins and OS updates? And, more frequently, how to deal with the Android SDK updates?

So I Tried Cloud Android Smartphone

The mobile developer is not a devops! If he’s lucky enough, he will manage to deal with these issues and end up with a fair install. Occasionally, a weakness of this setup will arise and mess with the team, but overall, it’ll be livable.

Regardless the configuration and quality of the installation, a serious limitation will be present on this in-house CI Server: the need to have an Android simulator, emulator or device connected to run automated tests.

Why this need for an emulator? Android does not run on a standard JVM, but on Dalvik (or more recently, ART). Before a relatively recent update (and still incomplete to this day), tests written by the developers had to run on a Dalvik/ART VM, thus on an emulator or a device. (Note 1)

Using a device is hard to industrialize: it has to continuously stay on and plugged in. Data transfer through the USB cable is slow, but more important, the computer sometimes loses its connection with the device, requiring someone to physically disconnect and reconnect it to the machine. Unthinkable for a CI Server. The Android emulator is, therefore, the only viable solution. As it is quite slow to boot (it can take up to several minutes), developers often let an emulator run continuously on the server. If this allows a saving of a few minutes on each build, it also brings a few limitations:

  • All the projects built on the CI Server must work on the emulator’s Android version.
  • The server will only be able to run one job at a time. Otherwise, jobs may end up fighting for the emulator during the tests execution stage.
  • The CI Server will only be able to run the tests against the specific emulator’s Android version.
  • All the builds will be broken when the emulator will crash…

For the last few years, we have made it a habit to move to the Cloud all the vital services we use, but find painful to maintain. Does the Cloud have anything to offer from an « Android CI Server » perspective?

What the Cloud offers

Mobile specialized CI solutions can be found, alongside more standard platforms supporting Android. The following table was assembled by running the following project (available on github) on different platforms. This project contains a non-instrumented (JVM) test, and an instrumented espresso test, checking that a TextView contains the text « Hello world! ».

On the following table, the « Git » row tells whether the platform can read from any git repository accessible using SSH/HTTPS, or if it’s tied to Github. « Job count » states the number of different jobs it is possible to define then launch separately. « Distinction CI / Deploy » indicates if it is possible to differentiate CI jobs from jobs that go as far as deploying the APK. « Emulator configuration » tells the different Android emulator versions available, if the configuration has to be done manually (with code) or through a web interface. « Deploy » lists the plugins available from a web interface to deploy the app. Manually indicates that deploying is possible, but needs a gradle task or a shell script.

Note: Configuring the emulator on SnapCI must be done manually through code. I could not manage to start an emulator within a one-hour delay. The interface test could therefore not be run on this platform.

The first striking point is the lack of maturity from the different players, even if they all advertise Android support as being one of their feature.

GreenHouseCI and Travis might be sufficient on « basic » projects. The main limitation comes from the inability to differentiate a CI job from a delivery job. It is also impossible to follow any code quality metrics on those platforms.

CloudBees, which simply offers a Jenkins instance « as a service », is the only platform that seems mature enough today to host a professional project.

To differentiate the players regarding the price, the example project ran before is not relevant anymore. To assemble the following table, I considered an existing project, of about 140k LOC, on which every build takes 15 minutes, and is run 10 times per working day. The plans I selected are the cheapest ones allowing at least 5 users, and the execution of a minimum of 2 builds in parallel.

Every player but CloudBees offers fixed-price plans, depending on the user number and the number of builds that can be run in parallel.

On CloudBees, the monthly plan starts at 60. You then have to add 1,32 per build hour. The price thus varies with the load. With the same parameters as told previously, the total monthly price would drop to 104 with 10 minutes builds, and climb to 148 with 20 minutes builds.

An Android CI Server on CloudBees

It is not really a surprise to find that Jenkins, the reference solution regarding continuous integration, is still the most powerful option when hosted on the Cloud. In its « [email protected] » offer, CloudBees brings you a hosted Jenkins master instance. It will launch each of your builds on a dedicated virtual machine instantiated specifically for this occasion. As you are probably already using a Jenkins server today, migrating your jobs and plugins is easy.

It’s important to ensure that every instance booted to run one of your build has an up-to-date Android SDK installed. The use of Jake Wharton’s « sdk-manager » gradle-plugin is thus mandatory. The plugin will check that the sdk, build tools, support repositories and google libraries are up to date before letting you compile your project.

All the « OPS » issues that we enumerated in the first half of this article disappear on CloudBees. The master Jenkins never crashes (unless, of course, the whole platform experiences downtimes). Everything is siloed: each build leads to a slave instance being booted. This instance can be as fast as you want. Finally, you can choose, for each and every job, on which Android version you want the emulator to run to play your test suite.

This last bullet-point is a strength and a weakness at the same time.

Each project can now run its instrumented and interface tests on the lowest Android version you support on your app. But you can also choose to run those tests on a configuration matrix mixing for example the Android version, the device’s locale, and the screen size.

Playing with the emulator versions leads to reaching one of the limitations of CloudBees: the difficulty to boot emulators running on the latests Android versions. Official Android emulators are known to be « heavy », slow to boot and laggy. These flaws worsen as you increase the Android version. Additionally, it is impossible to benefit from hardware acceleration (whether GPU or HAXM) or from x86/64 versions on CloudBees. It is thus very difficult to reliably boot an emulator starting from version 4.4.4: the success rate is lower that 25%. (Note 2)

This limitation is frankly annoying, but is mitigated by various factors:

  • It is recommended to run your automated tests on the lowest Android version your project supports, because it is « easy » to unintentionally call methods that appeared later on the SDK. The current market status forces us to support at least Jelly Bean (Android 16), on which a third of the Android devices are still running. On our projects, the Jelly Bean Android emulator boots reliably in less than 90 seconds.
  • Solutions are emerging to allow executing instrumented tests « as-a-service » on emulators or real devices. We can for example mention Amazon’s « Device Farm », or the upcoming Google’s « Cloud Test Lab ». Those tools will probably be mature enough when existing apps with large instrumented test harnesses will target KitKat or Lollipop as the lowest supported versions.
  • Projects currently launched or launched recently should not run into the same problems. New application architectures (MVP or even MVVM), in conjunction with improvements on development tools, allow the developers to write mainly non-instrumented tests, leaving the use of emulators to the most complex scenarios and interface tests.

Conclusion

On my previous Android project (140k lines of code, 3 years of development), the migration from an on-premise Jenkins server to CloudBees halved the build time of the CI job, and split by 4 the build time for the delivery job. Despite a few troubles discussed before with emulators during the migration, it has clearly been beneficial to the project.

The caveats around emulators should only slow down projects that are currently in production, supporting « very recent » Android versions (such as KitKat) as their minimum, and relying on large instrumented tests harnesses. I hope that the rise of better Android emulators or more mature solutions to access emulators and devices « as-a-service » should allow me to reconsider this limit soon.

  • A non-official tool allowing to run tests on the local JVM, Robolectric, has been around for a few years. This tool has trouble following the developer-tools update rhythm imposed by google. As a result, your whole test-suite can be broken by a simple build tools update. It is thus a solution that raises debates in the community, and that I decided to ignore in this article.
  • On this topic, the CloudBees support is powerless and recommends using custom slaves hosted on-premise, or on a Cloud supporting hardware acceleration. It is however specifically to avoid having to maintain custom slaves or VMs that we started this talk about migrating to the Cloud.

Un commentaire sur “Strengths and weaknesses of a Cloud-hosted Android CI Server”

Hi! Great piece! I came across your blog via Although the piece is a year old our GreenhouseCI team has worked hard night and day and a lot have improved. We have added many new features and awesome integrations ( eg. testing on real devices). Would you be interested in taking it a new spin and wrapping your ideas into a blog post? I promise GreenhouseCI is the CI tool out there for mobile app developers that one can’t resist;) With best, Marie

Turn old Android Phones into Dedicated Servers

Android Cloud server

Android Cloud Gaming Solution Brief

Ampere and NVIDIA Android Cloud gaming SDK

Ampere Solutions for Cloud Gaming

With Cloud gaming gaining in popularity and the Metaverse pending as a major XR use case, there is high demand for centralized resources built to render, encoder, and stream from the Cloud to different devices, like mobile handsets and wearable devices. With these devices connected by 5G, the combination of low latency and high bandwidth provides a better experience for many use cases including Cloud gaming and the metaverse.

The Ampere Altra (80 cores) and Ampere Altra Max (128 cores) AArch64 processors are complete system-on-chip (SOC) solutions built for Cloud native applications, including Application streaming, gaming and XR. In addition to incorporating many high-performance cores, Ampere’s innovative architecture delivers predictable high performance, linear scaling, and high energy efficiency. importantly, the high IO bandwidth provides direct connections to multiple PCIe devices like GPUs, NICs, and video encoders, which are essential for streaming high-density applications required by Cloud service providers (CSP).

The growing ODM ecosystem of Ampere platform suppliers provides a variety of single socket (1P) and dual socket (2P) platforms for CSP customers. Several platforms are designed with high density peripheral devices like GPUs. The platforms provide space for single or double width, full or half length, full or half height slots, and auxiliary power to accommodate multiple power sources (up to 300W per card), and a balance of CPU/GPU configurations.

Nvidia Android Cloud Gaming SDK

  • Android Versions: 9 included, others can be built with drivers
  • Components: GPU Driver, SurfaceFlinger, input, audio
  • APIs: frame capturing, encoding, and streaming
  • Android streaming client
  • Docker container management scripts

Ampere Altra Max

  • 128 64-bit cores at 3.0GHz
  • 64KB i-Cache, 64KB d-Cache per core
  • 1MB L2 Cache per core
  • 16MB System Level Cache
  • Coherent mesh-based interconnect
  • 8×72 bit DDR4-3200 channels
  • ECC and DDR4 RAS
  • Up to 16 DIMMs (2 DPC) and 4TB addressable memory
android, cloud, server

Key Benefits

Ampere Altra Family

  • Designed for scalable Cloud Native applications
  • Provides the highest density of Cloud instances for app streaming
  • Predictable performance ensures stable SLAs
  • Natively supports both 32 64 bit apps
  • Go-green. Industry-leading energy efficiency reduces carbon footprint of Cloud services

Nvidia Gaming SDK

  • Balance GPU and CPU resource management
  • Docker container based solution – seamless integration with orchestration tools like Kubernetes
  • Special build properties ensure balanced GPU utilization
  • Sample SDK source code

Rendering, Encoding, and Streaming Architecture

The Nvidia gaming stack has a very efficient and balanced rendering, encoding, and streaming pipeline. After the GPU renders and composes frames, only the file descriptor of frame buffers, not frame data, are copied into a shared memory to allow high performance frame capturing, encoding, and streaming. Modules run in hosts, not inside Android containers for peak efficiency. A frame capturing module reads shared frame buffer properties and passes it to CUDA based video encode drivers, which can directly read and encode frames into video streams. Encoded video streams can be copied from GPU to CPU memory and then streamed. User input and audio are processed with similar approaches.

Fig 1: Rendering, encoding, and streaming pipeline

Benchmarking Configurations

Benchmarks were performed with both Mt Collins, a dual socket Ampere Altra server and Mt Snow, a single socket Ampere Altra Max server with the following configurations:

  • 2x Altra with total 160 cores @3.0GHz
  • 512GB DRAM
  • 1TB NVME
  • 4x NVIDIA T4 (2 on each socket)
  • 1x Altra Max with 128 cores @3.0GHz
  • 512GB DRAM
  • 1TB NVME
  • 4x NVIDIA T4 (4 on one socket)

On Mt Collins, a 2P system, instances are pinned to specific GPU and CPU (cores) to isolate the given CPU sockets.

android, cloud, server

Based on the rendering, encoding, and streaming pipeline shown in Figure 1, the data of an Android instance flows from CPU to GPU and back to CPU. Good isolation practices are employed with high density Android game instances. There is no data shared between GPUs after GPU resources are allocated and persists until they are released. CPU cores and the GPU allocated to an Android instance all reside on the same socket, thus cross-socket data traffic is minimized. Exceptions to this isolation principle are GPU resource allocation and context related to functions that are still global to each instance of a GPU driver and could become a bottleneck, special attention is paid to prevent overloading of GPU context or resource allocation related functions in the system.

On Mt Collins, each GPU renders 30 instances of Android containers and encodes the final surfaces for a total of 120 instances. The 80 cores of each CPU socket are isolated from the 60 instances running on the two GPUs attached to the same socket. On Mt Snow, Android instances are partitioned 30 instance per GPU, while sharing all 128 cores.

Game frames are rendered at 1280×720@30fps. After encoding, they are streamed via UDP based RSTP. Data packages are transmitted via NICs if clients are connected or discarded. Remote client connection does not materially change the results.

Platform Performance and Instance Density

CPU and GPU performance data shown were collected when all 40-120 containers are running games in steady state, without any clients attached, i.e., all frames are discarded after encoding.

With these settings, benchmark results show that CPU utilizations are incredibly low. When running 120 instances of Java based Plaformer3D, the CPU utilization is ~45% on 1P Altra Max, and ~40% on a 2P Altra. For the NDK based BombSquad, the CPU utilizations are ~17% for 1P Altra Max and ~18% for 2P Altra, the table above shows Platformer3D games consume 0.48 cores on 1P Altra Max and 0.53 cores on 2P Altra, and BombSquad consumes 0.18 cores on 1P Altra Max and 0.24 cores on 2P Altra. In both cases, Altra Max has marginally better CPU efficiency than Altra. Note that the CPU cores required per instance depends on game titles. For example, CPU per core on Altra Max is 0.48 running Platformer3D while it is 0.18 for BombSquad.

As mentioned above, GPU context and resource allocation related functions are also key factors in determining system wide performance, including stages like starting and quitting games, starting and stopping containers, or starting and quitting video encode operations. Instance density is also predicated on GPU resource contention. The Nvidia T4 employs 15G of GPU memory, which gets shared between instances at a rate of 500MB per instance. Again, this is title dependent, but a good rule of thumb is 500MB for middle range Android games. These considerations limit the density of instances on a given machine to the total capacity of GPU context and resource allocations mentioned. Typically, an NVIDIA T4 runs ~30 instances per GPU for middle range games, thus limiting the density of game instances in these tests to a maximum of 120 instances for servers with 4x NVIDIA T4 GPUs. Future examinations of other GPU devices may yield greater density.

What is Google Cloud Platform?

Every tech giant seems to have a Cloud platform. Still, if you asked someone what the Google Cloud was, they would probably have no idea. The Google Cloud Platform (GCP) isn’t a collection of Google’s most popular apps and software. They call that Google Workspace, which used to be G Suite.

Google Cloud vs. Google Workspace

Google Workspace includes things like Google Docs, Google Sheets, and Google Drive Cloud storage. Google Cloud Platform is a suite of Cloud computing services that run on the same infrastructure that Google uses for its end-user products. Unlike Google Workspace, which primarily caters to individual productivity and collaboration for everyday use, GCP provides tools and services that allow developers and enterprises to build, deploy, and scale applications, websites, and online services using Google’s robust and reliable infrastructure.

Google Cloud Platform includes services for serverless and scalable computing, offsite Cloud-based data storage, data analytics, machine learning, networking, the Internet of Things (IoT), security tools, and developer tools. These services are highly flexible, can grow as a company grows, and are designed to meet the needs of small-scale developers, all the way up to big data giants running queries against data sets in the terabytes.

While Google Workspace focuses on providing productivity tools for users, Google Cloud Platform is a comprehensive platform offering a ton of services, Cloud resources, and the Cloud infrastructure needed for DevOps teams. A handful of competitors offer public Cloud services at this scale, and you’ll recognize many of them. Some of GCP’s largest competitors are Amazon Web Services (AWS), Microsoft Azure, and IBM’s Cloud platform.

A brief history of the Google Cloud Platform

Amazon beat Google to the market with its Cloud computing service in 2006. Google launched a preview release of App Engine in 2008, a tool that lets customers run their web applications on Google’s infrastructure. At first, it was released to a limited number of developers. It didn’t see its full release until 2011.

Since then, Google Cloud Platform has developed or acquired numerous services and products that allow companies to use all facets of its vast infrastructure resources. Google Cloud Platform quickly became one of the top international Cloud vendors, alongside other Cloud providers like Amazon, Microsoft, and IBM.

Have you ever wondered how companies can offer their services and online products on such a huge scale? It’s because most of them are built on Cloud services like Google’s. Some of Google Cloud Platform’s most well-known customers include Snapchat, Spotify. PayPal, Nintendo, and eBay.

Google Cloud offers several notable services

Google Cloud Platform offers several engines or frameworks designed for computing, hosting, and application development needs. It has many useful APIs that use machine learning and its AI platform to develop AI models. It also has services for database work and can handle large datasets.

  • Google Compute Engine is an Infrastructure as a Service (IaaS) product. On a basic level, it allows a customer to run virtual machines (VMs) on Google’s infrastructure to handle their computing workload instead of using in-house CPU power. Google has a partnership with VMware that allows customers to run their VMware workloads on GCP infrastructure in a fully managed VMware environment.
  • Google App Engine is a Platform as a Service (PaaS) product with tools and services to build and host web applications on Google’s infrastructure. It was one of the first products on Google Cloud Platform. It supports multiple programming languages, such as Python, Java, PHP, and more.
  • Google Kubernetes Engine is an open source system maintained by the Cloud Native Computing Foundation and originally developed by Google. It’s used to automate deployment, scale, and manage Docker containerized applications. You can think of a containerized app as a portable application that includes almost everything it needs inside its own container.
  • Google Cloud SDK is a set of command-line tools and libraries that allow developers to manage and interact with other GCP resources. It’s available for Windows, macOS, and Linux.
  • Virtual Private Cloud (VPC) is used across many services in GCP and provides the foundation for networking, connectivity, and communication between the services.
  • Google AI Platform has services that help a company develop, launch, and manage Automated Machine Learning (AutoML) and other AI machine learning models.
  • Google Cloud Speech, Vision, and Natural Language APIs let companies utilize Google’s machine learning to analyze text, convert speech to text, and analyze images. The APIs allow Android developers to leverage these powerful tools in their Android apps.
  • Google Cloud DNS is a stable and reliable Domain Name System (DNS) service that converts domain names, like androidpolice.com, into the numerical IP addresses that computers use to identify other computers on the network.
  • Google BigQuery is a serverless multi-Cloud data warehouse designed to handle and analyze large amounts of data and is meant to scale easily. This means that a company doesn’t need its own data centers and doesn’t have to manage its own servers. It’s designed for analyzing huge datasets in the order of billions of rows in real time.
  • Google Cloud SQL is a fully managed relational database service that supports MySQL, PostgreSQL, and SQL Server. While Google BigQuery is designed to analyze huge datasets, Google Cloud SQL is an Online Transaction Processing (OLTP) service designed for everyday operational database work. It records and stores things like user information, app data, and transaction records.
  • Google Bigtable is a NoSQL (Not Only SQL) database service designed to handle a diverse number of data models. These Cloud BigTable databases are particularly adept at handling large sets of distributed data and flexible enough to adapt to the information you store. They are typically used for things like user-generated social media content, the data recorded by sensors in IoT devices, and personalization features that change based on a user’s past behavior.

This is a short list of what’s available through Google Cloud Platform. GCP also has Google Cloud Storage, Cloud Pub/Sub, Cloud Dataflow, Cloud Dataproc, Cloud Functions, Cloud Run, Cloud Spanner, Cloud Load Balancing, and a web-based GUI called Cloud Console to manage it all. The Google Cloud Platform is huge, and this is not a complete list.

GCP includes many managed services, meaning that Google takes care of the underlying infrastructure, maintenance, and operational tasks needed to run the service and the hardware that the service uses. If you’ve ever run a small home server on a Synology DiskStation NAS, you probably know how much can go wrong with server hardware. This allows customers to FOCUS on developing and running things rather than managing the infrastructure. It also means that a company can take advantage of automatic scaling that adjusts resources based on their workload demand as their business grows.

Google Cloud Platform’s security and management tools

With so many large companies moving their analytics, data processing, and machine learning workloads offsite and into Cloud vendors like Google Cloud Platform, securing this data has become a top priority. GCP offers tools for monitoring, logging, and diagnosing security performance.

  • The Google Cloud Security Command Center (SCC) is a comprehensive security and data risk platform that customers can use to proactively guard against data leaks, unauthorized access, and other security threats.
  • Google Cloud Data Loss Prevention (DLP) is a tool to discover, classify, and protect sensitive data. A company can use the tool to scan its systems, understand where sensitive data is located, and make sure that data is protected. It can be used to anonymize sensitive data and protect against connecting the data with its original datsource. It also includes risk analysis tools, which can help a business better understand its risks, and is often used to ensure compliance with regulatory rules or audits.
  • Google Cloud Armor protects applications and websites against Distributed Denial of Service (DDoS) attacks.
  • Google Cloud Identity Access Management (IAM) allows administrators to manage access control, identifying who a person or service is, where they are allowed to be, and what access privileges they have.

Google Cloud Platform doesn’t only offer the tools and services that allow companies to use its infrastructure. It also provides security and management tools that protect everything a company puts on its platform.

Demystifying Google Cloud Platform

Google Cloud Platform and Google Cloud may sound like the same thing, but they are very different. Google Cloud is a set of user-end tools and services, like Google Drive and Google Workspace. On the other hand, GCP is the backbone of many large-scale digital platforms, including Google Cloud. It may seem like a lot with all it has to offer, but there are plenty of tutorials and a flexible pricing model for smaller-scale uses.

android, cloud, server

To put it simply, Google Cloud Platform is Google’s suite of Cloud computing services that enable developers and businesses of all sizes to build, launch, and manage their applications and online services. Some of the biggest companies in the world use GCP to access Google’s powerful infrastructure, the same infrastructure that Google uses for its services and products. GCP provides computational engines, an AI platform, machine learning APIs, a stable and reliable DNS service, and database services that can handle any size and type of dataset.

How to create your own Cloud storage with an old Android phone.

By default Windows 10 and Android have pretty decent file-sharing capabilities, however, there are still a lot of lacking aspects to the system. Thankfully it is possible to improve on this system dramatically and enable full cross device file sharing and sync. If you set this system up correctly, you can basically create your own Cloud storage system with very little cost. So let’s get started!

Windows 10 and Android work very well together natively and don’t necessarily require a ton of different programs and apps to enable basic tasks like file sharing and screen mirroring (among lots of others). That said! There are quite a few different ways you can improve on the cross-device and ecosystem environment shared between Android and Window.

In the past, we’ve covered sharing and controlling your Android device from Windows using SCRCPY and streaming audio from your Android device to Windows using SNDCPY which have both proven to be super popular and invaluable. So in keeping with tradition, this guide will be focusing on another really useful and quite important cooperative feature to have enabled between Windows 10 and Android. The ability to share and sync files wirelessly between all your devices. If used correctly, this has the potential to be set up as a personal Cloud storage system.

To begin, you’ll need a couple of things. First, you’ll need a Windows 10 PC, an Android device and a tool called Resilio Sync. With these three things, you’ll be able to set up a system that syncs any content you choose between all devices for free. Although this sounds no better than OneDrive, Google Backup and Sync, DropBox, etc. It is entirely free and fully controlled by you.

For instance, if you have an old Android phone in a drawer that you never use with an SD card slot, you can essentially whack an SD card in it and set it up as an always-connected Cloud storage device for everything else on your network.

How to set up full Android to Windows file sync using Resilio Sync.

Note: If you don’t allow access you won’t be able to use the service and you will get a read/write permissions access error.

  • To link your Windows folder, go back to Resilio on your computer and click QR Code. If you have closed the window already, you can right-click the folder and choose Share to bring it back up. As soon as you have scanned the QR code, you will have to accept a notification within the Resilio Sync app to confirm access.

That’s the final step, you’ve linked your devices to be fully synced with each other. If you have given read and write access you’ll be able to add and remove files from the folders regardless of the device you are using. Now, whenever you place content in the folders you’ve created on each device, you’ll be able to view, edit and add or delete them as you please. Just remember that if you have read/write enabled making a change on one device will make the change across all of them.

How do you fix Resilio read-write permissions error?

If you are trying to set up Resilio to work between your Android device and another device, either Windows or Android. But keep getting permission write read error, you’ll need to double-check permissions on your device.

    To do this go to Settings Apps Sync Permissions Files and Media and Allow management of all files. Once you have done this, the permission error in Resilio Sync will go away.

How to Set up your own Cloud storage service using an old Android phone and Resilio Sync.

Using the steps shown above you can create your own Cloud storage system by doing the following.

  • First, get an old Android device, any will do, though the bigger the storage the better. If it has SD card support you can expand the storage size by adding any size SD card you like.
  • Once you have your Android device, simply set up Resilio Sync on it and connect all the devices you wish to sync with.

That’s it, all you have to do now is keep the device connected to Wi-Fi and powered on and you’ve got your own Cloud storage system.