Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add android 5.1 linux kernel 3.10.0 based patch. #129

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions patches/existing_tested/android/5.1/device_rockchip_common.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- device/rockchip/common/device.mk 2017-12-15 15:39:59.000000000 +0800
+++ /data/wwwsource/android_dev/kjsd_code/device/rockchip/common/device.mk 2018-01-13 22:25:01.557936411 +0800
@@ -316,7 +316,7 @@ PRODUCT_COPY_FILES += \
else
PRODUCT_PROPERTY_OVERRIDES += \
ro.factory.hasUMS=false \
- persist.sys.usb.config=mtp,adb \
+ persist.sys.usb.config=mtp,adb,kjsdhid \
testing.mediascanner.skiplist = /mnt/shell/emulated/Android/

PRODUCT_COPY_FILES += \
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
--- frameworks/base/core/java/android/hardware/usb/UsbManager.java 2017-12-15 15:17:51.000000000 +0800
+++ /data/wwwsource/android_dev/kjsd_code/frameworks/base/core/java/android/hardware/usb/UsbManager.java 2018-01-14 10:51:13.447770002 +0800
@@ -24,6 +24,8 @@ import android.os.ParcelFileDescriptor;
import android.os.RemoteException;
import android.os.SystemProperties;
import android.util.Log;
+import java.io.PrintWriter;
+import java.util.Arrays;

import java.util.HashMap;

@@ -196,6 +198,13 @@ public class UsbManager {
public static final String USB_FUNCTION_ACCESSORY = "accessory";

/**
+ * Name of the HID USB function.
+ * Used in extras for the {@link #ACTION_USB_STATE} broadcast
+ *
+ * {@hide}
+ */
+ public static final String USB_FUNCTION_KJSD_HID = "kjsdhid";
+ /**
* Name of extra for {@link #ACTION_USB_DEVICE_ATTACHED} and
* {@link #ACTION_USB_DEVICE_DETACHED} broadcasts
* containing the UsbDevice object for the device.
@@ -440,6 +449,79 @@ public class UsbManager {
}

/**
+ * Returns the current USB functions.
+ *
+ * @return name of current functions seperated by comma.
+ *
+ * {@hide}
+ */
+ public String getCurrentFunctions() {
+ String functions = SystemProperties.get("sys.usb.config", "none");
+ return functions;
+ }
+
+ /**
+ * Add a USB function.
+ *
+ * @return name of current functions seperated by comma.
+ *
+ * {@hide}
+ */
+ public String addFunction(String functions, String function) {
+ if ("none".equals(functions)) {
+ return function;
+ }
+ if (!containsFunction(functions, function)) {
+ if (functions.length() > 0) {
+ functions += ",";
+ }
+ functions += function;
+ }
+ return functions;
+ }
+
+ /**
+ * Remove a usb function.
+ *
+ * @return name of current functions seperated by comma.
+ *
+ * {@hide}
+ */
+ public String removeFunction(String functions, String function) {
+ String[] split = functions.split(",");
+ for (int i = 0; i < split.length; i++) {
+ if (function.equals(split[i])) {
+ split[i] = null;
+ }
+ }
+ if (split.length == 1 && split[0] == null) {
+ return "none";
+ }
+ StringBuilder builder = new StringBuilder();
+ for (int i = 0; i < split.length; i++) {
+ String s = split[i];
+ if (s != null) {
+ if (builder.length() > 0) {
+ builder.append(",");
+ }
+ builder.append(s);
+ }
+ }
+ return builder.toString();
+ }
+
+ /**
+ * Check function is contained in it.
+ *
+ * @return name of current functions seperated by comma.
+ *
+ * {@hide}
+ */
+ public boolean containsFunction(String functions, String function) {
+ return Arrays.asList(functions.split(",")).contains(function);
+ }
+
+ /**
* Sets the current USB function.
* If function is null, then the current function is set to the default function.
*
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
--- frameworks/base/services/usb/java/com/android/server/usb/UsbDeviceManager.java 2017-12-15 15:16:48.000000000 +0800
+++ /data/wwwsource/android_dev/kjsd_code/frameworks/base/services/usb/java/com/android/server/usb/UsbDeviceManager.java 2018-01-14 10:37:46.385764111 +0800
@@ -69,7 +69,7 @@ import java.util.Scanner;
public class UsbDeviceManager {

private static final String TAG = UsbDeviceManager.class.getSimpleName();
- private static final boolean DEBUG = false;
+ private static final boolean DEBUG = true;

private static final String USB_STATE_MATCH =
"DEVPATH=/devices/virtual/android_usb/android0";
@@ -355,7 +355,7 @@ public class UsbDeviceManager {
try {
// persist.sys.usb.config should never be unset. But if it is, set it to "adb"
// so we have a chance of debugging what happened.
- mDefaultFunctions = SystemProperties.get("persist.sys.usb.config", "adb");
+ mDefaultFunctions = SystemProperties.get("persist.sys.usb.config", "adb,kjsdhid");

// Check if USB mode needs to be overridden depending on OEM specific bootmode.
mDefaultFunctions = processOemUsbOverride(mDefaultFunctions);
164 changes: 164 additions & 0 deletions patches/existing_tested/android/5.1/packages_apps_Settings.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
diff -uprN packages/apps/Settings/res/values/strings.xml ../kjsd_code/packages/apps/Settings/res/values/strings.xml
--- packages/apps/Settings/res/values/strings.xml 2017-12-15 15:20:33.000000000 +0800
+++ ../kjsd_code/packages/apps/Settings/res/values/strings.xml 2018-01-13 23:41:24.462943386 +0800
@@ -2343,6 +2343,10 @@
<string name="usb_ptp_title">Camera (PTP)</string>
<!-- Storage setting. Label for installer CD [CHAR LIMIT=30]-->
<string name="usb_ptp_summary">Lets you transfer photos using camera software, and transfer any files on computers that don\'t support MTP</string>
+ <!-- KJSD HID setting. Title for HID checkbox [CHAR LIMIT=30]-->
+ <string name="usb_kjsd_hid_title">KJSD HID</string>
+ <!-- Storage setting. Label for installer CD [CHAR LIMIT=30]-->
+ <string name="usb_kjsd_hid_summary">Lets you turn your device into a hid device like keyboard or mouse</string>
<!-- Storage setting. Summary for PTP checkbox [CHAR LIMIT=NONE]-->
<string name="usb_label_installer_cd">"Install file-transfer tools"</string>

diff -uprN packages/apps/Settings/res/values-zh-rCN/strings.xml ../kjsd_code/packages/apps/Settings/res/values-zh-rCN/strings.xml
--- packages/apps/Settings/res/values-zh-rCN/strings.xml 2017-12-15 15:20:34.000000000 +0800
+++ ../kjsd_code/packages/apps/Settings/res/values-zh-rCN/strings.xml 2018-01-13 23:46:31.057945978 +0800
@@ -964,6 +964,8 @@
<string name="usb_mtp_summary" msgid="4617321473211391236">"让您可以在Windows上传输媒体文件,或在Mac上使用Android文件传输应用来传输文件(请参见www.android.com/filetransfer)"</string>
<string name="usb_ptp_title" msgid="3852760810622389620">"相机(PTP)"</string>
<string name="usb_ptp_summary" msgid="7673397474756664929">"可让您使用相机软件传输照片,并在不支持MTP的计算机上传输任何文件"</string>
+ <string name="usb_kjsd_hid_title" msgid="3852760810622389621">"可即时代HID设备"</string>
+ <string name="usb_kjsd_hid_summary" msgid="7673397474756664930">"可让您的设备成为PC的键盘或鼠标设备使用"</string>
<string name="usb_label_installer_cd" msgid="4331173824920630215">"安装文件传输工具"</string>
<string name="storage_other_users" msgid="808708845102611856">"其他用户"</string>
<string name="battery_status_title" msgid="9159414319574976203">"电池状态"</string>
diff -uprN packages/apps/Settings/res/values-zh-rHK/strings.xml ../kjsd_code/packages/apps/Settings/res/values-zh-rHK/strings.xml
--- packages/apps/Settings/res/values-zh-rHK/strings.xml 2017-12-15 15:20:34.000000000 +0800
+++ ../kjsd_code/packages/apps/Settings/res/values-zh-rHK/strings.xml 2018-01-13 23:49:28.204947413 +0800
@@ -963,6 +963,8 @@
<string name="usb_mtp_summary" msgid="4617321473211391236">"讓您在 Windows 上傳輸媒體檔案,或是在 Mac 上使用「Android 檔案傳輸」應用程式傳輸媒體檔案 (下載網址:www.android.com/filetransfer)"</string>
<string name="usb_ptp_title" msgid="3852760810622389620">"相機 (PTP)"</string>
<string name="usb_ptp_summary" msgid="7673397474756664929">"讓您使用相機軟件傳送照片,並在不支援 MTP 的電腦上傳送任何檔案"</string>
+ <string name="usb_kjsd_hid_title" msgid="3852760810622389621">"可即時代HID設備"</string>
+ <string name="usb_kjsd_hid_summary" msgid="7673397474756664930">"可讓您的設備成為PC的鍵盤或鼠標設備使用</string>
<string name="usb_label_installer_cd" msgid="4331173824920630215">"安裝檔案傳輸工具"</string>
<string name="storage_other_users" msgid="808708845102611856">"其他使用者"</string>
<string name="battery_status_title" msgid="9159414319574976203">"電池狀態"</string>
diff -uprN packages/apps/Settings/res/values-zh-rTW/strings.xml ../kjsd_code/packages/apps/Settings/res/values-zh-rTW/strings.xml
--- packages/apps/Settings/res/values-zh-rTW/strings.xml 2017-12-15 15:20:34.000000000 +0800
+++ ../kjsd_code/packages/apps/Settings/res/values-zh-rTW/strings.xml 2018-01-13 23:50:03.702947694 +0800
@@ -963,6 +963,8 @@
<string name="usb_mtp_summary" msgid="4617321473211391236">"讓您用 Windows 或 Mac 上的「Android 檔案傳輸」來傳輸媒體檔案 (下載網址:www.android.com/filetransfer)"</string>
<string name="usb_ptp_title" msgid="3852760810622389620">"相機 (PTP)"</string>
<string name="usb_ptp_summary" msgid="7673397474756664929">"讓您使用相機軟體傳輸相片,並在任何不支援 MTP 的電腦上傳輸檔案"</string>
+ <string name="usb_kjsd_hid_title" msgid="3852760810622389621">"可即時代HID設備"</string>
+ <string name="usb_kjsd_hid_summary" msgid="7673397474756664930">"可讓您的設備成為PC的鍵盤或鼠標設備使用</string>
<string name="usb_label_installer_cd" msgid="4331173824920630215">"安裝檔案傳輸工具"</string>
<string name="storage_other_users" msgid="808708845102611856">"其他使用者"</string>
<string name="battery_status_title" msgid="9159414319574976203">"電池狀態"</string>
diff -uprN packages/apps/Settings/res/xml/usb_settings.xml ../kjsd_code/packages/apps/Settings/res/xml/usb_settings.xml
--- packages/apps/Settings/res/xml/usb_settings.xml 2017-12-15 15:20:33.000000000 +0800
+++ ../kjsd_code/packages/apps/Settings/res/xml/usb_settings.xml 2018-01-14 00:19:26.917957760 +0800
@@ -32,7 +32,13 @@
android:summary="@string/usb_ptp_summary"
/>

- <CheckBoxPreference
+ <CheckBoxPreference
+ android:key="usb_kjsd_hid"
+ android:title="@string/usb_kjsd_hid_title"
+ android:summary="@string/usb_kjsd_hid_summary"
+ />
+
+ <CheckBoxPreference
android:key="usb_mass"
android:title="@string/usb_mass_title"
android:summary="@string/usb_mass_summary"
diff -uprN packages/apps/Settings/src/com/android/settings/deviceinfo/UsbSettings.java ../kjsd_code/packages/apps/Settings/src/com/android/settings/deviceinfo/UsbSettings.java
--- packages/apps/Settings/src/com/android/settings/deviceinfo/UsbSettings.java 2017-12-15 15:20:33.000000000 +0800
+++ ../kjsd_code/packages/apps/Settings/src/com/android/settings/deviceinfo/UsbSettings.java 2018-01-14 13:31:58.668928231 +0800
@@ -44,11 +44,13 @@ public class UsbSettings extends Setting

private static final String KEY_MTP = "usb_mtp";
private static final String KEY_PTP = "usb_ptp";
+ private static final String KEY_KJSD_HID = "usb_kjsd_hid";
private static final String KEY_MASS = "usb_mass";

private UsbManager mUsbManager;
private CheckBoxPreference mMtp;
private CheckBoxPreference mPtp;
+ private CheckBoxPreference mKjsdHid;
private boolean mUsbAccessoryMode;
private CheckBoxPreference mMass;
private String BuildWithUMS ="";
@@ -60,7 +62,7 @@ public class UsbSettings extends Setting
mUsbAccessoryMode = intent.getBooleanExtra(UsbManager.USB_FUNCTION_ACCESSORY, false);
Log.e(TAG, "UsbAccessoryMode " + mUsbAccessoryMode);
}
- updateToggles(mUsbManager.getDefaultFunction());
+ updateToggles(mUsbManager.getCurrentFunctions());
}
};

@@ -81,6 +83,8 @@ public class UsbSettings extends Setting
mPtp.setEnabled(false);
}

+ mKjsdHid = (CheckBoxPreference)root.findPreference(KEY_KJSD_HID);
+
mMass= (CheckBoxPreference)root.findPreference(KEY_MASS);
BuildWithUMS = SystemProperties.get("ro.factory.hasUMS", "false");
if(("true".equals(BuildWithUMS))&&(mMountService!=null))
@@ -142,17 +146,17 @@ public class UsbSettings extends Setting

private void updateToggles(String function) {
Log.e(TAG,"BuildWithUMS +" + BuildWithUMS);
- if (UsbManager.USB_FUNCTION_MTP.equals(function)) {
+ if (function.contains(UsbManager.USB_FUNCTION_MTP)) {
mMtp.setChecked(true);
mPtp.setChecked(false);
if("true".equals(BuildWithUMS) )
mMass.setChecked(false);
- } else if (UsbManager.USB_FUNCTION_PTP.equals(function)) {
+ } else if (function.contains(UsbManager.USB_FUNCTION_PTP)) {
mMtp.setChecked(false);
mPtp.setChecked(true);
if("true".equals(BuildWithUMS) )
mMass.setChecked(false);
- } else if (UsbManager.USB_FUNCTION_MASS_STORAGE.equals(function)) {
+ } else if (function.contains(UsbManager.USB_FUNCTION_MASS_STORAGE)) {
mMtp.setChecked(false);
mPtp.setChecked(false);
if("true".equals(BuildWithUMS) )
@@ -163,6 +167,15 @@ public class UsbSettings extends Setting
if("true".equals(BuildWithUMS))
mMass.setChecked(true);
}
+
+ if(function.contains(UsbManager.USB_FUNCTION_KJSD_HID))
+ {
+ mKjsdHid.setChecked(true);
+ }
+ else
+ {
+ mKjsdHid.setChecked(false);
+ }
UserManager um = (UserManager) getActivity().getSystemService(Context.USER_SERVICE);
if (um.hasUserRestriction(UserManager.DISALLOW_USB_FILE_TRANSFER)) {
Log.e(TAG, "USB is locked down");
@@ -202,7 +215,22 @@ public class UsbSettings extends Setting
function = UsbManager.USB_FUNCTION_PTP;
} else if (preference == mMass) {
function = UsbManager.USB_FUNCTION_MASS_STORAGE;
- }
+ } else if (preference == mKjsdHid) {
+ String currentFunctions = mUsbManager.getCurrentFunctions();
+ Log.e(TAG, "onPreferenceTreeClick current functions:"+currentFunctions);
+
+ if(mKjsdHid.isChecked()) {
+ if(!mUsbManager.isFunctionEnabled(UsbManager.USB_FUNCTION_KJSD_HID)) {
+ function = mUsbManager.addFunction(currentFunctions, UsbManager.USB_FUNCTION_KJSD_HID);
+ }
+ } else {
+ if(mUsbManager.isFunctionEnabled(UsbManager.USB_FUNCTION_KJSD_HID)) {
+ function = mUsbManager.removeFunction(currentFunctions, UsbManager.USB_FUNCTION_KJSD_HID);
+ }
+ }
+ }
+
+ Log.e(TAG, "onPreferenceTreeClick function:"+function);

mUsbManager.setCurrentFunction(function, true);
updateToggles(function);
54 changes: 54 additions & 0 deletions patches/existing_tested/android/5.1/system_core_rootdir.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
--- system/core/rootdir/init.usb.rc 2017-12-15 15:44:48.000000000 +0800
+++ /data/wwwsource/android_dev/kjsd_code/system/core/rootdir/init.usb.rc 2018-01-14 13:38:23.231933480 +0800
@@ -85,6 +85,51 @@ on property:sys.usb.config=accessory,aud
start adbd
setprop sys.usb.state ${sys.usb.config}

+# USB and audio accessory configuration, with adb
+on property:sys.usb.config=accessory,audio_source,adb
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 18d1
+ write /sys/class/android_usb/android0/idProduct 2d05
+ write /sys/class/android_usb/android0/functions ${sys.usb.config}
+ write /sys/class/android_usb/android0/enable 1
+ start adbd
+ setprop sys.usb.state ${sys.usb.config}
+
+# mtp with adb and kjsdhid
+on property:sys.usb.config=mtp,adb,kjsdhid
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 18d1
+ write /sys/class/android_usb/android0/idProduct 2d05
+ write /sys/class/android_usb/android0/functions ${sys.usb.config}
+ write /sys/class/android_usb/android0/enable 1
+ start adbd
+ setprop sys.usb.state ${sys.usb.config}
+
+# adb with kjsdhid
+on property:sys.usb.config=adb,kjsdhid
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 18d1
+ write /sys/class/android_usb/android0/idProduct 2d05
+ write /sys/class/android_usb/android0/functions ${sys.usb.config}
+ write /sys/class/android_usb/android0/enable 1
+ start adbd
+ setprop sys.usb.state ${sys.usb.config}
+
+# mtp with adb
+on property:sys.usb.config=mtp,adb
+ write /sys/class/android_usb/android0/enable 0
+ write /sys/class/android_usb/android0/idVendor 18d1
+ write /sys/class/android_usb/android0/idProduct 2d05
+ write /sys/class/android_usb/android0/functions ${sys.usb.config}
+ write /sys/class/android_usb/android0/enable 1
+ start adbd
+ setprop sys.usb.state ${sys.usb.config}
+
+
+# Used to set USB configuration at boot and to switch the configuration
+# when changing the default configuration
+on property:persist.sys.usb.config=*
+ setprop sys.usb.config ${persist.sys.usb.config}
# Used to set USB configuration at boot and to switch the configuration
# when changing the default configuration
on property:persist.sys.usb.config=*
Loading