Add a few labels in pending

Signed-off-by: Muntashir Al-Islam <muntashirakon@riseup.net>
This commit is contained in:
Muntashir Al-Islam 2023-07-20 22:42:35 +06:00
parent ae414954f5
commit 34e414068f
2 changed files with 110 additions and 41 deletions

View File

@ -1,12 +1,22 @@
[ [
{ {
"id": "android.auto_generated_rro_product__", "id": "android.auto_generated_rro_product__",
"description": "", "label": "android.auto_generated_rro_product__",
"description": "RRO = Runtime Resources Overlay. Used by OEMs to customize look and feel of certain applications.",
"web": [
"https://source.android.com/devices/architecture/rros",
"https://code.tutsplus.com/tutorials/quick-tip-theme-android-with-the-runtime-resource-overlay-framework--cms-29708"
],
"removal": "caution" "removal": "caution"
}, },
{ {
"id": "android.auto_generated_rro_vendor__", "id": "android.auto_generated_rro_vendor__",
"description": "", "label": "android.auto_generated_rro_vendor__",
"description": "RRO = Runtime Resources Overlay. Used by OEMs to customize look and feel of certain applications.",
"web": [
"https://source.android.com/devices/architecture/rros",
"https://code.tutsplus.com/tutorials/quick-tip-theme-android-with-the-runtime-resource-overlay-framework--cms-29708"
],
"removal": "caution" "removal": "caution"
}, },
{ {
@ -26,13 +36,33 @@
}, },
{ {
"id": "com.adups.fota", "id": "com.adups.fota",
"description": "", "label": "Wireless Update",
"removal": "caution" "description": "(AKA System Update) FOTA = Firmware Over-the-air. Has a history of spying its users. If the installed version is below 5.4.x, it must be uninstalled.",
"web": [
"https://www.malwarebytes.com/blog/news/2017/12/mobile-menace-monday-upping-the-ante-on-adups-fwupgradeprovider",
"https://www.cvedetails.com/vulnerability-list/vendor_id-16034/product_id-35606/year-2017/Adups-Adups-Fota.html"
],
"removal": "delete"
}, },
{ {
"id": "com.adups.fota.sysoper", "id": "com.adups.fota.sysoper",
"description": "", "label": "UpgradeSys",
"removal": "caution" "description": "FOTA = Firmware Over-the-air. Has a history of spying its users.",
"web": [
"https://www.malwarebytes.com/blog/news/2017/12/mobile-menace-monday-upping-the-ante-on-adups-fwupgradeprovider",
"https://www.cvedetails.com/vulnerability-list/vendor_id-16034/product_id-35606/year-2017/Adups-Adups-Fota.html"
],
"removal": "delete"
},
{
"id": "com.fw.upgrade.sysoper",
"label": "UpgradeSys",
"description": "FOTA = Firmware Over-the-air. Has a history of spying its users.",
"web": [
"https://www.malwarebytes.com/blog/news/2017/12/mobile-menace-monday-upping-the-ante-on-adups-fwupgradeprovider",
"https://www.cvedetails.com/vulnerability-list/vendor_id-16034/product_id-35606/year-2017/Adups-Adups-Fota.html"
],
"removal": "delete"
}, },
{ {
"id": "com.android.bluetooth.overlay.common", "id": "com.android.bluetooth.overlay.common",
@ -67,14 +97,19 @@
{ {
"id": "com.android.hotspot2.osulogin", "id": "com.android.hotspot2.osulogin",
"label": "OsuLogin", "label": "OsuLogin",
"description": "", "description": "Provides wifi tethering i.e. lets you share your mobile device's Internet connection with other devices.",
"web": [
"https://en.wikipedia.org/wiki/Tethering"
],
"removal": "caution" "removal": "caution"
}, },
{ {
"id": "com.android.launcher3", "id": "com.android.launcher3",
"label": "System Launcher", "label": "Quickstep",
"description": "", "description": "The AOSP launcher. OEMs frequently use this to deliver their own launcher.",
"removal": "caution" "removal": "caution",
"warning": "You need to install another launcher before removing it.",
"suggestions": "launchers"
}, },
{ {
"id": "com.android.networkstack.inprocess", "id": "com.android.networkstack.inprocess",
@ -754,33 +789,51 @@
}, },
{ {
"id": "com.sec.android.smartfpsadjuster", "id": "com.sec.android.smartfpsadjuster",
"description": "", "label": "SmartFPSAdjuster",
"removal": "caution" "description": "Adjusts FPS automatically in Samsung phones? Safe to delete.",
"web": [
"https://docs.samsungknox.com/CCMode/G985F_Q.pdf"
],
"removal": "delete"
}, },
{ {
"id": "com.sec.android.systemupdate", "id": "com.sec.android.systemupdate",
"description": "", "label": "SystemUpdate",
"removal": "caution" "description": "System updater for Samsung phones.",
"web": [
"https://docs.samsungknox.com/CCMode/G985F_Q.pdf"
],
"removal": "caution",
"warning": "Updates will stop working."
}, },
{ {
"id": "com.sec.factory.cameralyzer", "id": "com.sec.factory.cameralyzer",
"description": "", "label": "Cameralyzer",
"removal": "caution" "description": "A factory testing app that allows manufacturers to check for defects in the camera, had a security issue in the past",
"web": [
"https://techforesta.com/cameralyzer/",
"https://docs.samsungknox.com/CCMode/G985F_Q.pdf"
],
"removal": "delete"
}, },
{ {
"id": "com.sec.location.nfwlocationprivacy", "id": "com.sec.location.nfwlocationprivacy",
"label": "Service provider location",
"description": "", "description": "",
"removal": "caution" "removal": "replace"
}, },
{ {
"id": "com.sec.mhs.smarttethering", "id": "com.sec.mhs.smarttethering",
"label": "SmartTethering",
"description": "", "description": "",
"removal": "caution" "removal": "delete"
}, },
{ {
"id": "com.sec.unifiedwfc", "id": "com.sec.unifiedwfc",
"description": "", "label": "Samsung Wi-Fi Calling",
"removal": "caution" "description": "Wi-Fi calling app for Samsung.",
"removal": "caution",
"warning": "Wi-Fi calling may not work without the app"
}, },
{ {
"id": "com.sonymobile.devicesecurity.service", "id": "com.sonymobile.devicesecurity.service",
@ -799,8 +852,9 @@
}, },
{ {
"id": "com.srin.indramayu", "id": "com.srin.indramayu",
"description": "", "label": "Samsung Gift Indonesia",
"removal": "caution" "description": "Special application from Samsung that provides special offers and privileges for Indonesian users",
"removal": "delete"
}, },
{ {
"id": "com.st.nfc.dta.mobile", "id": "com.st.nfc.dta.mobile",
@ -1134,8 +1188,10 @@
}, },
{ {
"id": "com.tct.soundrecorder", "id": "com.tct.soundrecorder",
"description": "", "label": "Sound Recorder",
"removal": "caution" "description": "An audio and screen recorder, lets you change voice.",
"removal": "replace",
"suggestions": "audio_recorders"
}, },
{ {
"id": "com.tct.systemservice", "id": "com.tct.systemservice",
@ -1154,18 +1210,23 @@
}, },
{ {
"id": "com.tct.weather", "id": "com.tct.weather",
"description": "", "label": "Weather Forecast",
"removal": "caution" "description": "Weather forecasting app.",
"removal": "replace"
}, },
{ {
"id": "com.tct.weather.a_overlay", "id": "com.tct.weather.a_overlay",
"description": "", "label": "com.tct.weather.a_overlay",
"removal": "caution" "description": "Overlay for com.tct.weather. Usage is not known.",
"removal": "delete"
}, },
{ {
"id": "com.tct.wfcwebiew", "id": "com.tct.wfcwebiew",
"description": "", "label": "WfcWebView",
"removal": "caution" "description": "WebView app for TCL",
"removal": "caution",
"warning": "Make sure to have another WebView before removing it.",
"suggestions": "webviews"
}, },
{ {
"id": "com.ts.setupwizard.overlay.overlay", "id": "com.ts.setupwizard.overlay.overlay",

View File

@ -22,12 +22,14 @@ foreach (scandir(REPO_DIR) as $filename) {
} }
$file = REPO_DIR . '/' . $filename; $file = REPO_DIR . '/' . $filename;
$type = substr($filename, 0, -5); $type = substr($filename, 0, -5);
$list = json_decode(file_get_contents($file), true); try {
if ($list === null) { $list = json_decode(file_get_contents($file), true, 512, JSON_THROW_ON_ERROR);
fprintf($lint_writer, "Malformed file: $file\n"); } catch (JsonException $e) {
fprintf($lint_writer, "Unable to parse %s: %s\n", $filename, $e->getMessage());
++$error_count; ++$error_count;
continue; continue;
} else fprintf($lint_writer, "Adding $filename\n"); }
fprintf($lint_writer, "Adding $filename\n");
foreach ($list as $item) { foreach ($list as $item) {
$error_count += validate_bloatware_item($item); $error_count += validate_bloatware_item($item);
} }
@ -39,12 +41,14 @@ foreach (scandir(SUGGESTIONS_DIR) as $filename) {
} }
$suggestion_file = SUGGESTIONS_DIR . '/' . $filename; $suggestion_file = SUGGESTIONS_DIR . '/' . $filename;
$suggestion_id = substr($filename, 0, -5); $suggestion_id = substr($filename, 0, -5);
$single_suggestion_list = json_decode(file_get_contents($suggestion_file), true); try {
if ($single_suggestion_list === null) { $single_suggestion_list = json_decode(file_get_contents($suggestion_file), true, 512, JSON_THROW_ON_ERROR);
fprintf($lint_writer, "Malformed file: $suggestion_file\n"); } catch (JsonException $e) {
fprintf($lint_writer, 'Unable to parse %s: %s', $filename, $e->getMessage());
++$error_count; ++$error_count;
continue; continue;
} else fprintf($lint_writer, "Adding $filename\n"); }
fprintf($lint_writer, "Adding $filename\n");
foreach ($single_suggestion_list as $suggestion) { foreach ($single_suggestion_list as $suggestion) {
$error_count += validate_suggestion_item($suggestion); $error_count += validate_suggestion_item($suggestion);
} }
@ -73,9 +77,13 @@ function validate_bloatware_item(array $item): int {
++$error_count; ++$error_count;
} }
// `label` is an optional string // `label` is an optional string
if (isset($item['label']) && gettype($item['label']) != 'string') { if (isset($item['label'])) {
fprintf($lint_writer, "{$item['id']}: Expected `label` field to be a string, found: " . gettype($item['label']) . "\n"); if (gettype($item['label']) != 'string') {
++$error_count; fprintf($lint_writer, "{$item['id']}: Expected `label` field to be a string, found: " . gettype($item['label']) . "\n");
++$error_count;
}
} else {
fprintf(STDERR, "{$item['id']}: Missing `label`\n");
} }
// `dependencies` is an optional string[] // `dependencies` is an optional string[]
if (isset($item['dependencies'])) { if (isset($item['dependencies'])) {