diff --git a/Android/README.md b/Android/README.md
index 7f9b9ba5d6f05829677a56541bc2e46d7ba23abb..1f16190e0a68f23b3ba95e971e57e16ebf2a051a 100644
--- a/Android/README.md
+++ b/Android/README.md
@@ -17,7 +17,8 @@ to generate the configuration files you need.
         cd RevokeChinaCerts/Android
         ./generate.sh extended
 
-By substituting `extended` with `base` or `all` you can get corresponding configuration files.
+By substituting `extended` with `restore`, `base` or `all` you can get
+corresponding configuration files.
 
 ### If you have root
 
diff --git a/Android/flashable/META-INF/com/google/android/update-binary b/Android/flashable/META-INF/com/google/android/update-binary
index 83d4fc84f87b0a9b045cd705eb5efd7801302593..58e845f7e410b7c90868a5a0f484aa7854ed63f6 100644
Binary files a/Android/flashable/META-INF/com/google/android/update-binary and b/Android/flashable/META-INF/com/google/android/update-binary differ
diff --git a/Android/flashable/META-INF/com/google/android/updater-script b/Android/flashable/META-INF/com/google/android/updater-script
index 32aca8d68595c43353a9a61bc8e0d6445a5b5e29..d366b5b961198ad4c88f499f55a8692d502a58ca 100644
--- a/Android/flashable/META-INF/com/google/android/updater-script
+++ b/Android/flashable/META-INF/com/google/android/updater-script
@@ -1,7 +1 @@
-run_program("/sbin/mount", "/dev/block/mmcblk0p2", "/system");
-run_program("/sbin/mount", "/dev/block/mtdblock5", "/data");
-package_extract_dir("system", "/system");
-package_extract_dir("data", "/data");
-run_program("/sbin/unmount", "/dev/block/mtdblock5", "/data");
-run_program("/sbin/unmount", "/dev/block/mmcblk0p2", "/system");
-ui_print("Enjoy!");
+# this is a dummy file, the magic is in update-binary, which is a shell script
\ No newline at end of file
diff --git a/Android/flashable/data/misc/keychain/pubkey_blacklist.txt b/Android/flashable/data/misc/keychain/pubkey_blacklist.txt
index 5415b79e4ab3e212ce176a9d02795063aacbbea2..b4504a659f0bcf69249a9a355c7c1d35e707a5f8 100644
--- a/Android/flashable/data/misc/keychain/pubkey_blacklist.txt
+++ b/Android/flashable/data/misc/keychain/pubkey_blacklist.txt
@@ -1 +1 @@
-5f3ab33d55007054bc5e3e5553cd8d8465d77c61,783333c9687df63377efceddd82efa9101913e8e,3592761947e2907b7ac880f429bf2be66c81511a,8476c303b2e34d57fd0645a7c4315f2dbeaaf0a4,8476c303b2e34d57fd0645a7c4315f2dbeaaf0a4,bb2d75ce172accdf05d9a86d278298889986c891,55921a5b2e62b0e07b8ba9ae9ffca0f6e656263c,4bd5e15116a2a7eda3a5c7e0ffb187180ec0e3d5,1bcdfe7c5a0832b44f7e533b8f927881c7932dc1,ae9d8d5e418c1bfbade8f4574dc43758ea628289,8080355e6edde7f01bf7d9d340d9e0ef52c3c1cd,79ef6f41e89da009aefc1c00289fd3a301fae845,68c76297f5f2e7c3ceea09d195f48971ca7ab97e,d69f981e878991857486449306aa950c8283035f,de87a22419f1c1c39ed12d43dfa740de8372b097,
+5f3ab33d55007054bc5e3e5553cd8d8465d77c61,783333c9687df63377efceddd82efa9101913e8e,
diff --git a/Android/flashable/data/misc/keychain/serial_blacklist.txt b/Android/flashable/data/misc/keychain/serial_blacklist.txt
index b370753e3312b8ff50d0fe92789122574e04587c..ef459381a70bf7cac0f3958d63a64bef90b1ace0 100644
--- a/Android/flashable/data/misc/keychain/serial_blacklist.txt
+++ b/Android/flashable/data/misc/keychain/serial_blacklist.txt
@@ -1 +1 @@
-827,864,a40fd55e2a14343323a8d407a2255ae8,3,17,f0c1fb04dd2c9ed8f94f0820591e72ad,29,6497d09c3bbc9baf857ed3c29a31d1ec,2c,27,
+827,864,
diff --git a/Android/generate.sh b/Android/generate.sh
index 54e7c811dfaac3390991b3822e2f69d09fb16f76..5b4a35d4fddea7f050f554da848b29849681c77e 100755
--- a/Android/generate.sh
+++ b/Android/generate.sh
@@ -12,6 +12,10 @@ elif [ ${1:-extended} = 'extended' ];then
     echo "Generating EXTENDED CRL set"
     CA_CERTS=`ls ../Windows/Certs/CNNIC_*.crt ../Windows/Certs/China_Internet_Network_Information_Center_EV_Certificates_Root.crt ../Windows/Certs/[Suspicious]WaccBaiduCom.crt ../Windows/Certs/GiantRootCA.crt ../Windows/Certs/CFCA_*.crt  ../Windows/Certs/UCA_*.crt  ../Windows/Certs/[Suspicious]GoAgent_CA.crt`
     EE_CERTS=`ls ../Windows/Certs/\[Fake\]*.crt`
+elif [ ${1:-extended} = 'restore' ];then
+    echo "Generating RESTORE CRL set"
+    CA_CERTS=''
+    EE_CERTS=''
 else
     echo "Generating Basic CRL set"
     CA_CERTS=`ls ../Windows/Certs/CNNIC_*.crt ../Windows/Certs/China_Internet_Network_Information_Center_EV_Certificates_Root.crt ../Windows/Certs/[Suspicious]WaccBaiduCom.crt ../Windows/Certs/GiantRootCA.crt`
diff --git a/Android/pubkey_blacklist.txt b/Android/pubkey_blacklist.txt
index 5415b79e4ab3e212ce176a9d02795063aacbbea2..b4504a659f0bcf69249a9a355c7c1d35e707a5f8 100644
--- a/Android/pubkey_blacklist.txt
+++ b/Android/pubkey_blacklist.txt
@@ -1 +1 @@
-5f3ab33d55007054bc5e3e5553cd8d8465d77c61,783333c9687df63377efceddd82efa9101913e8e,3592761947e2907b7ac880f429bf2be66c81511a,8476c303b2e34d57fd0645a7c4315f2dbeaaf0a4,8476c303b2e34d57fd0645a7c4315f2dbeaaf0a4,bb2d75ce172accdf05d9a86d278298889986c891,55921a5b2e62b0e07b8ba9ae9ffca0f6e656263c,4bd5e15116a2a7eda3a5c7e0ffb187180ec0e3d5,1bcdfe7c5a0832b44f7e533b8f927881c7932dc1,ae9d8d5e418c1bfbade8f4574dc43758ea628289,8080355e6edde7f01bf7d9d340d9e0ef52c3c1cd,79ef6f41e89da009aefc1c00289fd3a301fae845,68c76297f5f2e7c3ceea09d195f48971ca7ab97e,d69f981e878991857486449306aa950c8283035f,de87a22419f1c1c39ed12d43dfa740de8372b097,
+5f3ab33d55007054bc5e3e5553cd8d8465d77c61,783333c9687df63377efceddd82efa9101913e8e,
diff --git a/Android/serial_blacklist.txt b/Android/serial_blacklist.txt
index b370753e3312b8ff50d0fe92789122574e04587c..ef459381a70bf7cac0f3958d63a64bef90b1ace0 100644
--- a/Android/serial_blacklist.txt
+++ b/Android/serial_blacklist.txt
@@ -1 +1 @@
-827,864,a40fd55e2a14343323a8d407a2255ae8,3,17,f0c1fb04dd2c9ed8f94f0820591e72ad,29,6497d09c3bbc9baf857ed3c29a31d1ec,2c,27,
+827,864,