GrapheneOS
grapheneos.orgGrapheneOS is an open source privacy and security focused mobile OS with Android app compatibility. Developed by Daniel Micay. GrapheneOS is a young project, and currently only supports Pixel devices, partially due to their strong hardware security.
- Homepage: grapheneos.org
- GitHub: github.com/GrapheneOS/hardened_malloc
- Web info: web-check.xyz/results/grapheneos.org
GrapheneOS Source Code
Author
Description
Hardened allocator designed for modern systems. It has integration into Android's Bionic libc and can be used externally with musl and glibc as a dynamic library for use on other Linux-based platforms. It will gain more portability/integration over time.
Homepage
https://grapheneos.org/License
MIT
Created
23 Aug 18
Last Updated
25 Feb 26
Latest version
Primary Language
C
Size
1,110 KB
Stars
1,742
Forks
125
Watchers
1,742
Language Usage
Star History
Top Contributors
-
@thestinger (643)
-
@muhomorr (31)
-
@jvoisin (28)
-
@rwarr627 (11)
-
@cgzones (8)
-
@randomhydrosol (4)
-
@dependabot[bot] (3)
-
@qikp0 (3)
-
@Ganwtrs (2)
-
@Lelmister101 (2)
-
@tsautereau-anssi (2)
-
@bravesasha (2)
-
@arlolra (1)
-
@thithib (1)
-
@vchuravy (1)
-
@maade93791 (1)
Recent Commits
-
Daniel Micay (22 Feb 26)
fix realloc from small sized allocations with above PAGE_SIZE alignment Large allocations don't always have a size larger than the maximum slab size class because alignment larger than PAGE_SIZE is handled via large allocations. The general case in realloc was assuming small sizes imply slab allocations which isn't guaranteed. Alignment above PAGE_SIZE is rare and realloc doesn't preserve alignment so passing aligned allocations to realloc is also rare. In practice, it ends up doing invalid accesses within the reserved metadata region which will almost always crash due to it being largely PROT_NONE memory and it having an extremely high likelihood of indexing into the PROT_NONE areas rather than the actual metadata. That means if this impacted an app, it would currently be crashing in practice. Due to the reserved region for metadata and the fact that it would be crashing, this can be ruled out as a security concern but is potentially an extremely rare compatibility issue if there's any code using this. Reported-by: Stefan Rus <stefan@photonspark.com>
-
Daniel Micay (16 Feb 26)
update libdivide to 5.3.0
-
bravesasha (07 Jan 26)
Update LICENSE
-
qikp0 (03 Jan 26)
Android 16 QPR2 is now the active branch of AOSP
-
Ganwtrs (06 Dec 25)
Correct title of README from Hardened malloc to hardened_malloc
-
Ganwtrs (06 Dec 25)
Remove spaces around the slash (like one/two)
-
dependabot[bot] (20 Nov 25)
build(deps): bump actions/checkout from 5 to 6 Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
-
charles25565 (15 Nov 25)
Bump minimum AOSP version to QPR1
-
Charles (29 Oct 25)
gitignore: use exact matches
-
Daniel Micay (23 Sept 25)
drop legacy compiler versions from GitHub workflow
-
Daniel Micay (23 Sept 25)
add newer Clang versions for GitHub workflow
-
Christian Göttsche (21 Sept 25)
Fix two typos
-
Christian Göttsche (21 Oct 24)
ReadMe: adjust section about library location
-
charles25565 (17 Sept 25)
Update dependencies in README Update from bookworm to trixie, updating GKIs, and changing to Android 16.
-
Daniel Micay (11 Aug 25)
update GitHub actions/checkout to 5
-
Віктор Дуйко (05 Apr 25)
docs: updated the license date
-
Christian Göttsche (26 Mar 25)
support GCC15 GCC 15 starts warning about non NUL-terminated string literals: chacha.c:44:31: error: initializer-string for array of ‘char’ truncates NUL terminator but destination lacks ‘nonstring’ attribute (17 chars into 16 available) [-Werror=unterminated-string-initialization] 44 | static const char sigma[16] = "expand 32-byte k"; | ^~~~~~~~~~~~~~~~~~
-
Daniel Micay (17 Feb 25)
rename calculate_waste.py to calculate-waste
-
Daniel Micay (25 Jan 25)
update libdivide to 5.2.0
-
Daniel Micay (16 Dec 24)
add newer compiler versions for GitHub workflow
-
Daniel Micay (16 Dec 24)
handle GitHub runner image updates clang-14 and clang-15 are no longer installed by default.
-
Daniel Micay (23 Oct 24)
update outdated branch in README
-
Daniel Micay (12 Oct 24)
remove trailing whitespace
-
Daniel Micay (12 Oct 24)
preserve PROT_MTE when releasing memory
-
Daniel Micay (12 Oct 24)
use wrapper for calling memory_map_mte
-
Daniel Micay (12 Oct 24)
reuse code for memory_map_mte This drops the separate error message since that doesn't seem useful.
-
Daniel Micay (12 Oct 24)
reduce probability hint for is_memtag_enabled
-
Daniel Micay (09 Oct 24)
remove redundant warning switches for Android Android already enables -Wall and -Wextra in the global soong build settings.
-
Julien Voisin (03 Oct 24)
Fix -Wimplicit-function-declaration error with gcc 14. ``` malloc_info.c: In function 'leak_memory': malloc_info.c:12:12: error: implicit declaration of function 'malloc' [-Wimplicit-function-declaration] 12 | (void)!malloc(1024 * 1024 * 1024); | ^~~~~~ malloc_info.c:10:1: note: include '<stdlib.h>' or provide a declaration of 'malloc' 9 | #include "../util.h" +++ |+#include <stdlib.h> 10 | malloc_info.c:12:12: warning: incompatible implicit declaration of built-in function 'malloc' [-Wbuiltin-declaration-mismatch] 12 | (void)!malloc(1024 * 1024 * 1024); | ^~~~~~ ``` Taken from https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/72971/ Co-authored-by: @mio
-
maade93791 (09 Sept 24)
android: use more basic CPU target for memtag This is required for hardened_malloc to work in microdroid on MTE-enabled devices (currently, 8th and 9th generation Pixels) since PVMFW only supports ARMv8 cores. https://android.googlesource.com/platform/packages/modules/Virtualization/+/refs/tags/android-15.0.0_r1/pvmfw/platform.dts#100
GrapheneOS Website
Website
GrapheneOS: the private and secure mobile OS
GrapheneOS is a security and privacy focused mobile OS with Android app compatibility.
Redirects
Does not redirect
Security Checks
All 66 security checks passed
Server Details
- IP Address 51.222.156.101
- Hostname 0.grapheneos.org
- Location Montreal, Quebec, Canada, NA
- ISP OVH Hosting Inc.
- ASN AS16276
Associated Countries
-
CA -
US
Safety Score
Website marked as safe
100%
Blacklist Check
grapheneos.org was found on 0 blacklists
- ThreatLog
- OpenPhish
- PhishTank
- Phishing.Database
- PhishStats
- URLhaus
- RPiList Not Serious
- AntiSocial Blacklist
- PhishFeed
- NABP Not Recommended Sites
- Spam404
- CRDF
- Artists Against 419
- CERT Polska
- PetScams
- Suspicious Hosting IP
- Phishunt
- CoinBlockerLists
- MetaMask EthPhishing
- EtherScamDB
- EtherAddressLookup
- ViriBack C2 Tracker
- Bambenek Consulting
- Badbitcoin
- SecureReload Phishing List
- Fake Website Buster
- TweetFeed
- CryptoScamDB
- StopGunScams
- ThreatFox
- PhishFort
Website Preview
GrapheneOS Reviews
More Mobile Operating Systems
-
CalyxOS is an free and open source Android mobile operating system that puts privacy and security into the hands of everyday users. Plus, proactive security recommendations and automatic updates take the guesswork out of keeping your personal data personal. Also currently only supports Pixel devices and Xiaomi Mi A2 with Fairphone 4, OnePlus 8T, OnePlus 9 test builds available. Developed by the Calyx Foundation.
-
DivestOS is a vastly diverged unofficial more secure and private soft fork of LineageOS. DivestOS primary goal is prolonging the life-span of discontinued devices, enhancing user privacy, and providing a modest increase of security where/when possible. Project is developed and maintained solely by Tad (SkewedZeppelin) since 2014.
-
A free and open-source operating system for various devices, based on the Android mobile platform - Lineage is light-weight, well maintained, supports a wide range of devices, and comes bundled with Privacy Guard.
About the Data: GrapheneOS
API
You can access GrapheneOS's data programmatically via our API.
Simply make a GET request to:
https://api.awesome-privacy.xyz/operating-systems/mobile-operating-systems/grapheneos The REST API is free, no-auth and CORS-enabled. To learn more, view the Swagger Docs or read the API Usage Guide.
About the Data
Beyond the user-submitted YAML you see above, we also augment each listing with additional data dynamically fetched from several sources. To learn more about where the rest of data included in this page comes from, and how it is computed, see the About the Data section of our About page.
Share GrapheneOS
Help your friends compare Mobile Operating Systems, and pick privacy-respecting software and services.
Share GrapheneOS and Awesome Privacy with your network!