惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
Y
Y Combinator Blog
I
InfoQ
美团技术团队
罗磊的独立博客
B
Blog RSS Feed
GbyAI
GbyAI
小众软件
小众软件
IT之家
IT之家
Engineering at Meta
Engineering at Meta
Blog — PlanetScale
Blog — PlanetScale
V
V2EX
Last Week in AI
Last Week in AI
酷 壳 – CoolShell
酷 壳 – CoolShell
Jina AI
Jina AI
MyScale Blog
MyScale Blog
博客园 - 聂微东
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
The GitHub Blog
The GitHub Blog
T
The Blog of Author Tim Ferriss

Signal Blog

Label yourself Put a pin in it Signal Polls: Yes, no, maybe (yes!) Signal Protocol and Post-Quantum Ratchets Introducing Signal Secure Backups By Default, Signal Doesn't Recall A Synchronized Start for Linked Devices Improving Private Signal Calls: Call Links & More Proxy Please: Help People Connect to Signal Keep your phone number private with Signal usernames Trend report: Use Signal Privacy is Priceless, but Signal is Expensive New Features Roll Call: Fall 2023 Quantum Resistance and the Signal Protocol Standing firm against threats to private and safe communication Signal is for everyone, and everyone is different Story Time Removing SMS support from Signal Android (soon) Help people in Iran reconnect to Signal – a request to our community A Message from Signal's New President Technology Deep Dive: Building a Faster ORAM Layer for Enclaves Signal Your Support You Can Change Your Number New year, new CEO How to build large-scale end-to-end encrypted group video calls Become a Signal Sustainer Improving first impressions on Signal Embrace ephemerality with default disappearing messages The Instagram ads Facebook won't show you Exploiting vulnerabilities in Cellebrite UFED and Physical Analyzer from an app's perspective
Storage management for Signal Android
2020-01-13 · via Signal Blog

Signal for Android now includes storage management functionality that helps visualize files across all of your conversations, sorted by size and type, in order to assist you in reducing the amount of space Signal uses on your device.

The new storage usage area of the 'Data and storage' section in the app settings.

Castles in the sandbox

The Android environment is an interesting inversion of the typical Unix-inspired desktop environment. On the desktop, filesystem permissions are commonly segmented by “users.” Each user has a directory (e.g. /home/alan) where data can be stored, which is inaccessible to other users by default. This is largely a leftover practice from the days when people said the word “mainframe” out loud and when simpler multi-tenancy usage was more common, but it can be a somewhat outdated way of thinking about isolation given the direction computing has taken. Since many typical desktop environments now only have one user, there isn’t a lot of actual isolation happening at that level. And because the desktop isolation strategies were initially conceived of in terms of users, rather than the type of information those users were managing, nearly every desktop app can read data from almost every other desktop app, because they’re all being run by the same user.

Android tweaked this model by making each app a “user” – which attempts to keep data from one app isolated from other apps (e.g. /home/signal and /home/chrome rather than /home/alan/…), while defining a more dynamic permission system for how apps interact with common data and each other.

By default, Signal for Android stores files and media inside this sandbox rather than writing it to the public camera roll or other shared storage locations.

Taking a byte out of incompatibility

However, the application and implementation of “full-disk encryption” has been fairly inconsistent across Android manufacturers and devices, so Signal has also taken a conservative approach to on-device Android data storage by manually encrypting potentially sensitive content before writing it to the device. We use SQLCipher to encrypt SQLite data, and store file attachments and media as encrypted blobs within the application sandbox.

These efforts can sometimes complicate application development, because the standard Android APIs for things like video compression or image scaling don’t work on encrypted content, which requires us to build alternatives that work in RAM.

Secure but opaque

Unfortunately, isolation and encryption left the storage footprint of a Signal install on Android feeling somewhat opaque, even to the authorized user. Rather than being able to see where storage space was going (and manage it accordingly as necessary), only a growing amount of encrypted data was visible.

The new storage management interface is designed to provide the management visibility users want, while maintaining the security of encrypted data within the application sandbox.

A detailed view of the storage usage interface that shows a list of individual files sorted by size in descending order.

Now it’s easy to identify which files and conversations are taking up too much space. As 2020 begins, we hope this helps you leave the past behind to make room for the future.