I.MX6 Ethernet UI patch failed

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

一、参考文档:
    1. How to Add Ethernet UI Support in ICS
        https://community.freescale.com/docs/DOC-93626
    2. Couldn't parse API file “frameworks/base/api/current.txt”
        http://stackoverflow.com/questions/14622020/couldnt-parse-api-file-frameworks-base-api-current-txt

二、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:
    zengjf@zengjf:~/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  
    zengjf@zengjf:~/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
        zengjf@zengjf:~/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 
        zengjf@zengjf:~/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 
        zengjf@zengjf:~/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 
        zengjf@zengjf:~/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
        zengjf@zengjf:~/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 frameworks/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;
                         }
                     }
EthernetService.java:116: cannot find symbol
symbol  : variable ETHERNET_IP
            -        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 " +
        2. 实际修改:
           case TYPE_WIMAX:
               return makeWimaxStateTracker(mContext, mTrackerHandler);
           case TYPE_ETHERNET:
               //mNetTrackers[netType] = EthernetDataTracker.getInstance();
               //mNetTrackers[netType].startMonitoring(context, mHandler);
               if (DBG) log("Starting Ethernet Service.");
               EthernetStateTracker est = new EthernetStateTracker(mContext, mTrackerHandler);
               EthernetService ethService = new EthernetService(mContext, est);
               ServiceManager.addService(Context.ETHERNET_SERVICE, ethService);
               //mNetTrackers[ConnectivityManager.TYPE_ETHERNET] = est;
               est.startMonitoring(mContext, mTrackerHandler);
               //return EthernetDataTracker.getInstance();
               return est;
            
            
六、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. 解决办法:
            zengjf@zengjf:~/myandroid/frameworks/base/core/res/res/values$ rm config.xml.orig
    2. error2:
        1. 现象:
            ......
            uct/sabresd_6dq/system/etc/permissions/android.software.live_wallpaper.xml'
            build/core/base_rules.mk:502: warning: ignoring old commands for target `out/target/product/sabresd_6dq/system/etc/permissions/android.software.live_wallpaper.xml'
            No private recovery resources for TARGET_DEVICE sabresd_6dq
            target Java: framework (out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes)
            frameworks/base/core/java/android/net/EthernetDataTracker.java:167: cannot find symbol
            symbol  : variable mClearIp
            location: class android.net.EthernetDataTracker
                   if (mClearIp){
                       ^
            frameworks/base/ethernet/java/android/net/ethernet/EthernetStateTracker.java:66: android.net.ethernet.EthernetStateTracker is not abstract and does not override abstract method captivePortalCheckComplete() in android.net.NetworkStateTracker
            public class EthernetStateTracker extends Handler implements NetworkStateTracker {
                   ^
            frameworks/base/ethernet/java/android/net/ethernet/EthernetStateTracker.java:210: cannot find symbol
            symbol  : variable addr
            location: class android.net.InterfaceConfiguration
                            ifcfg.addr = mDhcpInfo.makeLinkAddress();
                                 ^
            frameworks/base/ethernet/java/android/net/ethernet/EthernetStateTracker.java:211: cannot find symbol
            symbol  : variable interfaceFlags
            location: class android.net.InterfaceConfiguration
                        ifcfg.interfaceFlags = "[up]";
                             ^
            Note: Some input files use or override a deprecated API.
            Note: Recompile with -Xlint:deprecation for details.
            Note: Some input files use unchecked or unsafe operations.
            Note: Recompile with -Xlint:unchecked for details.
            4 errors
        2. 解决办法:
            1. cat frameworks/base/core/java/android/net/EthernetDataTracker.java
                ......
                public class EthernetDataTracker implements NetworkStateTracker {
                    ......
                    public void disconnect() {

                        NetworkUtils.stopDhcp(mIface);

                        mLinkProperties.clear();
                        mNetworkInfo.setIsAvailable(false);
                        mNetworkInfo.setDetailedState(DetailedState.DISCONNECTED, null, mHwAddr);

                        //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 (!mNfsmode) {
                           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 ipv6" + 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);
                           }
                       }
                       */

                    }
                    ......
                }
            2. cat frameworks/base/ethernet/java/android/net/ethernet/EthernetStateTracker.java
                ......
                public class EthernetStateTracker extends Handler implements NetworkStateTracker {
                    ......
                    @Override
                    public void captivePortalCheckComplete() {
                    }
                    ......
                    private boolean configureInterface(EthernetDevInfo info) throws UnknownHostException {
                            ......
                            try {
                                ifcfg = mNwService.getInterfaceConfig(info.getIfName());
                                //ifcfg.mAddr = mDhcpInfo.makeLinkAddress();
                                ifcfg.setLinkAddress(mDhcpInfo.makeLinkAddress());
                                //ifcfg.interfaceFlags = "[up]";
                                ifcfg.setFlag("[up]");
                                mNwService.setInterfaceConfig(info.getIfName(), ifcfg);
                            Slog.i(TAG,"Static IP configuration succeeded");
                            } catch (RemoteException re){
                            ......
                    }
                    ......
                }

    3. error3:
        1. 现象:
            Docs droiddoc: out/target/common/docs/api-stubs
            DroidDoc took 14 sec. to write docs to out/target/common/docs/api-stubs
            Copy: apicheck (out/host/linux-x86/obj/EXECUTABLES/apicheck_intermediates/apicheck)
            Install: out/host/linux-x86/bin/apicheck
            Checking API: checkapi-last
            Checking API: checkapi-current
            frameworks/base/api/current.txt:19000: error 10: Removed field android.provider.Settings.Secure.ETHERNET_CONF
            frameworks/base/api/current.txt:19001: error 10: Removed field android.provider.Settings.Secure.ETHERNET_DNS
            frameworks/base/api/current.txt:19002: error 10: Removed field android.provider.Settings.Secure.ETHERNET_IFNAME
            frameworks/base/api/current.txt:19003: error 10: Removed field android.provider.Settings.Secure.ETHERNET_IP
            frameworks/base/api/current.txt:19004: error 10: Removed field android.provider.Settings.Secure.ETHERNET_MASK
            frameworks/base/api/current.txt:19005: error 10: Removed field android.provider.Settings.Secure.ETHERNET_MODE
            frameworks/base/api/current.txt:19006: error 10: Removed field android.provider.Settings.Secure.ETHERNET_ON
            frameworks/base/api/current.txt:19007: error 10: Removed field android.provider.Settings.Secure.ETHERNET_ROUTE
            out/target/common/obj/PACKAGING/public_api.txt:18870: error 5: Added public field android.provider.Settings.Global.ETHERNET_CONF
            out/target/common/obj/PACKAGING/public_api.txt:18871: error 5: Added public field android.provider.Settings.Global.ETHERNET_DNS
            out/target/common/obj/PACKAGING/public_api.txt:18872: error 5: Added public field android.provider.Settings.Global.ETHERNET_IFNAME
            out/target/common/obj/PACKAGING/public_api.txt:18873: error 5: Added public field android.provider.Settings.Global.ETHERNET_IP
            out/target/common/obj/PACKAGING/public_api.txt:18874: error 5: Added public field android.provider.Settings.Global.ETHERNET_MASK
            out/target/common/obj/PACKAGING/public_api.txt:18875: error 5: Added public field android.provider.Settings.Global.ETHERNET_MODE
            out/target/common/obj/PACKAGING/public_api.txt:18876: error 5: Added public field android.provider.Settings.Global.ETHERNET_ON
            out/target/common/obj/PACKAGING/public_api.txt:18877: error 5: Added public field android.provider.Settings.Global.ETHERNET_ROUTE

            ******************************
            You have tried to change the API from what has been previously approved.

            To make these errors go away, you have two choices:
               1) You can add "@hide" javadoc comments to the methods, etc. listed in the
                  errors above.

               2) You can update current.txt by executing the following command:
                     make update-api

                  To submit the revised current.txt to the main Android repository,
                  you will need approval.
            ******************************



            make: *** [out/target/common/obj/PACKAGING/checkapi-current-timestamp] Error 38
        2. 解决办法:
            make update-api
    4. error4:
        1. 现象:
            target thumb C++: libandroid_runtime <= frameworks/base/core/jni/android_net_wifi_Wifi.cpp
            target thumb C++: libandroid_runtime <= frameworks/base/core/jni/android_net_ethernet.cpp
            In file included from frameworks/base/core/jni/android_net_ethernet.cpp:27:0:
            bionic/libc/kernel/common/linux/netlink.h:52:2: error: 'sa_family_t' does not name a type
            frameworks/base/core/jni/android_net_ethernet.cpp: In function '_jstring* android::android_net_ethernet_waitForEvent(JNIEnv*, jobject)':
            frameworks/base/core/jni/android_net_ethernet.cpp:97:49: error: 'LOGE' was not declared in this scope
            frameworks/base/core/jni/android_net_ethernet.cpp:122:49: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
            frameworks/base/core/jni/android_net_ethernet.cpp: In function 'int android::netlink_send_dump_request(int, int, int)':
            frameworks/base/core/jni/android_net_ethernet.cpp:176:13: error: 'struct sockaddr_nl' has no member named 'nl_family'
            frameworks/base/core/jni/android_net_ethernet.cpp: In function 'void android::free_int_list()':
            frameworks/base/core/jni/android_net_ethernet.cpp:209:47: error: 'LOGE' was not declared in this scope
            frameworks/base/core/jni/android_net_ethernet.cpp: In function 'int android::netlink_init_interfaces_list()':
            frameworks/base/core/jni/android_net_ethernet.cpp:254:53: error: 'LOGE' was not declared in this scope
            frameworks/base/core/jni/android_net_ethernet.cpp:258:58: error: 'LOGE' was not declared in this scope
            frameworks/base/core/jni/android_net_ethernet.cpp:264:67: error: 'LOGE' was not declared in this scope
            frameworks/base/core/jni/android_net_ethernet.cpp:270:74: error: 'LOGI' was not declared in this scope
            frameworks/base/core/jni/android_net_ethernet.cpp: In function 'jint android::android_net_ethernet_initEthernetNative(JNIEnv*, jobject)':
            frameworks/base/core/jni/android_net_ethernet.cpp:290:27: error: 'LOGI' was not declared in this scope
            frameworks/base/core/jni/android_net_ethernet.cpp:292:18: error: 'struct sockaddr_nl' has no member named 'nl_family'
            frameworks/base/core/jni/android_net_ethernet.cpp:294:19: error: 'struct sockaddr_nl' has no member named 'nl_family'
            frameworks/base/core/jni/android_net_ethernet.cpp:303:53: error: 'LOGE' was not declared in this scope
            frameworks/base/core/jni/android_net_ethernet.cpp:308:54: error: 'LOGE' was not declared in this scope
            frameworks/base/core/jni/android_net_ethernet.cpp:314:54: error: 'LOGE' was not declared in this scope
            frameworks/base/core/jni/android_net_ethernet.cpp:321:75: error: 'LOGE' was not declared in this scope
            frameworks/base/core/jni/android_net_ethernet.cpp:327:54: error: 'LOGE' was not declared in this scope
            frameworks/base/core/jni/android_net_ethernet.cpp:330:52: error: 'LOGE' was not declared in this scope
            frameworks/base/core/jni/android_net_ethernet.cpp: In function '_jstring* android::android_net_ethernet_getInterfaceName(JNIEnv*, jobject, jint)':
            frameworks/base/core/jni/android_net_ethernet.cpp:349:56: error: 'LOGE' was not declared in this scope
            frameworks/base/core/jni/android_net_ethernet.cpp: In function 'int android::register_android_net_ethernet_EthernetManager(JNIEnv*)':
            frameworks/base/core/jni/android_net_ethernet.cpp:385:42: error: 'LOGI' was not declared in this scope
            make: *** [out/target/product/sabresd_6dq/obj/SHARED_LIBRARIES/libandroid_runtime_intermediates/android_net_ethernet.o] Error 1
        2. 参考文档:
            1. error: 'LOGE' was not declared in this scope
                http://blog.csdn.net/yasin_lee/article/details/8668797
            2. Android4.0.3/Android4.2.2 添加 Ethernet
                http://blog.csdn.net/qinyun188/article/details/7991093
        3. 解决方法:
            1. 将frameworks/base/core/jni/android_net_ethernet.cpp中的LOGE、LOGI宏前面加上A。
            2. cat bionic/libc/kernel/common/linux/socket.h
                ......
                typedef unsigned short sa_family_t;
                ......
    5. error5:
        1. 类似错误现象:
            PRODUCT_COPY_FILES frameworks/base/data/sounds/ringtones/ogg/Scarabaeus.ogg:system/media/audio/ringtones/Scarabaeus.ogg ignored.
            PRODUCT_COPY_FILES frameworks/base/data/sounds/ringtones/ogg/Solarium.ogg:system/media/audio/ringtones/Solarium.ogg ignored.
            build/core/Makefile:32: warning: overriding commands for target `out/target/product/sabresd_6dq/system/etc/permissions/android.software.live_wallpaper.xml'
            build/core/base_rules.mk:502: warning: ignoring old commands for target `out/target/product/sabresd_6dq/system/etc/permissions/android.software.live_wallpaper.xml'
            No private recovery resources for TARGET_DEVICE sabresd_6dq
            target Java: framework (out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes)
            frameworks/base/core/java/android/provider/Settings.java:925: cannot find symbol
            symbol  : variable ETHERNET_ON
            location: class android.provider.Settings.Secure
                        MOVED_TO_SECURE.add(Secure.ETHERNET_ON);      
                                                  ^
            frameworks/base/core/java/android/provider/Settings.java:926: cannot find symbol
            symbol  : variable ETHERNET_MODE
            location: class android.provider.Settings.Secure
                        MOVED_TO_SECURE.add(Secure.ETHERNET_MODE);    
                                                  ^
            frameworks/base/core/java/android/provider/Settings.java:927: cannot find symbol
            symbol  : variable ETHERNET_IP
            location: class android.provider.Settings.Secure
                        MOVED_TO_SECURE.add(Secure.ETHERNET_IP);      
                                                  ^
            frameworks/base/core/java/android/provider/Settings.java:928: cannot find symbol
            symbol  : variable ETHERNET_MASK
            location: class android.provider.Settings.Secure
                        MOVED_TO_SECURE.add(Secure.ETHERNET_MASK);    
                                                  ^
            frameworks/base/core/java/android/provider/Settings.java:929: cannot find symbol
            symbol  : variable ETHERNET_DNS
            location: class android.provider.Settings.Secure
                        MOVED_TO_SECURE.add(Secure.ETHERNET_DNS);     
                                                  ^
            frameworks/base/core/java/android/provider/Settings.java:930: cannot find symbol
            symbol  : variable ETHERNET_ROUTE
            location: class android.provider.Settings.Secure
                        MOVED_TO_SECURE.add(Secure.ETHERNET_ROUTE);   
                                                  ^
            frameworks/base/core/java/android/provider/Settings.java:931: cannot find symbol
            symbol  : variable ETHERNET_CONF
            location: class android.provider.Settings.Secure
                        MOVED_TO_SECURE.add(Secure.ETHERNET_CONF);    
                                                  ^
            frameworks/base/core/java/android/provider/Settings.java:932: cannot find symbol
            symbol  : variable ETHERNET_IFNAME
            location: class android.provider.Settings.Secure
                        MOVED_TO_SECURE.add(Secure.ETHERNET_IFNAME);  
                                                  ^
            Note: Some input files use or override a deprecated API.
            Note: Recompile with -Xlint:deprecation for details.
            Note: Some input files use unchecked or unsafe operations.
            Note: Recompile with -Xlint:unchecked for details.
            8 errors
            make: *** [out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes-full-debug.jar] Error 41
        2. 这是由于手动打补丁的静态变量位置打错了造成的,变量没有打在class Secure类里面,打到class system里去了。
        3. 修改正打补丁的位置就解决了。
            
    6. error6:
        1. 现象:
            Generating ScriptField_FragmentShaderConstants_s.java ...
#@ out/host/linux-x86/bin/llvm-rs-link #  out/target/common/obj/JAVA_LIBRARIES/android-common-carousel_intermediates/src/renderscript/res/raw/*.bc
            target Java: android-common-carousel (out/target/common/obj/JAVA_LIBRARIES/android-common-carousel_intermediates/classes)
            Note: Some input files use or override a deprecated API.
            Note: Recompile with -Xlint:deprecation for details.
            Copying: out/target/common/obj/JAVA_LIBRARIES/android-common-carousel_intermediates/classes-jarjar.jar
            Copying: out/target/common/obj/JAVA_LIBRARIES/android-common-carousel_intermediates/emma_out/lib/classes-jarjar.jar
            Copying: out/target/common/obj/JAVA_LIBRARIES/android-common-carousel_intermediates/classes.jar
            target Static Jar: android-common-carousel (out/target/common/obj/JAVA_LIBRARIES/android-common-carousel_intermediates/javalib.jar)
            target Java: SystemUI (out/target/common/obj/APPS/SystemUI_intermediates/classes)
            frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java:124: cannot find symbol
            symbol  : variable connect_established
            location: class com.android.systemui.R.drawable
                    R.drawable.connect_established,
                              ^
            frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java:125: cannot find symbol
            symbol  : variable connect_no
            location: class com.android.systemui.R.drawable
                    R.drawable.connect_no,
                              ^
            frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java:126: cannot find symbol
            symbol  : variable connect_creating
            location: class com.android.systemui.R.drawable
                    R.drawable.connect_creating
                              ^
            frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java:944: cannot find symbol
            symbol  : variable stat_sys_ethernet_connected
            location: class com.android.systemui.R.drawable
                        mEthernetIconId = R.drawable.stat_sys_ethernet_connected;
                                                    ^
            frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java:946: cannot find symbol
            symbol  : variable stat_sys_ethernet_disconnected
            location: class com.android.systemui.R.drawable
                        mEthernetIconId = R.drawable.stat_sys_ethernet_disconnected;
                                                    ^
            frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java:90: cannot find symbol
            symbol  : variable mAirplane
            location: class com.android.systemui.statusbar.SignalClusterView
                    mAirplane       = (ImageView) findViewById(R.id.airplane);
                    ^
            frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java:107: cannot find symbol
            symbol  : variable mAirplane
            location: class com.android.systemui.statusbar.SignalClusterView
                    mAirplane       = null;
                    ^
            frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java:201: cannot find symbol
            symbol  : variable mAirplane
            location: class com.android.systemui.statusbar.SignalClusterView
                        mAirplane.setVisibility(View.VISIBLE);
                        ^
            frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java:202: cannot find symbol
            symbol  : variable mAirplane
            location: class com.android.systemui.statusbar.SignalClusterView
                        mAirplane.setImageResource(mAirplaneIconId);
                        ^
            frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java:204: cannot find symbol
            symbol  : variable mAirplane
            location: class com.android.systemui.statusbar.SignalClusterView
                        mAirplane.setVisibility(View.GONE);
                        ^
            Note: Some input files use or override a deprecated API.
            Note: Recompile with -Xlint:deprecation for details.
            Note: Some input files use unchecked or unsafe operations.
            Note: Recompile with -Xlint:unchecked for details.
            10 errors
            make: *** [out/target/common/obj/APPS/SystemUI_intermediates/classes-full-debug.jar] Error 41
            zengjf@zengjf:~/myandroid$ 
        2. frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
            ......
            //ViewGroup mWifiGroup, mMobileGroup;
            //ImageView mWifi, mMobile, mWifiActivity, mMobileActivity, mMobileType, mAirplane;
            //ViewGroup mWifiGroup, mEthernetGroup, mMobileGroup;
            //ImageView mWifi, mEthernet, mMobile, mWifiActivity, mMobileActivity, mMobileType;
            ViewGroup mWifiGroup, mEthernetGroup, mMobileGroup;
            ImageView mWifi, mEthernet, mMobile, mWifiActivity, mMobileActivity, mMobileType, mAirplane;
            View mSpacer;
            ......
        
    7. error7:
        1. 现象:
            target Java: SystemUI (out/target/common/obj/APPS/SystemUI_intermediates/classes)
            frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java:124: cannot find symbol
            symbol  : variable connect_established
            location: class com.android.systemui.R.drawable
                    R.drawable.connect_established,
                              ^
            frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java:125: cannot find symbol
            symbol  : variable connect_no
            location: class com.android.systemui.R.drawable
                    R.drawable.connect_no,
                              ^
            frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java:126: cannot find symbol
            symbol  : variable connect_creating
            location: class com.android.systemui.R.drawable
                    R.drawable.connect_creating
                              ^
            frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java:944: cannot find symbol
            symbol  : variable stat_sys_ethernet_connected
            location: class com.android.systemui.R.drawable
                        mEthernetIconId = R.drawable.stat_sys_ethernet_connected;
                                                    ^
            frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java:946: cannot find symbol
            symbol  : variable stat_sys_ethernet_disconnected
            location: class com.android.systemui.R.drawable
                        mEthernetIconId = R.drawable.stat_sys_ethernet_disconnected;
                                                    ^
            Note: Some input files use or override a deprecated API.
            Note: Recompile with -Xlint:deprecation for details.
            Note: Some input files use unchecked or unsafe operations.
            Note: Recompile with -Xlint:unchecked for details.
            5 errors
            make: *** [out/target/common/obj/APPS/SystemUI_intermediates/classes-full-debug.jar] Error 41
            zengjf@zengjf:~/myandroid$ 
        2. 原因:
            patch的时候,没有生成图片文件,目前不知道怎么去生成,所只能自己加入图片了;
        3. 参考文档:
            1. https://gitorious.org/rowboat/frameworks-base/commit/2ac2e1bfdbed5b4895c2302b1f88b7de65ae99a0
                core/java/android/net/EthernetDataTracker.java        
                packages/SystemUI/res/drawable-hdpi/stat_sys_ethernet_connected.png    
                packages/SystemUI/res/drawable-hdpi/stat_sys_ethernet_disconnected.png    
                packages/SystemUI/res/drawable-mdpi/stat_sys_ethernet_connected.png    
                packages/SystemUI/res/drawable-mdpi/stat_sys_ethernet_disconnected.png    
                packages/SystemUI/res/drawable-sw600dp-hdpi/stat_sys_ethernet_connected.png    
                packages/SystemUI/res/drawable-sw600dp-hdpi/stat_sys_ethernet_disconnected.png    
                packages/SystemUI/res/drawable-sw600dp-mdpi/stat_sys_ethernet_connected.png    
                packages/SystemUI/res/drawable-sw600dp-mdpi/stat_sys_ethernet_disconnected.png    
                packages/SystemUI/res/drawable-sw600dp-xhdpi/stat_sys_ethernet_connected.png
                packages/SystemUI/res/drawable-sw600dp-xhdpi/stat_sys_ethernet_disconnected.png
                packages/SystemUI/res/drawable-xhdpi/stat_sys_ethernet_connected.png
                packages/SystemUI/res/drawable-xhdpi/stat_sys_ethernet_disconnected.png
                packages/SystemUI/res/layout/signal_cluster_view.xml    
                packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
                packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
                packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java
                packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
            2. https://gitorious.org/rowboat/frameworks-base/commit/e1e6a3e55275860dc3234ffe5996a002f8391531
                Android.mk
                api/current.txt
                core/java/android/app/ContextImpl.java
                core/java/android/app/DownloadManager.java
                core/java/android/content/Context.java
                core/java/android/provider/Settings.java
                core/jni/Android.mk
                core/jni/AndroidRuntime.cpp
                core/jni/android_net_ethernet.cpp
                core/res/res/values/config.xml
                ethernet/java/android/net/ethernet/EthernetDevInfo.aidl
                ethernet/java/android/net/ethernet/EthernetDevInfo.java
                ethernet/java/android/net/ethernet/EthernetManager.java
                ethernet/java/android/net/ethernet/EthernetMonitor.java
                ethernet/java/android/net/ethernet/EthernetNative.java
                ethernet/java/android/net/ethernet/EthernetStateTracker.java
                ethernet/java/android/net/ethernet/IEthernetManager.aidl
                packages/SystemUI/res/drawable-hdpi/connect_creating.png
                packages/SystemUI/res/drawable-hdpi/connect_established.png
                packages/SystemUI/res/drawable-hdpi/connect_no.png
                packages/SystemUI/res/drawable-mdpi/connect_creating.png
                packages/SystemUI/res/drawable-mdpi/connect_established.png
                packages/SystemUI/res/drawable-mdpi/connect_no.png
                packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java
                services/java/com/android/server/ConnectivityService.java
                services/java/com/android/server/EthernetService.java
        4. 解决办法:
            拷贝对应缺少的文件到对应的目录
    8. error8:
        1. 现象:
            target thumb C: hostapd_cli <= external/wpa_supplicant_8/hostapd/src/utils/eloop.c
            target thumb C: hostapd_cli <= external/wpa_supplicant_8/hostapd/src/utils/wpa_debug.c
            target thumb C: hostapd_cli <= external/wpa_supplicant_8/hostapd/src/utils/edit_simple.c
            target Executable: hostapd_cli (out/target/product/sabresd_6dq/obj/EXECUTABLES/hostapd_cli_intermediates/LINKED/hostapd_cli)
            target Symbolic: hostapd_cli (out/target/product/sabresd_6dq/symbols/system/bin/hostapd_cli)
            Export includes file: external/wpa_supplicant_8/hostapd/Android.mk -- out/target/product/sabresd_6dq/obj/EXECUTABLES/hostapd_cli_intermediates/export_includes
            target Strip: hostapd_cli (out/target/product/sabresd_6dq/obj/EXECUTABLES/hostapd_cli_intermediates/hostapd_cli)
            Install: out/target/product/sabresd_6dq/system/bin/hostapd_cli
            Export includes file: external/i2c-tools/Android.mk -- out/target/product/sabresd_6dq/obj/STATIC_LIBRARIES/i2c-tools_intermediates/export_includes
            Import includes file: out/target/product/sabresd_6dq/obj/EXECUTABLES/i2cdetect_intermediates/import_includes
            target thumb C: i2cdetect <= external/i2c-tools/tools/i2cdetect.c
            Import includes file: out/target/product/sabresd_6dq/obj/STATIC_LIBRARIES/i2c-tools_intermediates/import_includes
            target thumb C: i2c-tools <= external/i2c-tools/tools/util.c
            target thumb C: i2c-tools <= external/i2c-tools/tools/i2cbusses.c
            target StaticLib: i2c-tools (out/target/product/sabresd_6dq/obj/STATIC_LIBRARIES/i2c-tools_intermediates/i2c-tools.a)
            target Executable: i2cdetect (out/target/product/sabresd_6dq/obj/EXECUTABLES/i2cdetect_intermediates/LINKED/i2cdetect)
            /home/zengjf/myandroid/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: out/target/product/sabresd_6dq/obj/EXECUTABLES/i2cdetect_intermediates/tools/i2cdetect.o: in function main:external/i2c-tools/tools/i2cdetect.c:105: error: undefined reference to 'i2c_smbus_write_quick'
            /home/zengjf/myandroid/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld: out/target/product/sabresd_6dq/obj/EXECUTABLES/i2cdetect_intermediates/tools/i2cdetect.o: in function main:external/i2c-tools/tools/i2cdetect.c:111: error: undefined reference to 'i2c_smbus_read_byte'
            collect2: ld returned 1 exit status
            make: *** [out/target/product/sabresd_6dq/obj/EXECUTABLES/i2cdetect_intermediates/LINKED/i2cdetect] Error 1
            zengjf@zengjf:~/myandroid$ ls
        2. 原因是找不到lib/smbus.c
        3. 解决办法:
            # external/i2c-tools/Android.mk
            
            LOCAL_PATH:= $(call my-dir)
            
            include $(CLEAR_VARS)
            
            LOCAL_MODULE_TAGS := eng
            LOCAL_C_INCLUDES += $(LOCAL_PATH) $(LOCAL_PATH)/$(KERNEL_DIR)/include
            # 问题主要是在lib/smbus.c文件需要加入该文件。
            LOCAL_SRC_FILES :=tools/util.c tools/i2cbusses.c lib/smbus.c
            LOCAL_MODULE := i2c-tools
            include $(BUILD_STATIC_LIBRARY)
            ......
    9. error9:
        1. 现象:
            01-01 00:10:02.190: E/AndroidRuntime(4195): FATAL EXCEPTION: main
            01-01 00:10:02.190: E/AndroidRuntime(4195): java.lang.StackOverflowError
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.content.res.Resources.obtainAttributes(Resources.java:1381)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:117)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:885)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.Drawable.createFromXml(Drawable.java:822)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.content.res.Resources.loadDrawable(Resources.java:1950)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.content.res.Resources.getDrawable(Resources.java:660)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:173)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:885)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.Drawable.createFromXml(Drawable.java:822)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.content.res.Resources.loadDrawable(Resources.java:1950)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.content.res.Resources.getDrawable(Resources.java:660)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:173)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:885)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.Drawable.createFromXml(Drawable.java:822)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.content.res.Resources.loadDrawable(Resources.java:1950)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.content.res.Resources.getDrawable(Resources.java:660)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:173)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:885)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.Drawable.createFromXml(Drawable.java:822)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.content.res.Resources.loadDrawable(Resources.java:1950)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.content.res.Resources.getDrawable(Resources.java:660)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:173)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:885)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.Drawable.createFromXml(Drawable.java:822)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.content.res.Resources.loadDrawable(Resources.java:1950)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.content.res.Resources.getDrawable(Resources.java:660)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:173)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:885)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.Drawable.createFromXml(Drawable.java:822)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.content.res.Resources.loadDrawable(Resources.java:1950)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.content.res.Resources.getDrawable(Resources.java:660)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:173)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:885)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.Drawable.createFromXml(Drawable.java:822)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.content.res.Resources.loadDrawable(Resources.java:1950)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.content.res.Resources.getDrawable(Resources.java:660)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:173)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:885)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.Drawable.createFromXml(Drawable.java:822)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.content.res.Resources.loadDrawable(Resources.java:1950)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.content.res.Resources.getDrawable(Resources.java:660)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:173)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:885)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.Drawable.createFromXml(Drawable.java:822)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.content.res.Resources.loadDrawable(Resources.java:1950)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.content.res.Resources.getDrawable(Resources.java:660)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:173)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:885)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.Drawable.createFromXml(Drawable.java:822)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.content.res.Resources.loadDrawable(Resources.java:1950)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.content.res.Resources.getDrawable(Resources.java:660)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:173)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:885)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.graphics.drawable.Drawable.createFromXml(Drawable.java:822)
            01-01 00:10:02.190: E/AndroidRuntime(4195):     at android.content.res.Resources
        2. 错误原因:
            未找到。
            
    

 

目录
相关文章
|
3天前
|
Android开发
Android JNI 报错(signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr )
Android JNI 报错(signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr )
20 1
The Soft Link between IM Level Storage Location and WM level Storage Type?(2)
The Soft Link between IM Level Storage Location and WM level Storage Type?(2)
The Soft Link between IM Level Storage Location and WM level Storage Type?(2)
The Soft Link between IM Level Storage Location and WM level Storage Type?(1)
The Soft Link between IM Level Storage Location and WM level Storage Type?(1)
The Soft Link between IM Level Storage Location and WM level Storage Type?(1)
SAP WM 为Storage Type 004激活SUM报错 - Storage types without pick-point stor.type require partial pallet
SAP WM 为Storage Type 004激活SUM报错 - Storage types without pick-point stor.type require partial pallet
SAP WM 为Storage Type 004激活SUM报错 - Storage types without pick-point stor.type require partial pallet
|
Android开发
【错误记录】Tinker 热修复示例运行报错 ( patch receive fail: /storage/emulated/0/patch_signed_7zip.apk, code: -2)
【错误记录】Tinker 热修复示例运行报错 ( patch receive fail: /storage/emulated/0/patch_signed_7zip.apk, code: -2)
399 0
【错误记录】Tinker 热修复示例运行报错 ( patch receive fail: /storage/emulated/0/patch_signed_7zip.apk, code: -2)
|
JavaScript
说说 element 组件库 broadcast 与 dispatch
说说 element 组件库 broadcast 与 dispatch
225 0
GM6 pageset - Cache get scenario /ui2/cl_pfcg_utils
Created by Wang, Jerry, last modified on Apr 20, 2015
124 0
GM6 pageset - Cache get scenario /ui2/cl_pfcg_utils
SAP BRF+ function mode VS event mode
SAP BRF+ function mode VS event mode
118 0
SAP BRF+ function mode VS event mode
why my detail page in SAP UI5 application is failed to be loaded from router
why my detail page in SAP UI5 application is failed to be loaded from router
why my detail page in SAP UI5 application is failed to be loaded from router