5 votes

Comment activer le tethering USB sur un appareil JellyBean ?

Est-ce que JellyBean supporte la connexion USB ?

Existe-t-il un moyen de compiler les sources de la JB pour que la connexion USB soit toujours activée ? J'aimerais que le support soit assuré par le système d'exploitation et ne dépende pas d'une application.

6voto

Flow Points 18254

Oui.

Sur ICS, le paramètre se trouve à

Settings -> Wireless & Networks -> More.. -> Tethering & portable hotspot -> USB tethering

Je pense qu'il devrait être au même endroit sur Jelly Bean. Notez que vous avez besoin d'un appareil avec une puce de données cellulaires pour cette fonctionnalité. Les appareils qui n'en ont pas (par exemple la Nexus 7) n'afficheront pas cette option.

La prise en charge de la connexion USB a été ajoutée dans la version 2.2 (Froyo).

2voto

Xample Points 177

J'ai réussi à faire fonctionner le tethering USB natif sur la Nexus 7 avec Jelly Bean.

Modifiez le fichier device/asus/grouper/overlay/frameworks/base/core/res/res/values/config.xml comme suit :

<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2009, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
**     http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
-->

<!-- These resources are around just to allow their values to be customized
     for different hardware and product builds. -->
<resources>
    <!-- Flag indicating whether we should enable the automatic brightness in Settings.
     config_hardware_automatic_brightness_available is not set, so we will use software implementation -->
    <bool name="config_automatic_brightness_available">true</bool>

    <!-- There is no charging LED. -->
    <bool name="config_unplugTurnsOnScreen">true</bool>

    <!-- Our amoled doesn't animate well. -->
    <bool name="config_animateScreenLights">false</bool>

    <!-- disable menu hard key on Crespo in non-pattern lockscreen -->
    <bool name="config_disableMenuKeyInLockScreen">true</bool>

    <!-- Array of light sensor LUX values to define our levels for auto backlight brightness support.
     The N entries of this array define N + 1 zones as follows:

     Zone 0:        0 <= LUX < array[0]
     Zone 1:        array[0] <= LUX < array[1]
     ...
     Zone N:        array[N - 1] <= LUX < array[N]
     Zone N + 1:    array[N] <= LUX < infinity

     Must be overridden in platform specific overlays -->
    <integer-array name="config_autoBrightnessLevels">
    <item>7</item>
    <item>94</item>
    <item>208</item>
    <item>458</item>
    <item>2223</item>
    </integer-array>

    <!-- Array of output values for LCD backlight corresponding to the LUX values
     in the config_autoBrightnessLevels array.  This array should have size one greater
     than the size of the config_autoBrightnessLevels array.
    -->
    <integer-array name="config_autoBrightnessLcdBacklightValues">
    <item>10</item>
    <item>35</item>
    <item>55</item>
    <item>70</item>
    <item>70</item>
    <item>250</item>
    </integer-array>

    <!-- Array of output values for button backlight corresponding to the LUX values
     in the config_autoBrightnessLevels array.  This array should have size one greater
     than the size of the config_autoBrightnessLevels array.
    -->
    <integer-array name="config_autoBrightnessButtonBacklightValues">
    <item>255</item>
    <item>255</item>
    <item>255</item>
    <item>0</item>
    <item>0</item>
    <item>0</item>
    </integer-array>

    <!-- Array of output values for keyboard backlight corresponding to the LUX values
     in the config_autoBrightnessLevels array.  This array should have size one greater
     than the size of the config_autoBrightnessLevels array.
     Crespo has no keyboard so all values are zero.
    -->
    <integer-array name="config_autoBrightnessKeyboardBacklightValues">
    <item>0</item>
    <item>0</item>
    <item>0</item>
    <item>0</item>
    <item>0</item>
    <item>0</item>
    </integer-array>

    <!-- Minimum screen brightness allowed by the power manager. -->
    <integer name="config_screenBrightnessDim">10</integer>

    <!-- Component name of the default wallpaper. This will be ImageWallpaper if not 
     specified -->
    <string name="default_wallpaper_component">com.android.wallpaper/.nexus.NexusWallpaper</string>

    <integer name="config_deskDockKeepsScreenOn">0</integer>
    <integer name="config_carDockKeepsScreenOn">1</integer>

    <!-- Default color for notification LED is white -->
    <color name="config_defaultNotificationColor">#ffffffff</color>

    <!-- Default blink frequency for notification LED is 9 seconds. -->
    <integer name="config_defaultNotificationLedOff">9000</integer>

    <!-- Package name providing network location support. -->
    <string name="config_networkLocationProviderPackageName" translatable="false">com.google.android.location</string>

    <!-- Package name providing geocoder API support. -->
    <string name="config_geocodeProviderPackageName" translatable="false">com.google.android.location</string>

    <!-- XXXXX NOTE THE FOLLOWING RESOURCES USE THE WRONG NAMING CONVENTION.
     Please don't copy them, copy anything else. -->

    <!-- This string array should be overridden by the device to present a list of network
     attributes.  This is used by the connectivity manager to decide which networks can coexist
     based on the hardware -->
    <!-- An Array of "[Connection name],[ConnectivityManager connection type],
     [associated radio-type],[priority],[restoral-timer(ms)],[dependencyMet]  -->
    <!-- the 5th element "resore-time" indicates the number of milliseconds to delay
     before automatically restore the default connection.  Set -1 if the connection
     does not require auto-restore. -->
    <!-- the 6th element indicates boot-time dependency-met value. -->
    <string-array translatable="false" name="networkAttributes">
    <item>"wifi,1,1,1,-1,true"</item>
    <item>"mobile,0,0,0,-1,true"</item>
    <item>"mobile_mms,2,0,2,60000,true"</item>
    <item>"mobile_supl,3,0,2,60000,true"</item>
    <item>"mobile_dun,4,0,4,60000,true"</item>
    <item>"mobile_hipri,5,0,3,60000,true"</item>
    <item>"bluetooth,7,7,0,-1,true"</item>
    </string-array>

    <!-- This string array should be overridden by the device to present a list of radio
     attributes.  This is used by the connectivity manager to decide which networks can coexist
     based on the hardware -->
    <!-- An Array of "[ConnectivityManager connectionType],
                  [# simultaneous connection types]"  -->
    <string-array translatable="false" name="radioAttributes">
    <item>"1,1"</item>
    <item>"0,1"</item>
    <item>"7,1"</item>
    </string-array>

    <!-- List of regexpressions describing the interface (if any) that represent tetherable
     USB interfaces.  If the device doesn't want to support tething over USB this should
     be empty.  An example would be "usb.*" -->
    <string-array translatable="false" name="config_tether_usb_regexs">
    <item>"rndis0"</item>
    </string-array>

    <!-- Array of allowable ConnectivityManager network types for tethering -->
    <!-- Common options are [1, 4] for wifi and dun or [0,1,5,7] for -->
    <!-- mobile, wifi, hipri and bluetooth -->
    <integer-array translatable="false" name="config_tether_upstream_types">
    <item>0</item>
    <item>1</item>
    <item>5</item>
    <item>7</item>
    </integer-array>

    <!-- List of regexpressions describing the interface (if any) that represent tetherable
     Wifi interfaces.  If the device doesn't want to support tethering over Wifi this
     should be empty.  An example would be "softap.*" -->
    <string-array translatable="false" name="config_tether_wifi_regexs">
    <item>"wlan0"</item>
    </string-array>

    <!-- List of regexpressions describing the interface (if any) that represent tetherable
     bluetooth interfaces.  If the device doesn't want to support tethering over bluetooth this
     should be empty. -->
    <string-array translatable="false" name="config_tether_bluetooth_regexs">
    <item>"bnep\\d"</item>
    </string-array>

    <!-- Vibrator pattern for a very short but reliable vibration for soft keyboard tap -->
    <integer-array name="config_keyboardTapVibePattern">
    <item>30</item>
    </integer-array>

    <!-- Vibrator pattern for feedback about booting with safe mode disabled -->
    <integer-array name="config_safeModeDisabledVibePattern">
    <item>1</item>
    </integer-array>

    <!-- crespo doesn't handle this blur effect very quickly. -->
    <bool name="config_sf_slowBlur">true</bool>

    <!-- Boolean indicating if restoring network selection should be skipped -->
    <!-- The restoring is handled by modem if it is true -->
    <bool translatable="false" name="skip_restoring_network_selection">true</bool>

    <!-- Specifies the amount of time to disable virtual keys after the screen is touched
     in order to filter out accidental virtual key presses due to swiping gestures
     or taps near the edge of the display.  May be 0 to disable the feature.
     It is recommended that this value be no more than 250 ms.
     This feature should be disabled for most devices. -->
    <integer name="config_virtualKeyQuietTimeMillis">250</integer>

    <!-- Boolean indicating if current platform supports bluetooth wide band
     speech -->
    <bool name="config_bluetooth_wide_band_speech">false</bool>

    <bool name="config_ui_enableFadingMarquee">false</bool>

    <!-- The attenuation in dB applied to the sound effects played
     through AudioManager.playSoundEffect() when no volume is specified. -->
    <integer name="config_soundEffectVolumeDb">-12</integer>

<string-array name="config_usbHostBlacklist">

    <item>/dev/bus/usb/001</item>

    </string-array>

<bool name="config_showNavigationBar">true</bool>

</resources>

Modifiez out/target/product/grouper/Root/init.usb.rc de la manière suivante :

# Copyright (C) 2012 The Android Open Source Project
#
# USB configuration common for all android devices
#

on post-fs-data
    chown system system /sys/class/android_usb/android0/f_mass_storage/lun/file
    chmod 0660 /sys/class/android_usb/android0/f_mass_storage/lun/file
    chown system system /sys/class/android_usb/android0/f_rndis/ethaddr
    chmod 0660 /sys/class/android_usb/android0/f_rndis/ethaddr

# Used to disable USB when switching states
on property:sys.usb.config=none
    stop adbd
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/bDeviceClass 0
    setprop sys.usb.state ${sys.usb.config}

# adb only USB configuration
# This should only be used during device bringup
# and as a fallback if the USB manager fails to set a standard configuration
on property:sys.usb.config=adb
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 18d1
    write /sys/class/android_usb/android0/idProduct D002
    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}

# USB accessory configuration
on property:sys.usb.config=accessory
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 18d1
    write /sys/class/android_usb/android0/idProduct 2d00
    write /sys/class/android_usb/android0/functions ${sys.usb.config}
    write /sys/class/android_usb/android0/enable 1
    setprop sys.usb.state ${sys.usb.config}

# USB accessory configuration, with adb
on property:sys.usb.config=accessory,adb
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 18d1
    write /sys/class/android_usb/android0/idProduct 2d01
    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}

# audio accessory configuration
on property:sys.usb.config=audio_source
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 18d1
    write /sys/class/android_usb/android0/idProduct 2d02
    write /sys/class/android_usb/android0/functions ${sys.usb.config}
    write /sys/class/android_usb/android0/enable 1
    setprop sys.usb.state ${sys.usb.config}

# audio accessory configuration, with adb
on property:sys.usb.config=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 2d03
    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}

# USB and audio accessory configuration
on property:sys.usb.config=accessory,audio_source
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 18d1
    write /sys/class/android_usb/android0/idProduct 2d04
    write /sys/class/android_usb/android0/functions ${sys.usb.config}
    write /sys/class/android_usb/android0/enable 1
    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}

# 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}

on property:sys.usb.config=rndis
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 18d1
    write /sys/class/android_usb/android0/idProduct 4e23
    write /sys/class/android_usb/android0/functions ${sys.usb.config}
    write /sys/class/android_usb/android0/bDeviceClass 224
    write /sys/class/android_usb/android0/enable 1
    setprop sys.usb.state ${sys.usb.config}

on property:sys.usb.config=rndis,adb
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 18d1
    write /sys/class/android_usb/android0/idProduct 4e24
    write /sys/class/android_usb/android0/functions ${sys.usb.config}
    write /sys/class/android_usb/android0/bDeviceClass 224
    write /sys/class/android_usb/android0/enable 1
    start adbd
    setprop sys.usb.state ${sys.usb.config}

Et utilisez un noyau Tegra modifié avec RNDIS activé.

Veuillez consulter ce post XDA

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X