Skip to content

Instantly share code, notes, and snippets.

View gist:09bcff9cf5e9008cfbc62199a0f5736b
diff --git a/device.mk b/device.mk
index ccae932..bd368db 100644
--- a/device.mk
+++ b/device.mk
@@ -243,6 +243,10 @@ PRODUCT_COPY_FILES += \
$(DEVICE_PATH)/rootdir/init.qcom.usb.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.qcom.usb.rc \
$(DEVICE_PATH)/rootdir/ueventd.qcom.rc:$(TARGET_COPY_OUT_VENDOR)/ueventd.rc
+# Ramdisk (First stage mount)
+PRODUCT_COPY_FILES += \
View gist:4d5dcbc6698e8020490a662aafdd6343
diff --git a/device.mk b/device.mk
index f1399b1..4cfc595 100644
--- a/device.mk
+++ b/device.mk
@@ -47,6 +47,9 @@ PRODUCT_SYSTEM_SERVER_COMPILER_FILTER := speed-profile
# for gms modules.
PRODUCT_ALWAYS_PREOPT_EXTRACTED_APK := true
+PRODUCT_COPY_FILES += \
+ $(LOCAL_PATH)/rootdir/etc/fstab.mako:$(TARGET_COPY_OUT_RAMDISK)/fstab.mako
@shakalaca
shakalaca / Vagrantfile
Created Jan 18, 2020
Vagrant setup for building Magisk
View Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/bionic64"
config.vm.provider "virtualbox" do |vb|
vb.memory = "2048"
end
View gist:fca3088b8c8103a4da5529b893eedd99
#include <dirent.h>
#include <stdio.h>
#include <unistd.h>
int main() {
DIR* dir = opendir(".");
int ret = 0;
char buf[4096];
symlink("/root/v86d", "test");
@shakalaca
shakalaca / twinapps_required_apps.xml
Created Nov 11, 2019
給 ZenUI 4.0 之後應用分身使用的 app 支援設定檔
View twinapps_required_apps.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="twinapps_required_apps">
<item>com.android.vending</item>
<item>com.google.android.gms</item>
<item>jp.naver.line.android|Line: Free Calls &amp; Messages</item>
<item>com.facebook.katana|Facebook</item>
<item>com.facebook.orca|Messenger - Text and Video Chat for Free</item>
<item>com.tencent.mm|WeChat</item>
<item>com.whatsapp|WhatsApp Messenger</item>
View pixel_2019_experience.xml
<?xml version="1.0" encoding="utf-8"?>
<config>
<feature name="com.google.android.feature.PIXEL_2019_EXPERIENCE" />
</config>
@shakalaca
shakalaca / cpio.patch
Created Aug 20, 2019
build mkbootfs (Android Q)
View cpio.patch
diff --git a/cpio/Makefile b/cpio/Makefile
new file mode 100644
index 000000000..c6b24f135
--- /dev/null
+++ b/cpio/Makefile
@@ -0,0 +1,42 @@
+####################
+# COMPILER
+####################
+CC=gcc
@shakalaca
shakalaca / gist:bbc439916f389a7275083f90539059de
Created Aug 19, 2019
Fastboot commands for ROG Phone II
View gist:bbc439916f389a7275083f90539059de
@======== Fastboot command ========
@Get info :
@>>> fastboot oem gpt-info
@>>> fastboot oem isn-info
@>>> fastboot oem ssn-info
@>>> fastboot oem system-info
@>>> fastboot oem device-info
@Get ID :
@>>> fastboot oem get-prjid
@>>> fastboot oem get-hwid
@shakalaca
shakalaca / gist:8bf69b5f677a056a648f72ca533ebce3
Created Aug 19, 2019
MagiskManager crash after patching boot.img
View gist:8bf69b5f677a056a648f72ca533ebce3
08-19 16:58:40.700 10186 10186 D AndroidRuntime: Shutting down VM
--------- beginning of crash
08-19 16:58:40.717 10186 10186 E AndroidRuntime: FATAL EXCEPTION: main
08-19 16:58:40.717 10186 10186 E AndroidRuntime: Process: com.topjohnwu.magisk, PID: 10186
08-19 16:58:40.717 10186 10186 E AndroidRuntime: java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder{f3bf030 position=17 id=-1, oldPos=11, pLpos:11 scrap [attachedScrap] tmpDetached not recyclable(1) no parent} androidx.recyclerview.widget.RecyclerView{83839cf VFED..... .F....ID 0,0-1080,1680 #7f0900ab app:id/flash_content}, adapter:me.tatarka.bindingcollectionadapter2.BindingRecyclerViewAdapter@6a7df5c, layout:androidx.recyclerview.widget.LinearLayoutManager@8b05265, context:a.f@4372ab2
08-19 16:58:40.717 10186 10186 E AndroidRuntime: at androidx.recyclerview.widget.RecyclerView$Recycler.validateViewHolderForOffsetPosition(RecyclerView.java:5953)
08-19 16:58:40.717 10186 10186 E AndroidRuntime: at a
View tatiana-mac-speaker-rider.md

Speaker Rider

by Tatiana Mac

Before I'll agree to a speaking event, I try to do as much research I can around the event to ensure it aligns with my ethos. I want to share this in case it's helpful to any other speakers.

👐 Speaking comes with immense privilege. I am grateful to all the conference organisers who have brilliantly hosted me. I would love to continue to exercise this privilege to speak at conferences, and use this privilege to make the landscape more accessible and beneficial to tech's most marginalised and suppressed communities.

😫 I wish I didn't have to, but this is long because I provide a lot of explanations for those of you who never had to consider these things. And I will be honest, most thoughtful conferences I've attended check most of these boxes intrinsically, particularly when conference runners are experienced speakers. They get it.

1️⃣ All of these are based on my own ethos. I don't wish to or attempt to speak on behalf of all conference speake

You can’t perform that action at this time.