From de97477331a0edc852d6fcde8163cbd150a39e94 Mon Sep 17 00:00:00 2001 From: Nyte <39193783+codenyte@users.noreply.github.com> Date: Thu, 2 Apr 2026 15:00:40 +0200 Subject: [PATCH 1/3] Curate GrapheneOS topic --- topics/grapheneos/grapheneos.png | Bin 0 -> 8668 bytes topics/grapheneos/index.md | 14 ++++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 topics/grapheneos/grapheneos.png create mode 100644 topics/grapheneos/index.md diff --git a/topics/grapheneos/grapheneos.png b/topics/grapheneos/grapheneos.png new file mode 100644 index 0000000000000000000000000000000000000000..b76cdd03efeaeebab574d416503b07bf83e205c2 GIT binary patch literal 8668 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 literal 0 HcmV?d00001 diff --git a/topics/grapheneos/index.md b/topics/grapheneos/index.md new file mode 100644 index 00000000000..e821fb9fc15 --- /dev/null +++ b/topics/grapheneos/index.md @@ -0,0 +1,14 @@ +--- +aliases: androidhardening, android-hardening, androidhardening-project, android-hardening-project, copperhead, copperhead-os, copperheados, graphene-os +created_by: Daniel Micay +display_name: GrapheneOS +github_url: https://github.com/GrapheneOS +logo: grapheneos.png +related: android, security, privacy, hardening +released: 2014 +short_description: GrapheneOS is a private and secure mobile operating system with Android app compatibility +topic: grapheneos +url: https://grapheneos.org/ +wikipedia_url: https://en.wikipedia.org/wiki/GrapheneOS +--- +GrapheneOS is a free and open-source privacy and security focused based on the Android Open Source Project (AOSP). It deploys a hardened kernel, [hardened memory allocator](https://github.com/GrapheneOS/hardened_malloc), [C library](https://github.com/GrapheneOS/platform_bionic), [SELinux policies](https://github.com/GrapheneOS/platform_system_sepolicy), [WebView and Chromium-based browser (Vanadium)](https://github.com/GrapheneOS/Vanadium). \ No newline at end of file From 9e196d93de81cc0b3e7d1311e1aab6aacebad51e Mon Sep 17 00:00:00 2001 From: Nyte <39193783+codenyte@users.noreply.github.com> Date: Thu, 2 Apr 2026 15:12:09 +0200 Subject: [PATCH 2/3] Stick to style guide --- topics/grapheneos/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/topics/grapheneos/index.md b/topics/grapheneos/index.md index e821fb9fc15..e50fc1e0d09 100644 --- a/topics/grapheneos/index.md +++ b/topics/grapheneos/index.md @@ -11,4 +11,4 @@ topic: grapheneos url: https://grapheneos.org/ wikipedia_url: https://en.wikipedia.org/wiki/GrapheneOS --- -GrapheneOS is a free and open-source privacy and security focused based on the Android Open Source Project (AOSP). It deploys a hardened kernel, [hardened memory allocator](https://github.com/GrapheneOS/hardened_malloc), [C library](https://github.com/GrapheneOS/platform_bionic), [SELinux policies](https://github.com/GrapheneOS/platform_system_sepolicy), [WebView and Chromium-based browser (Vanadium)](https://github.com/GrapheneOS/Vanadium). \ No newline at end of file +GrapheneOS is a free and open source privacy and security focused based on the Android Open Source Project (AOSP). It deploys a hardened kernel, [hardened memory allocator](https://github.com/GrapheneOS/hardened_malloc), [C library](https://github.com/GrapheneOS/platform_bionic), [SELinux policies](https://github.com/GrapheneOS/platform_system_sepolicy), [WebView, and Chromium-based browser (Vanadium)](https://github.com/GrapheneOS/Vanadium). From 0031e7db1fa81a61e3f81006463a44008fdc70ff Mon Sep 17 00:00:00 2001 From: Nyte <39193783+codenyte@users.noreply.github.com> Date: Thu, 2 Apr 2026 21:23:57 +0200 Subject: [PATCH 3/3] Resize image to meet guidelines --- topics/grapheneos/grapheneos.png | Bin 8668 -> 5827 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/topics/grapheneos/grapheneos.png b/topics/grapheneos/grapheneos.png index b76cdd03efeaeebab574d416503b07bf83e205c2..e4ba81c725f8a2008d156dffc887135248c84c68 100644 GIT binary patch literal 5827 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