码迷,mamicode.com
首页 > Web开发 > 详细

I.MX6 Ethernet UI patch failed

时间:2016-04-21 15:01:43      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:

/***********************************************************************
 *                     I.MX6 Ethernet UI patch failed
 * 说明:
 *     最近想要在I.MX6的Android上添加Ethernet UI界面,但是使用NXP提供的
 * patch,结果失败了。
 *
 *                                     2016-4-21 深圳 南山平山村 曾剑锋
 **********************************************************************/

一、参考文档:
    How to Add Ethernet UI Support in ICS
        https://community.freescale.com/docs/DOC-93626

二、Introduction
    If you want to add Ethernet UI support , you need manually apply the attached patches in this file which is based on Android ICS and i.MX6.
    About what the patches do, here is some comments:
        1. framework/base-----0001-ENGR00220371-Ethernet-add-support-for-ethernet.patch
            By default, Android has no support for Ethernet UI. So if you want to add Ethernet UI , add Ethernet state tracker & Ethernet service & Ethernet manager & Ethernet monitor like WiFi. Meanwhile we need add Ethernet display support in status bar. Here this patch can solve it.
        2. Build---0001-ENGR00220371-Ethernet-add-ethernet-support.patch
            add package directory compile.
        3. packages\apps\Settings---0001-ENGR00220371-Ethernet-add-app-UI-in-setting.patch
            add UI logic in setting app.
        4. packages\providers\DownloadProvider---0001-ENGR00220371-Ethernet-add-downloadinfo.patch
            add ConnectivityManager.TYPE_ETHERNET type support in download provider’s DownloadInfo.

三、decompress:
    myzr@myzr:~/myandroid$ unzip imx6-ics-ethernet-v3.zip 
    Archive:  imx6-ics-ethernet-v3.zip
      inflating: build/0001-ENGR00220371-Ethernet-add-ethernet-support.patch  
       creating: Frameworks/
       creating: Frameworks/base/
      inflating: Frameworks/base/0001-enhance-ethernet-handling-thanks-to-Android-x86-proj.patch  
      inflating: packages/apps/Settings/0001-Adds-Ethernet-Settings-Android-x86-patch.patch  
      inflating: packages/providers/DownloadProvider/0001-Adds-Ethernet-support-for-Freescale-platform.patch  
    myzr@myzr:~/myandroid$ cp Frameworks/base/0001-enhance-ethernet-handling-thanks-to-Android-x86-proj.patch frameworks/base/

四、patch:
    1. 0001-ENGR00220371-Ethernet-add-ethernet-support.patch
        myzr@myzr:~/myandroid/build$ patch -p1 < 0001-ENGR00220371-Ethernet-add-ethernet-support.patch 
        patching file core/pathmap.mk
        Hunk #1 succeeded at 94 (offset 7 lines).

    2. 0001-Adds-Ethernet-Settings-Android-x86-patch.patch 
        myzr@myzr:~/myandroid/packages/apps/Settings$ patch -p1 < 0001-Adds-Ethernet-Settings-Android-x86-patch.patch 
        patching file AndroidManifest.xml
        Hunk #1 succeeded at 133 (offset 45 lines).
        patching file proguard.flags
        Hunk #1 FAILED at 11.
        1 out of 1 hunk FAILED -- saving rejects to file proguard.flags.rej
        patching file res/drawable/ic_settings_ethernet.xml
        patching file res/layout/eth_configure.xml
        patching file res/values/strings.xml
        Hunk #1 succeeded at 1237 with fuzz 2 (offset 85 lines).
        patching file res/xml/ethernet_settings.xml
        patching file res/xml/settings_headers.xml
        Hunk #1 succeeded at 58 with fuzz 2 (offset 1 line).
        patching file src/com/android/settings/ethernet/EthernetConfigDialog.java
        patching file src/com/android/settings/ethernet/EthernetEnabler.java
        patching file src/com/android/settings/ethernet/EthernetLayer.java
        patching file src/com/android/settings/ethernet/EthernetSettings.java

    3. 0001-Adds-Ethernet-support-for-Freescale-platform.patch 
        myzr@myzr:~/myandroid/packages/providers/DownloadProvider$ patch -p1 < 0001-Adds-Ethernet-support-for-Freescale-platform.patch 
        patching file src/com/android/providers/downloads/DownloadInfo.java
        Hunk #1 succeeded at 424 with fuzz 2 (offset 6 lines).
        Hunk #2 succeeded at 443 (offset 6 lines).

    4. 0001-enhance-ethernet-handling-thanks-to-Android-x86-proj.patch 
        myzr@myzr:~/myandroid/frameworks/base$ patch -p1 < 0001-enhance-ethernet-handling-thanks-to-Android-x86-proj.patch 
        patching file Android.mk
        Hunk #1 FAILED at 197.
        1 out of 1 hunk FAILED -- saving rejects to file Android.mk.rej
        patching file api/current.txt
        Hunk #1 succeeded at 3352 (offset 154 lines).
        Hunk #2 succeeded at 5439 with fuzz 2 (offset 328 lines).
        Hunk #3 succeeded at 12937 (offset 946 lines).
        Hunk #4 FAILED at 17632.
        1 out of 4 hunks FAILED -- saving rejects to file api/current.txt.rej
        patching file core/java/android/app/ContextImpl.java
        Hunk #1 succeeded at 74 (offset 13 lines).
        Hunk #2 succeeded at 520 with fuzz 1 (offset 62 lines).
        patching file core/java/android/app/DownloadManager.java
        Hunk #1 succeeded at 351 with fuzz 2 (offset 10 lines).
        patching file core/java/android/content/Context.java
        Hunk #1 succeeded at 1838 (offset 377 lines).
        patching file core/java/android/net/EthernetDataTracker.java
        Hunk #1 FAILED at 139.
        1 out of 1 hunk FAILED -- saving rejects to file core/java/android/net/EthernetDataTracker.java.rej
        patching file core/java/android/provider/Settings.java
        Hunk #1 FAILED at 3220.
        1 out of 1 hunk FAILED -- saving rejects to file core/java/android/provider/Settings.java.rej
        patching file core/jni/Android.mk
        Hunk #1 succeeded at 76 with fuzz 2 (offset 2 lines).
        patching file core/jni/AndroidRuntime.cpp
        Hunk #1 succeeded at 146 with fuzz 1.
        Hunk #2 FAILED at 1160.
        1 out of 2 hunks FAILED -- saving rejects to file core/jni/AndroidRuntime.cpp.rej
        patching file core/jni/android_net_ethernet.cpp
        patching file core/res/res/values/config.xml
        Hunk #1 succeeded at 34 (offset -1 lines).
        Hunk #2 succeeded at 146 (offset 30 lines).
        Hunk #3 succeeded at 169 (offset 30 lines).
        patching file ethernet/java/android/net/ethernet/EthernetDevInfo.aidl
        patching file ethernet/java/android/net/ethernet/EthernetDevInfo.java
        patching file ethernet/java/android/net/ethernet/EthernetManager.java
        patching file ethernet/java/android/net/ethernet/EthernetMonitor.java
        patching file ethernet/java/android/net/ethernet/EthernetNative.java
        patching file ethernet/java/android/net/ethernet/EthernetStateTracker.java
        patching file ethernet/java/android/net/ethernet/IEthernetManager.aidl
        patching file packages/SystemUI/res/layout/signal_cluster_view.xml
        patching file packages/SystemUI/res/values/strings.xml
        Hunk #1 succeeded at 413 (offset 66 lines).
        patching file packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
        Hunk #1 FAILED at 41.
        Hunk #2 succeeded at 75 (offset 1 line).
        Hunk #3 succeeded at 92 (offset 2 lines).
        Hunk #4 FAILED at 110.
        Hunk #5 FAILED at 144.
        3 out of 5 hunks FAILED -- saving rejects to file packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java.rej
        patching file packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java
        Hunk #1 succeeded at 26 (offset -5 lines).
        Hunk #2 succeeded at 60 (offset -3 lines).
        Hunk #4 succeeded at 115 (offset 1 line).
        Hunk #5 succeeded at 154 (offset 6 lines).
        Hunk #6 succeeded at 169 (offset 9 lines).
        Hunk #7 succeeded at 185 with fuzz 1 (offset 9 lines).
        Hunk #8 succeeded at 210 (offset 18 lines).
        Hunk #9 succeeded at 250 with fuzz 2 (offset 18 lines).
        Hunk #10 succeeded at 296 (offset 26 lines).
        Hunk #11 succeeded at 347 (offset 36 lines).
        Hunk #12 succeeded at 432 (offset 63 lines).
        Hunk #13 succeeded at 938 (offset 96 lines).
        Hunk #14 succeeded at 1025 (offset 108 lines).
        Hunk #15 succeeded at 1067 with fuzz 2 (offset 111 lines).
        Hunk #16 succeeded at 1081 with fuzz 1 (offset 113 lines).
        Hunk #17 succeeded at 1153 (offset 115 lines).
        Hunk #18 FAILED at 1090.
        Hunk #19 succeeded at 1237 (offset 127 lines).
        Hunk #20 FAILED at 1125.
        Hunk #21 succeeded at 1325 (offset 142 lines).
        Hunk #22 succeeded at 1356 (offset 142 lines).
        Hunk #23 succeeded at 1375 (offset 142 lines).
        Hunk #24 succeeded at 1452 with fuzz 1 (offset 154 lines).
        Hunk #25 succeeded at 1550 (offset 166 lines).
        2 out of 25 hunks FAILED -- saving rejects to file packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java.rej
        patching file packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
        Hunk #1 succeeded at 272 (offset 38 lines).
        patching file services/java/com/android/server/ConnectivityService.java
        Hunk #1 succeeded at 68 (offset 14 lines).
        Hunk #2 succeeded at 449 (offset 34 lines).
        Hunk #3 FAILED at 511.
        1 out of 3 hunks FAILED -- saving rejects to file services/java/com/android/server/ConnectivityService.java.rej
        patching file services/java/com/android/server/EthernetService.java
        myzr@myzr:~/myandroid/frameworks/base$ 

五、manual for patch Faileds: 
    1. 以下是打补丁出现问题的部分,需要手动打补丁。
    2. 1 out of 1 hunk FAILED -- saving rejects to file proguard.flags.rej
        1. cat packages/apps/Settings/proguard.flags.rej
            --- proguard.flags
            +++ proguard.flags
            @@ -11,4 +11,4 @@
             -keep class com.android.settings.MasterClearConfirm
             -keep class com.android.settings.accounts.*
             -keep class com.android.settings.fuelgauge.*
            -
            +-keep class com.android.settings.ethernet.*
    3.  1 out of 1 hunk FAILED -- saving rejects to file Android.mk.rej
        1. cat framework/base/Android.mk.rej       
            --- Android.mk
            +++ Android.mk
            @@ -197,6 +197,7 @@
                telephony/java/com/android/internal/telephony/IWapPushManager.aidl                 wifi/java/android/net/wifi/IWifiManager.aidl                 wifi/java/android/net/wifi/p2p/IWifiP2pManager.aidl             +   ethernet/java/android/net/ethernet/IEthernetManager.aidl                 telephony/java/com/android/internal/telephony/IExtendedNetworkService.aidl                 voip/java/android/net/sip/ISipSession.aidl                 voip/java/android/net/sip/ISipSessionListener.aidl     4. 1 out of 4 hunks FAILED -- saving rejects to file api/current.txt.rej
        1. cat framework/base/api/current.txt.rej
            --- api/current.txt
            +++ api/current.txt
            @@ -17632,6 +17758,14 @@
                 field public static final java.lang.String DEVICE_PROVISIONED = "device_provisioned";
                 field public static final java.lang.String ENABLED_ACCESSIBILITY_SERVICES = "enabled_accessibility_ser    vices";
                 field public static final java.lang.String ENABLED_INPUT_METHODS = "enabled_input_methods";
            +    field public static final java.lang.String ETHERNET_CONF = "ethernet_conf";
            +    field public static final java.lang.String ETHERNET_DNS = "ethernet_dns";
            +    field public static final java.lang.String ETHERNET_IFNAME = "ethernet_ifname";
            +    field public static final java.lang.String ETHERNET_IP = "ethernet_ip";
            +    field public static final java.lang.String ETHERNET_MASK = "ethernet_netmask";
            +    field public static final java.lang.String ETHERNET_MODE = "ethernet_mode";
            +    field public static final java.lang.String ETHERNET_ON = "ethernet_on";
            +    field public static final java.lang.String ETHERNET_ROUTE = "ethernet_iproute";
                 field public static final java.lang.String HTTP_PROXY = "http_proxy";
                 field public static final java.lang.String INPUT_METHOD_SELECTOR_VISIBILITY = "input_method_selector_v    isibility";
                 field public static final java.lang.String INSTALL_NON_MARKET_APPS = "install_non_market_apps";
    5. 1 out of 1 hunk FAILED -- saving rejects to file core/java/android/net/EthernetDataTracker.java.rej
        1. cat framework/base/core/java/android/net/EthernetDataTracker.java.rej
            --- core/java/android/net/EthernetDataTracker.java
            +++ core/java/android/net/EthernetDataTracker.java
            @@ -139,20 +139,18 @@
                     mNetworkInfo.setIsAvailable(false);
                     mNetworkInfo.setDetailedState(DetailedState.DISCONNECTED, null, null);

            -        Message msg = mCsHandler.obtainMessage(EVENT_CONFIGURATION_CHANGED, mNetworkInfo);
            -        msg.sendToTarget();
            -
            -        msg = mCsHandler.obtainMessage(EVENT_STATE_CHANGED, mNetworkInfo);
            +        Message msg = mCsHandler.obtainMessage(EVENT_STATE_CHANGED, mNetworkInfo);
                     msg.sendToTarget();
            -   if (mClearIp){
            -       IBinder b = ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE);
            -       INetworkManagementService service = INetworkManagementService.Stub.asInterface(b);
            -       try {
            -                service.clearInterfaceAddresses(mIface);
            -       } catch (Exception e) {
            -       Log.e(TAG, "Failed to clear addresses or disable ip" + e);
            -       }
            -   }
            +        
            +       if (mClearIp){
            +           IBinder b = ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE);
            +           INetworkManagementService service = INetworkManagementService.Stub.asInterface(b);
            +           try {
            +                    service.clearInterfaceAddresses(mIface);
            +           } catch (Exception e) {
            +           Log.e(TAG, "Failed to clear addresses or disable ip" + e);
            +           }
            +       }
                 }

                 private void interfaceRemoved(String iface) {
    6. 1 out of 1 hunk FAILED -- saving rejects to file core/java/android/provider/Settings.java.rej
        1. cat framework/base/core/java/android/provider/Settings.java.rej
            --- core/java/android/provider/Settings.java
            +++ core/java/android/provider/Settings.java
            @@ -3220,6 +3220,18 @@
                         "wifi_mobile_data_transition_wakelock_timeout_ms";

                     /**
            +         * Ethernet related configurations
            +         */
            +        public static final String ETHERNET_ON      = "ethernet_on";
            +        public static final String ETHERNET_MODE    = "ethernet_mode";
            +        public static final String ETHERNET_IP      = "ethernet_ip";
            +        public static final String ETHERNET_MASK    = "ethernet_netmask";
            +        public static final String ETHERNET_DNS     = "ethernet_dns";
            +        public static final String ETHERNET_ROUTE   = "ethernet_iproute";
            +        public static final String ETHERNET_CONF    = "ethernet_conf";
            +        public static final String ETHERNET_IFNAME  = "ethernet_ifname";
            +
            +        /**
                      * Whether background data usage is allowed by the user. See
                      * ConnectivityManager for more info.
                      */
    7. 1 out of 2 hunks FAILED -- saving rejects to file core/jni/AndroidRuntime.cpp.rej
        1. cat framework/base/core/jni/AndroidRuntime.cpp.rej
            --- core/jni/AndroidRuntime.cpp
            +++ core/jni/AndroidRuntime.cpp
            @@ -1160,6 +1161,7 @@
                 REG_JNI(register_android_net_NetworkUtils),
                 REG_JNI(register_android_net_TrafficStats),
                 REG_JNI(register_android_net_wifi_WifiManager),
            +    REG_JNI(register_android_net_ethernet_EthernetManager),
                 REG_JNI(register_android_nfc_NdefMessage),
                 REG_JNI(register_android_nfc_NdefRecord),
                 REG_JNI(register_android_os_MemoryFile),
    8. 3 out of 5 hunks FAILED -- saving rejects to file packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java.rej
        1. cat framework/base/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java.rej
            --- packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
            +++ packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
            @@ -41,13 +41,15 @@

                 private boolean mWifiVisible = false;
                 private int mWifiStrengthId = 0, mWifiActivityId = 0;
            +    private boolean mEthernetVisible = false;
            +    private int mEthernetId = 0;
                 private boolean mMobileVisible = false;
                 private int mMobileStrengthId = 0, mMobileActivityId = 0, mMobileTypeId = 0;
                 private boolean mIsAirplaneMode = false;
            -    private String mWifiDescription, mMobileDescription, mMobileTypeDescription;
            +    private String mWifiDescription, mEthernetDescription, mMobileDescription, mMobileTypeDescription;

            -    ViewGroup mWifiGroup, mMobileGroup;
            -    ImageView mWifi, mMobile, mWifiActivity, mMobileActivity, mMobileType;
            +    ViewGroup mWifiGroup, mEthernetGroup, mMobileGroup;
            +    ImageView mWifi, mEthernet, mMobile, mWifiActivity, mMobileActivity, mMobileType;
                 View mSpacer;

                 public SignalClusterView(Context context) {
            @@ -110,6 +116,15 @@
                     apply();
                 }

            +    public void setEthernetIndicators(boolean visible, int statusIcon, 
            +            String contentDescription) {
            +        mEthernetVisible = visible;
            +        mEthernetId = statusIcon;
            +        mEthernetDescription = contentDescription;
            +
            +        apply();
            +    }
            +
                 public void setMobileDataIndicators(boolean visible, int strengthIcon, int activityIcon,
                         int typeIcon, String contentDescription, String typeContentDescription) {
                     mMobileVisible = visible;
            @@ -144,6 +159,14 @@
                                 (mWifiVisible ? "VISIBLE" : "GONE"),
                                 mWifiStrengthId, mWifiActivityId));

            +        if (mEthernetVisible) {
            +            mEthernetGroup.setVisibility(View.VISIBLE);
            +            mEthernet.setImageResource(mEthernetId);
            +            mEthernetGroup.setContentDescription(mEthernetDescription);
            +        } else {
            +            mEthernetGroup.setVisibility(View.GONE);
            +        }
            +
                     if (mMobileVisible) {
                         mMobileGroup.setVisibility(View.VISIBLE);
                         mMobile.setImageResource(mMobileStrengthId);
    9. 2 out of 25 hunks FAILED -- saving rejects to file packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java.rej
        1. cat framework/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java.rej
            --- packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java
            +++ packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java
            @@ -1090,7 +1163,7 @@
                             combinedSignalIconId = mDataSignalIconId;
                         }
                     }
            -        else if (!mDataConnected && !mWifiConnected && !mBluetoothTethered && !mWimaxConnected) {
            +        else if (!mDataConnected && !mWifiConnected && !mEthernetConnected && !mBluetoothTethered && !mWimaxConnected) {
                         // pretty much totally disconnected

                         combinedLabel = context.getString(R.string.status_bar_settings_signal_meter_disconnected);
            @@ -1125,12 +1199,14 @@
                                 + " mDataSignalIconId=0x" + Integer.toHexString(mDataSignalIconId)
                                 + " mDataTypeIconId=0x" + Integer.toHexString(mDataTypeIconId)
                                 + " mWifiIconId=0x" + Integer.toHexString(mWifiIconId)
            +                    + " mEthernetIconId=0x" + Integer.toHexString(mEthernetIconId)
                                 + " mBluetoothTetherIconId=0x" + Integer.toHexString(mBluetoothTetherIconId));
                     }

                     if (mLastPhoneSignalIconId          != mPhoneSignalIconId
                      || mLastDataDirectionOverlayIconId != combinedActivityIconId
                      || mLastWifiIconId                 != mWifiIconId
            +         || mLastEthernetIconId             != mEthernetIconId
                      || mLastWimaxIconId                != mWimaxIconId
                      || mLastDataTypeIconId             != mDataTypeIconId)
                     {
    10.  1 out of 3 hunks FAILED -- saving rejects to file services/java/com/android/server/ConnectivityService.java.rej 
        1. cat framework/base/services/java/com/android/server/ConnectivityService.java.rej 
            --- services/java/com/android/server/ConnectivityService.java
            +++ services/java/com/android/server/ConnectivityService.java
            @@ -511,8 +512,14 @@
                             }
                             break;
                         case ConnectivityManager.TYPE_ETHERNET:
            -                mNetTrackers[netType] = EthernetDataTracker.getInstance();
            -                mNetTrackers[netType].startMonitoring(context, mHandler);
            +                //mNetTrackers[netType] = EthernetDataTracker.getInstance();
            +                //mNetTrackers[netType].startMonitoring(context, mHandler);
            +                if (DBG) log("Starting Ethernet Service.");
            +                EthernetStateTracker est = new EthernetStateTracker(context, mHandler);
            +                EthernetService ethService = new EthernetService(context, est);
            +                ServiceManager.addService(Context.ETHERNET_SERVICE, ethService);
            +                mNetTrackers[ConnectivityManager.TYPE_ETHERNET] = est;
            +                est.startMonitoring(context, mHandler);
                             break;
                         default:
                             loge("Trying to create a DataStateTracker for an unknown radio type " +
            
六、error:
    1. error1:
        1. 现象:
            frameworks/base/core/res/res/values/config.xml:1029: Originally defined here.
            frameworks/base/core/res/res/values/config.xml.orig:1027: error: Resource entry config_notificationFallbackVibePattern already has bag item ^index_2.
            frameworks/base/core/res/res/values/config.xml:1030: Originally defined here.
            frameworks/base/core/res/res/values/config.xml.orig:1028: error: Resource entry config_notificationFallbackVibePattern already has bag item ^index_3.
            frameworks/base/core/res/res/values/config.xml:1031: Originally defined here.
            frameworks/base/core/res/res/values/config.xml.orig:1032: error: Resource entry config_speed_up_audio_on_mt_calls is already defined.
            frameworks/base/core/res/res/values/config.xml:1035: Originally defined here.
            make: *** [out/target/common/obj/APPS/framework-res_intermediates/package-export.apk] Error 1
            make: *** Deleting file `out/target/common/obj/APPS/framework-res_intermediates/package-export.apk        2. 解决办法:
            myzr@myzr:~/myandroid/frameworks/base/core/res/res/values$ rm config.xml.orig
    2. 一堆的错误,不解释。
    ......
    

 

I.MX6 Ethernet UI patch failed

标签:

原文地址:http://www.cnblogs.com/zengjfgit/p/5416823.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!