[GUIDE] Build / Mod AVD Kernel Android [10][11][12][13] rootAVD [Magisk] [USB passthrough] [Linux][Windows][MacOS] [Google Play Store API] - Android Software/Hacking General [Developers Only]

Hello Fellows,
with this Guide I would like to show what is necessary to do,
to get the new USB passthrough Feature,
from the Android Studio since Emulator 30.0.26 (August 16, 2020),
to work with a USB-Serial Device. Unfortunately the announcement "USB passthrough is now available"
needs to be taken literally. It means, just the passing from the host system to the gates of Android are possible.
There is no "taking it from there" implemented in Android nor the Kernel. And this is what this Guide is all about.
Inspired by Alabate and his Guide Use custom USB device with Android emulator by using custom built kernel on Ubuntu 18.04
Three basic steps needed to be done.
[Update 04.05.2021]
Spoiler: Kernel Compilation
A much more easier and reliable way on how to build, mod and update your AVDs Kernel with its modules,
can be found in my [GUIDE] by using the official AOSP Build ENV.
Build the AVD Kernel with the right check at the right place
Convince Linux to actually let go of the USB-Serial Device
Grant Permissions in Android to acknowledge the new plugged in Device
The Development Environment:
Apple Macbook Pro 2011 Dualboot
USB-Serial Device Prolific PL2303 Serial Port
Linux Mint 20 Ulyana
Android Studio 4.1.1 (Software Manager)
KVM -> Cosmic (18.10) or later
Android emulator version 30.2.6.0 (build_id 6962233)
Google APIs Intel x86 Atom_64 System Image Android 10 API 29 (revision: 11)
miscellaneous
1. Build the AVD Kernel with the right check at the right place
### From the shell with the AVD running we can get some Kernel Infos:
uname -r && uname -v
4.14.175-g6f3fc9538452
#1 SMP PREEMPT Wed Apr 8 17:38:09 UTC 2020
### Install the following tools to work with and to build the kernel:
sudo apt-get install -y build-essential libssl-dev kernel-package libncurses5-dev bzip2 lib32z1 bison flex
sudo apt-get install -y libelf-dev libelf-devel or elfutils-libelf-dev
sudo apt-get install -y qt5-default qttools5-dev-tools qttools5-dev
sudo apt-get install -y geany git
### Create a working directory and download the kernel source and its prebuilt gcc:
I choose the latest android-10.0.0_r47 branch and its prebuilt gcc 4.9
Code:
cd ~/ && mkdir avdkernelcompile && cd avdkernelcompile
git clone \
-b android-10.0.0_r47 \
--single-branch https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9
I also choose the mainline android-goldfish-4.14-dev branch from the goldfish kernel source
Code:
git clone -b android-goldfish-4.14-dev --single-branch https://android.googlesource.com/kernel/goldfish
### Pull the config.gz from the AVD to generate and merge the kernel defconfigs file:
These steps lower the risk of getting build errors. And before you mod the kernel, it could
make sense to start with a build kernel that actually boots your AVD first, and then apply changes to it.
Code:
adb pull /proc/config.gz
gunzip -k config.gz
cd goldfish
cp ../config .config
make savedefconfig
mv defconfig arch/x86/configs/avd_pulled_defconfig
rm .config
./scripts/kconfig/merge_config.sh -m \
./arch/x86/configs/avd_pulled_defconfig \
./arch/x86/configs/x86_64_ranchu_defconfig
make savedefconfig
mv defconfig arch/x86/configs/merged_avd_pulled_defconfig
rm .config
### prepare the kernel with the gcc to be build:
we are now in the goldfish directory
exports must be done every time you open a new terminal
export CROSS_COMPILE=x86_64-linux-android-
export ARCH=x86_64
export PATH=$PATH:$(pwd)/../x86_64-linux-android-4.9/bin
make the just created defconfig file
make merged_avd_pulled_defconfig
If you come back here later, this is the right place to mod your kernel.
I like the GUI Interface because you have a better overview and a search function.
make xconfig
In order to get the USB-Serial recognized by the kernel, make sure the UHCI HCD is checked.
You can find it under: Device Drivers -> USB support -> UHCI HCD (most Intel and VIA) support
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Close and save it.
### build the actually kernel, with the all CPU cores you have, and see afterwards how long it took:
time make -j$(nproc)
The new kernel is placed in:
~/avdkernelcompile/goldfish/arch/x86/boot/bzImage
We leave it there for now. If you are planing to make changes when all is working so far, just jump
to make xconfig . The build time now is much smaller now. If you have to start over,
you can run make mrproper
### Start the AVD with the new kernel from via terminal
To be able to start the emulator and adb from everywhere, add those path in your ~/.bashrc
echo export PATH=~/Android/Sdk/platform-tools:$PATH >> ~/.bashrc
echo export PATH=~/Android/Sdk/emulator:$PATH >> ~/.bashrc
source ~/.bashrc
run the new kernel with:
Code:
emulator \
-netdelay none -netspeed full -avd Pixel_4_XL_API_29 \
-writable-system -no-snapshot-load \
-show-kernel \
-verbose \
-ranchu \
-kernel ~/avdkernelcompile/goldfish/arch/x86/boot/bzImage
If the kernel works proper, you can run the AVD with this even after a Wipe Data from the AVD Manager
Later on, you can get rid of the show-kernel, verbose and ranchu option. If the kernel boots and you
can work with the AVD for your satisfaction, it is time for the mod and the next step.
2. Convince Linux to actually let go of the USB-Serial Device
According to the Emulator Release Notes, one would just need the vendorID and productID from the desired USB Device to pass it through. These are easily obtained by:
lsusb
Bus 002 Device 009: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
To start the AVD with it, and you leave out the verbose stuff, the command changes to:
Code:
emulator \
-netdelay none -netspeed full -avd Pixel_4_XL_API_29 \
-writable-system \
-no-snapshot-load \
-kernel ~/avdkernelcompile/goldfish/arch/x86/boot/bzImage \
-qemu -usb \
-device usb-host,vendorid=0x067b,productid=0x2303
If you keep watching the terminal, you can see the error message:
libusb: error [get_usbfs_fd] libusb couldn't open USB device /dev/bus/usb/001/043, errno=13
libusb: error [get_usbfs_fd] libusb requires write access to USB device nodes
Now to convince Linux to let go of the USB-Serial Device, one must create an UDEV Rule.
You can do this even while the AVD is running an the USB-Serial Device is connected:
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", OWNER="libvirt-qemu", GROUP="kvm"' | sudo tee /etc/udev/rules.d/99-usb-android.rules
After this echo command, watch while you unplug and plug it, you will only see the Info Message:
libusb_release_interface: -4 [NO_DEVICE]
And if you also watching the AVD with:
adb root
adb shell
dmesg | grep usb
You will see that the kernel is already recognizing it.
[ 619.670306] usb 1-1: new full-speed USB device number 6 using uhci_hcd
[ 620.071451] usb 1-1: New USB device found, idVendor=067b, idProduct=2303
[ 620.073050] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 620.074698] usb 1-1: Product: USB-Serial Controller
[ 620.075872] usb 1-1: Manufacturer: Prolific Technology Inc.
Btw: If you also want to use this USB-Serial Device without access issues in other tools, for example CoolTerm,
just copy the line from the udev rule and change the SUBSYSTEM to tty.
SUBSYSTEM=="tty", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", OWNER="libvirt-qemu", GROUP="kvm"
Side Note: Under Mac OS you will get a similar libusb: error, but unlike Linux, there is no UDEV System, so you
cannot change this situation at all. Also not by unloading a kext. I tried, even with EL Capitan where you actually
still could unload kexts very easily. So this just "prooves" that the Google Developers, never tried to pass an USB
through - even if they hinted it: (This should also have been workng on Linux and macOS already) And it is even
worst, there is actually a very convenient feature built in QEMU, with the -serial keyword, you can attach such devices
in no time. But for some reason, EXACTLY this feature is taken out from the Google Developers - what a bummer.
3. Grant Permissions in Android to acknowledge the new plugged in Device
With the kernel recognizing the USB-Serial Device and Linux let us acces it, the AVD just doesn't know what
to do with it. Or rather, it doesn't have permissions to proceed. To grant these permissions, one must simply
place a file, with this permissions, called android.hardware.usb.host.xml in /system/etc/permissions or
in /vendor/etc/permissions.
For both places we need not only root but also write access to it. Google Play AVD Images can be rooted, with my
rootAVD script, but these partitions can't remounted as writeable, no matter what. At least, not with my skills.
AVD Images with Google APIs on the other hand are capable of beeing rooted and writeable out of the box.
Actually, just the overlay paritions can be writeable. To achive this, one must start the AVD with the -writable-system
option. What we already doing all the time.
When the AVD is up, go with the ADB commands one by one:
adb root
adb shell avbctl disable-verification
adb disable-verity
adb reboot
adb root
adb remount
adb shell
Every command must show a positive result, if you stuck in a bootloop or so afterwards,
one of the two disable commands didn't work. Start over with a Wipe Data.
Once the remount command shows remount succeeded you are good to go.
In the adb shell:
echo '<permissions><feature name="android.hardware.usb.host"/></permissions>' > /system/etc/permissions/android.hardware.usb.host.xml
chmod 644 /system/etc/permissions/android.hardware.usb.host.xml
reboot
After the Reboot, plug in your USB-Serial Device, and If you have Serial USB Terminal installed.
it will finally pop up a message.
If you have USB Device Info installed, It will even show more informations.
If I disable USB Debugging, the 0000 Device will disappear.
That's it for now. The USB Passthrough for USB-Serial Devices can work.
I am currently working on a way to get a mass storage mounted in the AVD.
But I can't figure out the right fstab.ranchu entry for the AVD to auto mount my USB Storage.
I could get the kernel to recognize it:
[ 28.090063] usb 1-1: new full-speed USB device number 2 using uhci_hcd
[ 28.491686] usb 1-1: not running at top speed; connect to a high speed hub
[ 28.499738] usb 1-1: config 1 interface 0 altsetting 0 endpoint 0x2 has invalid maxpacket 512, setting to 64
[ 28.501413] usb 1-1: config 1 interface 0 altsetting 0 endpoint 0x81 has invalid maxpacket 512, setting to 64
[ 28.515287] usb 1-1: New USB device found, idVendor=1f75, idProduct=0917
[ 28.516925] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 28.518772] usb 1-1: Product: PenDrive
[ 28.519699] usb 1-1: Manufacturer: Innostor
[ 28.522417] usb 1-1: SerialNumber: 000000000000000071
[ 28.526804] usb-storage 1-1:1.0: USB Mass Storage device detected
[ 28.528787] scsi host0: usb-storage 1-1:1.0
[ 29.962957] usb 1-1: reset full-speed USB device number 2 using uhci_hcd
But it keeps getting repeated with the last line
It also does show up as block device in:
brw------- 1 root root 8, 0 2021-01-03 23:49 sda
But without sda1, just sda. And the USB Stick was formated via SDCARDFS in a real phone.
Update 06.01.2021:
Modding the Kernel with USB Mass Storage and SCSI support
In order to get an USB Stick announced by the kernel as block device node, one must
activate some additional Supports in the Kernel Config.
Device Drivers
SCSI device support
SCSI device support
SCSI disk support
USB support
USB Mass Storage support
USB Attached SCSI
With these additional features, the kernel is providing the pluged USB Stick under
/dev/block/sd which is needed to get the fstab.ranchu able to pick it up.
Once the kernel is complete, one must tell Qemu where it is supposed to plug in the USB Stick.
This is done with the -device and USB type options:
Code:
-device usb-ehci,id=ehci \
-device usb-host,bus=ehci.0,vendorid=0x8564,productid=0x1000
The EHCI (USB 2.0) driver support is already build in the stock kernel, so if you device can be
"downsqeezed" you can tell it Qemu with these words. Use the device usb.ehci, identify it for me as ehci, and attach my VendorID and ProductID to your usb-host bus ehci.0
(ehci in qemu provides 8 USB ports) With this way, you can also attach multiply USB Devices to the same AVD.
Code:
-device usb-ehci,id=ehci \
-device usb-host,bus=ehci.0,vendorid=0x8564,productid=0x1000 \
-device usb-host,bus=ehci.0,vendorid=0x1f75,productid=0x0917
If you have added USB 3.0 support in your kernel already, you can even use the XHCI driver.
Code:
emulator \
-netdelay none -netspeed full -avd Pixel_4_XL_API_29 \
-writable-system -no-snapshot-load \
-kernel ~/avdkernelcompile/goldfish/arch/x86/boot/bzImage \
-qemu -usb \
-device usb-ehci,id=ehci \
-device usb-host,bus=ehci.0,vendorid=0x8564,productid=0x1000 \
-device qemu-xhci,id=xhci \
-device usb-host,bus=xhci.0,vendorid=0x1f75,productid=0x0917
And with the fstab.ranchu correctly tuned, both USB Stick will pop up systemwide for every app to use.
Spoiler: Root and fstab.ranchu
Modding the fstab.ranchu
Without Magisk on the AVD installed, you can very easly edit the
/vendor/etc/fstab.ranchu just in the adb remounted overlay partitions.
Add this line to it:
/devices/*/block/sd* auto auto defaults voldmanaged=usb:auto
With Magisk on the AVD installed, it gets messy. Due to the fact, that Magisk is mounting a mirror of the orignal read-only partitions, some changes can't be done like before. The only way I could figure out was
to add the fstab.ranchu in my ramdisk.img and let Magisk overlay it during boot time.
Root Directory Overlay System
For this you can use my script rootAVD.sh
Code:
# Set PATCHFSTAB=true if you want the RAMDISK merge your modded fstab.ranchu before Magisk Mirror gets mounted
PATCHFSTAB=false
#PATCHFSTAB=true
# cp the read-only fstab.ranchu from vendor partition and add usb:auto for SD devices
# kernel musst have Mass-Storage + SCSI Support enabled to create /dev/block/sd* nodes
...
How to root the AVD and patch fstab.ranchu:
The script runs in Linux, Darwin MacOS and Windows. It needs the path to the ramdisk.img of the system-image as a parameter.
The AVD needs to be running and accessible via adb shell.
Then just run it and restart, NOT adb reboot, your AVD. It works with
Android 7, Android 10 and Android 11. But not with Android 8 and Android 9.
It also copys every .apk within the Apps Folder to the AVD.
./rootAVD.sh ~/Android/Sdk/system-images/android-30/google_apis_playstore/x86_64/ramdisk.img
To get the fstab.ranchu patched, set PATCHFSTAB=true, make some adjustments, and let the rootAVD script run.
Miscellaneous:
Special Cherrys for Googe Play Store AVD with Stock Kernel:
The EHCI USB Driver is already implemented in the Stock Kernel, even in the Google Play Version AVD.
By adding the android.hardware.usb.host.xml file to its rightful place, a well
written App, like X-plore File Manager, could use its own USB-Driver to access the USB Storage.
But how to get it there? Once Magisk is installed via the rootAVD script. Which are basicly the
original scripts from Magisk, just a bit tuned. You can install my Magisk Module: usbhostpermissons
Don't forget to start the AVD with usb-ehci command. The USB Stick won't pop up systemwide,
but you can still use them within X-plore and copy & paste files with it.
Replace the emulator with a script to pass arguments and run it from the GUI:
Code:
mv ~/Android/Sdk/emulator/emulator ~/Android/Sdk/emulator/emulator-original
cat <<EOF > ~/Android/Sdk/emulator/emulator
#!/bin/bash
~/Android/Sdk/emulator/emulator-original \[email protected] \
-writable-system -no-snapshot-load \
-kernel ~/avdkernelcompile/goldfish/arch/x86/boot/bzImage \
-qemu -usb \
-device usb-ehci,id=ehci \
-device usb-host,bus=ehci.0,vendorid=0x8564,productid=0x1000 \
-device qemu-xhci,id=xhci \
-device usb-host,bus=xhci.0,vendorid=0x1f75,productid=0x0917 \
-device usb-host,bus=usb-bus.0,vendorid=0x067b,productid=0x2303
EOF
chmod +x ~/Android/Sdk/emulator/emulator
If you have your original emulator file renamed, don't forget to change it when you are
calling it manual from the command line.
[Update 15.12.2021]
Spoiler: For Windows Only.
Since Emulator Version 31.1.4, Google re-implemented the USB pass through feature along with
some tools:
prebuilt Windows drivers for USB passthrough
Downloadable directly from the AOSP by clicking the [tgz]
and emulator parameters:
-list-usb
-usb-passthrough
The Windows drivers must be installed from an Adminstrator Command Shell
Code:
Install_Drivers.bat
Installing Android USB Assistant...
call Android_USB_Assistant_Install.bat
Microsoft PnP Utility
Processing inf : Android_USB_Assistant.inf
Successfully installed the driver.
Driver package added successfully.
Published name : oem89.inf
Total attempted: 1
Number successfully imported: 1
Installing Android Emulator USB Passthrough Assistance Driver
SERVICE_NAME: UsbAssist
TYPE : 1 KERNEL_DRIVER
STATE : 1 STOPPED
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
[SC] DeleteService SUCCESS
SERVICE_NAME: UsbAssist
TYPE : 1 KERNEL_DRIVER
STATE : 4 RUNNING
(STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
PID : 0
FLAGS :
Find your connected USB Devices
Code:
emulator -list-usb
VID:PID 058f:6387 (Bus 1, Port 5.1.1)
Manufacturer:
Product:
SerialNumber: 40A0FE0A
VID:PID 067b:2303 (Bus 1, Port 5.1.2)
Manufacturer: NA
Product: NA
SerialNumber: NA
VID:PID 0403:6001 (Bus 1, Port 5.1.2)
Manufacturer: FTDI
Product: USB-to-Serial
SerialNumber: FT9QIQ6Y
VID:PID 1bcf:284c (Bus 1, Port 5.1.2)
Manufacturer: SunplusIT Inc
Product: 5MP USB webcam
SerialNumber: N2020040701
Now you can use those VID : PID combination to pass it through your AVD
Code:
emulator -netdelay none -netspeed full -avd Pixel_4_API_3 -usb-passthrough vendorid=0x058f,productid=0x6387
Multible VID : PID combinations are also possible
Code:
emulator -netdelay none -netspeed full -avd Pixel_4_API_32 -usb-passthrough vendorid=0x058f,productid=0x6387 -usb-passthrough vendorid=0x067b,productid=0x2303
Unfortunately the emulator will show this Error:
Code:
qemu-system-x86_64.exe: libusb_kernel_driver_active: -12 [NOT_SUPPORTED]
But the Devices are still passed through.
They will not be shown in the AVD nor recognized as a Device in any way.
In order to accomplish this, you must:
root the AVD with Magisk (Canary for 64-Bit only AVDs)
patch the FSTAB to get USB Drives automaticly mounted as a drive
install my USB Host Permissions Magisk Module
This can be done by:
Code:
rootAVD.bat %LOCALAPPDATA%\Android\Sdk\system-images\android-32\google_apis_playstore\x86_64\ramdisk.img PATCHFSTAB GetUSBHPmodZ
The Magisk Module will be put into the local Download folder of the AVD.
AVDs with a Kernel Version lower then 5.4.65 need either a custom build kernel with the
USB features enabled or an updated prebuild Kernel directly from the AOSP.
Code:
rootAVD.bat %LOCALAPPDATA%\Android\Sdk\system-images\android-30\google_apis_playstore\x86_64\ramdisk.img InstallPrebuiltKernelModules PATCHFSTAB GetUSBHPmodZ
[Update 10.10.2022]
Spoiler: For MacOS Only.
Recently I've stumbled across this Question on stackoverflow:
How to use USB with QEMU on a Mac host?
In there is a discussion mentioned, on GitHub, that kind of resolved the issue
with USB Passthrough Feature and LibUSB.
macOS: implement kernel driver detach #911
followed by a very good explanation on what is actually going on with the real reasons behind it.
How to use the new macOS kernel detach feature for non-root user no solution as of now for libuvc users #1014
However, long story short, the USB Passthrough Feature for AVDs works now If you boot the AVD with
root privileges. Here is what I did to get it working.
Install libusb 1.0.26 via Homebrew:
brew install libusb
or check your libusb version first:
Code:
brew list --versions libusb
libusb 1.0.26
I am on MacOs Monterey now:
Code:
[email protected] % sw_vers
ProductName: macOS
ProductVersion: 12.6.1
BuildVersion: 21G217
[email protected] % emulator
INFO | Android emulator version 31.3.13.0 (build_id 9189900) (CL:N/A)
The following examples and devices I've tested so far:
USB Drive 2GB:
Code:
export PID="0x6387"
export VID="0x058f"
sudo emulator \
-netdelay none \
-netspeed full \
-no-snapstorage \
-avd Pixel_4_API_33 \
-qemu -usb \
-device usb-ehci,id=ehci \
-device usb-host,bus=ehci.0,vendorid="$VID",productid="$PID"
Code:
2022-11-10 16:32:14.088 qemu-system-x86_64[9002:323007] vendorID: 0x058f (1423), productID: 0x6387 (25479)
2022-11-10 16:32:14.088 qemu-system-x86_64[9002:323007] Command line USB devices: ("vendorID: 0x58f, productID: 0x6387")
2022-11-10 16:32:14.088 qemu-system-x86_64[9002:323007] Acquiring USB Exclusive access for device: <vendorID: 0x58f, productID: 0x6387>
2022-11-10 16:32:14.092 qemu-system-x86_64[9002:323007] Service authorization failed with error with return code: -536870202
What doesn't work is unplugging and re-plugging. The AVD needs to boot with it. Every time the AVD boots, the Disk Not Ejected Properly Message pops up. Even if it says Service authorization failed with error with return code: -536870202, the device pops up system wide.
USB 3.0 Hard Drive:
Code:
export PID="0x5106"
export VID="0x174c"
sudo emulator \
-netdelay none \
-netspeed full \
-no-snapstorage \
-avd Pixel_4_API_33 \
-qemu -usb \
-device qemu-xhci,id=xhci \
-device usb-host,bus=xhci.0,vendorid="$VID",productid="$PID"
I guess the AVD doesn't like the filesystem on that drive.
USB WebCam (uvc):
Code:
export PID="0x636d"
export VID="0x0c45"
sudo emulator \
-netdelay none \
-netspeed full \
-no-snapstorage \
-avd Pixel_4_API_33 \
-qemu -usb \
-device qemu-xhci,id=xhci \
-device usb-host,bus=xhci.0,vendorid="$VID",productid="$PID"
USB-to-Serial Device:
Code:
export PID="0x6001"
export VID="0x0403"
sudo emulator \
-netdelay none \
-netspeed full \
-no-snapstorage \
-avd Pixel_4_API_33 \
-qemu -usb \
-device qemu-xhci,id=xhci \
-device usb-host,bus=xhci.0,vendorid="$VID",productid="$PID"
Conclusion:
The AVDs/Qemu USB Passthrough Feature paired with libusb on MacOs is still a farce.
Makes me wonder how Parallels Desktop is capable since kajillian years of passing any kind
of USB device through, without any root. And they have literally patch there Tools every Kernel
version.
Thanks for reading
Cheers NewBit
Thanks and Credits to @topjohnwu , Alabate, Google, Qemu and Jitendra
QEMU/Devices/USB/Root
USB Quick Start
USB recommendations for qemu
qemu usb storage emulation

Have you mange to make it work on windows ?

Have you mange to make it work on windows ?

tomek_be said:
Have you mange to make it work on windows ?
Click to expand...
Click to collapse
Sorry for the late response, I didn't get any notice...
No I did not even try it. Did you?

I did but with no luck. Emulator correctly creates USB controller and /sys/kernel/debug/usb/devices contains entries corresponding with command line options but passthrough USB device is not discovered by the kernel. Sometimes emulator produces message on stdout that devices has been attached or detached but it is not repeatable. I tried different hardware accelerations ( HAXM and WHPX ) - nothing . BTW - on linux it worked like a charm - only thing I need to do was creating proper /system/etc/permissions/android.hardware.usb.host.xml. After that non modified kernel picked up usb device.

tomek_be said:
I did but with no luck. Emulator correctly creates USB controller and /sys/kernel/debug/usb/devices contains entries corresponding with command line options but passthrough USB device is not discovered by the kernel. Sometimes emulator produces message on stdout that devices has been attached or detached but it is not repeatable. I tried different hardware accelerations ( HAXM and WHPX ) - nothing . BTW - on linux it worked like a charm - only thing I need to do was creating proper /system/etc/permissions/android.hardware.usb.host.xml. After that non modified kernel picked up usb device.
Click to expand...
Click to collapse
Weird, I still don't get any notice.
So you did try it on Linux with Stock Kernel and permission xml file!? -> it worked
You also tried the same thing on Windows? -> it didn't worked
Is it the same/similar AVD version? Is the syntax on windows different? What commands did you use exactly?
Is your AVD rooted? Did you cross compare the Kernel Configs? Kernel Versions?
What USB Device exactly you are trying to pass through?

Hello fellows, Did you find the way to make it work in Windows ?, It's hard to create apps that need interaction with USB / Bluetooth devices under Windows environment !, I wonder why these guys at Google make it so hard ?

mariodantas said:
Hello fellows, Did you find the way to make it work in Windows ?, It's hard to create apps that need interaction with USB / Bluetooth devices under Windows environment !, I wonder why these guys at Google make it so hard ?
Click to expand...
Click to collapse
It was actually already solved, the same way like on linux. But Google
decided to take out the USB Pass Through Feature on Windows.
Android emulator USB passthrough fails: " 'usb-host' is not a valid device model name"
So the only chance would be to get back to Version 30.5.2 (build_id 7175973) (Feb 27, 2021) to try it out.

Hard to develop apks that need to cope with USB or BT in Windows machines, what's wrong with Google ?
Thanks for your information buddy !

mariodantas said:
what's wrong with Google ?
Click to expand...
Click to collapse
I've stopped wondering since they put this sneaky covid "feature" undetected on my phone.
mariodantas said:
Hard to develop apks that need to cope with USB or BT in Windows machines
Click to expand...
Click to collapse
Yes, totally. But Microsoft is to blame as well, according to Erwin Jansen.
I guess you need to remotely debug your apk directly on your phone/device.
mariodantas said:
Thanks for your information buddy !
Click to expand...
Click to collapse
No problem, If there is any USB update in the Windows Version, I am happily updating this Guide.

Hello newbit,
USB passthrough with (ASUS USB-BT400 USB Adapter USBBT400) on Linux is working fine, Emulator is able to connect to phone with BT dongle mentioned above - followed steps in android link - https://source.android.com/devices/automotive/start/passthrough
But when trying the same in MAC OS, I could see BT dongle is getting detected in Emulator as shown below (0b05:17cb) but BT in emulator not working. So, not able to connect to phone.
1|emulator:/ # lsusb
Bus 004 Device 001: ID 1d6b:0002
Bus 004 Device 002: ID 0b05:17cb
Bus 002 Device 001: ID 1d6b:0002
My question is that, In linux I have Update udev settings to allow the user process (e.g. QEMU) to have read/write permissions:
$ echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="17cb", MODE="0666", GROUP="plugdev"' | sudo tee /etc/udev/rules.d/99-mynew.rules >/dev/null
$ sudo udevadm control --reload
$ sudo udevadm trigger
But in MAC OS I am not sure how to do the same ie Update udev settings to allow user process to have read/write permissions ? I am not sure if this is the problem ? Are you successful with USB passthrough on MAC OS ?
I am currently blocked and any inputs on this regard would be great. Thanks

nrajeevlochan said:
Hello newbit,
USB passthrough with (ASUS USB-BT400 USB Adapter USBBT400) on Linux is working fine, Emulator is able to connect to phone with BT dongle mentioned above - followed steps in android link - https://source.android.com/devices/automotive/start/passthrough
But when trying the same in MAC OS, I could see BT dongle is getting detected in Emulator as shown below (0b05:17cb) but BT in emulator not working. So, not able to connect to phone.
1|emulator:/ # lsusb
Bus 004 Device 001: ID 1d6b:0002
Bus 004 Device 002: ID 0b05:17cb
Bus 002 Device 001: ID 1d6b:0002
My question is that, In linux I have Update udev settings to allow the user process (e.g. QEMU) to have read/write permissions:
$ echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="17cb", MODE="0666", GROUP="plugdev"' | sudo tee /etc/udev/rules.d/99-mynew.rules >/dev/null
$ sudo udevadm control --reload
$ sudo udevadm trigger
But in MAC OS I am not sure how to do the same ie Update udev settings to allow user process to have read/write permissions ? I am not sure if this is the problem ? Are you successful with USB passthrough on MAC OS ?
I am currently blocked and any inputs on this regard would be great. Thanks
Click to expand...
Click to collapse
Hi @nrajeevlochan,
as mentioned above, Mac doesn't have this UDEV feature like Linux has it. Depending on the Mac OS Version,
I had to extract and copy some dylib files from a newer Mac OS Version to my running Version. The Error
output was gone, but the USB Device wasn't passed through. So for now, I cannot provide something useful to get the USB Pass through feature running on Mac OS. The only, non-convenient work around is, to adb remote connect to your Linux AVD. But you need either 2 separate Machines or a virtual Machine running in your Mac. Which will cost you a lot of performance. Is there any error message on the terminal regarding your USB?

newbit said:
Hi @nrajeevlochan,
as mentioned above, Mac doesn't have this UDEV feature like Linux has it. Depending on the Mac OS Version,
I had to extract and copy some dylib files from a newer Mac OS Version to my running Version. The Error
output was gone, but the USB Device wasn't passed through. So for now, I cannot provide something useful to get the USB Pass through feature running on Mac OS. The only, non-convenient work around is, to adb remote connect to your Linux AVD. But you need either 2 separate Machines or a virtual Machine running in your Mac. Which will cost you a lot of performance. Is there any error message on the terminal regarding your USB?
Click to expand...
Click to collapse
Hi newbit,
Thanks for your quick response.
Please see the error I am getting with "dmesg | grep usb" below:
emulator:/ # dmesg | grep usb
[ 205.231407] usb 1-1: new high-speed USB device number 2 using xhci_hcd
[ 205.383241] usb 1-1: config 1 interface 0 altsetting 0 bulk endpoint 0x82 has invalid maxpacket 64
[ 205.384500] usb 1-1: config 1 interface 0 altsetting 0 bulk endpoint 0x2 has invalid maxpacket 64
[ 205.385742] usb 1-1: config 1 interface 2 altsetting 0 bulk endpoint 0x84 has invalid maxpacket 32
[ 205.387163] usb 1-1: config 1 interface 2 altsetting 0 bulk endpoint 0x4 has invalid maxpacket 32
[ 205.392405] usb 1-1: New USB device found, idVendor=0b05, idProduct=17cb, bcdDevice= 1.12
[ 205.393828] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 205.395216] usb 1-1: Product: BCM20702A0
[ 205.395983] usb 1-1: Manufacturer: Broadcom Corp
[ 205.396874] usb 1-1: SerialNumber: 5CF370A4407D
[ 205.405316] usb 1-1: can't set config #1, error -32
[ 205.566482] usb 1-1: usbfs: USBDEVFS_CONTROL failed cmd UsbDeviceHandle rqt 192 rq 51 len 2 ret -110
[ 205.621767] usb 1-1: usbfs: USBDEVFS_CONTROL failed cmd UsbDeviceHandle rqt 192 rq 51 len 2 ret -110

nrajeevlochan said:
Hi newbit,
Thanks for your quick response.
Please see the error I am getting with "dmesg | grep usb" below:
emulator:/ # dmesg | grep usb
[ 205.231407] usb 1-1: new high-speed USB device number 2 using xhci_hcd
[ 205.383241] usb 1-1: config 1 interface 0 altsetting 0 bulk endpoint 0x82 has invalid maxpacket 64
[ 205.384500] usb 1-1: config 1 interface 0 altsetting 0 bulk endpoint 0x2 has invalid maxpacket 64
[ 205.385742] usb 1-1: config 1 interface 2 altsetting 0 bulk endpoint 0x84 has invalid maxpacket 32
[ 205.387163] usb 1-1: config 1 interface 2 altsetting 0 bulk endpoint 0x4 has invalid maxpacket 32
[ 205.392405] usb 1-1: New USB device found, idVendor=0b05, idProduct=17cb, bcdDevice= 1.12
[ 205.393828] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 205.395216] usb 1-1: Product: BCM20702A0
[ 205.395983] usb 1-1: Manufacturer: Broadcom Corp
[ 205.396874] usb 1-1: SerialNumber: 5CF370A4407D
[ 205.405316] usb 1-1: can't set config #1, error -32
[ 205.566482] usb 1-1: usbfs: USBDEVFS_CONTROL failed cmd UsbDeviceHandle rqt 192 rq 51 len 2 ret -110
[ 205.621767] usb 1-1: usbfs: USBDEVFS_CONTROL failed cmd UsbDeviceHandle rqt 192 rq 51 len 2 ret -110
Click to expand...
Click to collapse
My apologies @nrajeevlochan,
I didn't even notice that you've replied to my question.
[ 205.405316] usb 1-1: can't set config #1, error -32
indicates, that the AVD actually detects the device, and can even read some low level information from it.
Like Product, VID, PID etc. But the host system doesn't fully let it go, so this error can't set config #1, error -32 shows up, indicating that state.
I do have some positive updates tho, you might wanna check out the
[Update 10.10.2022]
For MacOS Only.
Cheers NewBit

Related

[Q] Linux: pass APX device to VirtualBox guest

Several guides explain how to install APX drivers "on Windows only", and that they are not required on Linux (e.g. this one). Unfortunately I think that I do require such a driver on Linux, because I want to pass the APX device to my VirtualBox guest (where Win7 is running). And I think I can only pass usb devices to the guest that appear in VirtualBox's usb device list - which is a list of devices that have a Linux driver. So here's the question:
How can I pass an APX device to a VirtualBox guest (Win7) on a Linux host?
My APX device is a LG P990. It's based on nvidia tegra, so dmesg says:
Code:
[ 7386.292082] usb 2-1: new high-speed USB device number 13 using ehci_hcd
[ 7386.424943] usb 2-1: New USB device found, idVendor=0955, idProduct=7f20
[ 7386.424954] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 7386.424961] usb 2-1: Product: APX
[ 7386.424967] usb 2-1: Manufacturer: NVIDIA Corp.
And this APX device actually is already being passed to VirtualBox, because an error window pops up (not a Windows window, but a VirtualBox window):
Code:
Failed to attach the USB device NVIDIA Corp. APX [0103] to the virtual machine Win7.
Failed to create a proxy device for the USB device. (Error: VERR_READ_ERROR).
Result Code:
NS_ERROR_FAILURE (0x80004005)
Component:
Console
Interface:
IConsole {db7ab4ca-2a3f-4183-9243-c1208da92392}
Might be a permission problem. However, I don't know how to solve it, because there's no device in /dev that appears when plugging in the LG P990. Google says that my user needs to be in the vboxusers group - but he already is. All the virtualbox devices in /dev are also accessible with my user. So in the end I think that my user should be able to access all devices that are available as a "file" in /dev. But I think there's something missing in /dev. It might be either...
a) /dev/ttyUSB0, which is the device of the usbserial module. It is not being loaded automatically, but I can force it with "sudo modprobe usbserial vendor=0x0955 product=0x7f20". But this doesn't seem to be the correct driver, because it says that the device has been disconnected as soon as the module is loaded. These dmesg entries appear all at once:
Code:
[ 4187.867971] usbcore: registered new interface driver usbserial
[ 4187.867997] usbcore: registered new interface driver usbserial_generic
[ 4187.869407] USB Serial support registered for generic
[ 4187.869436] usbserial_generic 2-1:1.0: The "generic" usb-serial driver is only for testing and one-off prototypes.
[ 4187.869440] usbserial_generic 2-1:1.0: Tell [email protected] to add your device to a proper driver.
[ 4187.869443] usbserial_generic 2-1:1.0: generic converter detected
[ 4187.870237] usb 2-1: generic converter now attached to ttyUSB0
[ 4187.870251] usbserial: USB Serial Driver core
[ 4188.312867] usb 2-1: USB disconnect, device number 7
[ 4188.313295] generic ttyUSB0: generic converter now disconnected from ttyUSB0
[ 4188.313319] usbserial_generic 2-1:1.0: device disconnected
So with the usbserial drivers there's neither /dev/ttyUSB0 nor a USB device in VirtualBox (the APX device that was available without any driver has disappeared).
b) /dev/ttyACM0 is the device of the module cdc_acm, which I think might could also handle the APX device; this is what happens in dmesg when attaching the LG to the USB port while cdc_acm is loaded (and usbserial is not loaded):
Code:
[ 4323.356889] usbcore: registered new interface driver cdc_acm
[ 4323.356895] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
But nothing is happening at all. Again, there's no /dev/ttyACM0. And this time the APX device in VirtualBox is still there (with the VERR_READ_ERROR again). So cdc_acm seems to have no effect at all.
c) loading usbserial AND cdc_acm - the same as if usbserial is loaded without cdc_acm; cdc_acm has no effect, so the same happens as in a)
Now I'm stuck. I don't know how to fix the permission error without a proper device in /dev. My best guess was the usbserial device that should have created /dev/ttyUSB0, but doesn't, and even prevents the APX "raw device" (without driver) to appear in VirtualBox's usb device list.
fyi: I've updated this VirtualBox bug report with my problem.
silly question
thorstenhirsch said:
Several guides explain how to install APX drivers "on Windows only", and that they are not required on Linux (e.g. this one). Unfortunately I think that I do require such a driver on Linux, because I want to pass the APX device to my VirtualBox guest (where Win7 is running). And I think I can only pass usb devices to the guest that appear in VirtualBox's usb device list - which is a list of devices that have a Linux driver. So here's the question:
How can I pass an APX device to a VirtualBox guest (Win7) on a Linux host?
My APX device is a LG P990. It's based on nvidia tegra, so dmesg says:
Code:
[ 7386.292082] usb 2-1: new high-speed USB device number 13 using ehci_hcd
[ 7386.424943] usb 2-1: New USB device found, idVendor=0955, idProduct=7f20
[ 7386.424954] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 7386.424961] usb 2-1: Product: APX
[ 7386.424967] usb 2-1: Manufacturer: NVIDIA Corp.
And this APX device actually is already being passed to VirtualBox, because an error window pops up (not a Windows window, but a VirtualBox window):
Code:
Failed to attach the USB device NVIDIA Corp. APX [0103] to the virtual machine Win7.
Failed to create a proxy device for the USB device. (Error: VERR_READ_ERROR).
Result Code:
NS_ERROR_FAILURE (0x80004005)
Component:
Console
Interface:
IConsole {db7ab4ca-2a3f-4183-9243-c1208da92392}
Might be a permission problem. However, I don't know how to solve it, because there's no device in /dev that appears when plugging in the LG P990. Google says that my user needs to be in the vboxusers group - but he already is. All the virtualbox devices in /dev are also accessible with my user. So in the end I think that my user should be able to access all devices that are available as a "file" in /dev. But I think there's something missing in /dev. It might be either...
a) /dev/ttyUSB0, which is the device of the usbserial module. It is not being loaded automatically, but I can force it with "sudo modprobe usbserial vendor=0x0955 product=0x7f20". But this doesn't seem to be the correct driver, because it says that the device has been disconnected as soon as the module is loaded. These dmesg entries appear all at once:
Code:
[ 4187.867971] usbcore: registered new interface driver usbserial
[ 4187.867997] usbcore: registered new interface driver usbserial_generic
[ 4187.869407] USB Serial support registered for generic
[ 4187.869436] usbserial_generic 2-1:1.0: The "generic" usb-serial driver is only for testing and one-off prototypes.
[ 4187.869440] usbserial_generic 2-1:1.0: Tell [email protected] to add your device to a proper driver.
[ 4187.869443] usbserial_generic 2-1:1.0: generic converter detected
[ 4187.870237] usb 2-1: generic converter now attached to ttyUSB0
[ 4187.870251] usbserial: USB Serial Driver core
[ 4188.312867] usb 2-1: USB disconnect, device number 7
[ 4188.313295] generic ttyUSB0: generic converter now disconnected from ttyUSB0
[ 4188.313319] usbserial_generic 2-1:1.0: device disconnected
So with the usbserial drivers there's neither /dev/ttyUSB0 nor a USB device in VirtualBox (the APX device that was available without any driver has disappeared).
b) /dev/ttyACM0 is the device of the module cdc_acm, which I think might could also handle the APX device; this is what happens in dmesg when attaching the LG to the USB port while cdc_acm is loaded (and usbserial is not loaded):
Code:
[ 4323.356889] usbcore: registered new interface driver cdc_acm
[ 4323.356895] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
But nothing is happening at all. Again, there's no /dev/ttyACM0. And this time the APX device in VirtualBox is still there (with the VERR_READ_ERROR again). So cdc_acm seems to have no effect at all.
c) loading usbserial AND cdc_acm - the same as if usbserial is loaded without cdc_acm; cdc_acm has no effect, so the same happens as in a)
Now I'm stuck. I don't know how to fix the permission error without a proper device in /dev. My best guess was the usbserial device that should have created /dev/ttyUSB0, but doesn't, and even prevents the APX "raw device" (without driver) to appear in VirtualBox's usb device list.
Click to expand...
Click to collapse
I use LG P990, someday i learn how to change GB partition to ICS partition,but it turn that i cant use my NVFlash, so i flash with kdz other country but nothing , what should i do to get my nvflash work?
a bug in vb
Seems that it's a known bug in VirtualBox: unfortunately, after a day of playing around - i took an old laptop and installed XP.
I didn't find workaround for VirtualBox: and I've tried them plenty (running VB as root is one of them).

[GUIDE] Use aircrack-ng on android phone using Wireless USB Adapter

Hey everyone,
It is possible to use an external Wi-Fi adapter with an android phone to run aircrack-ng, however I've had a lot of difficulties doing so. Here is a tutorial to make it easier for you.
The theory
Running the aircrack-ng suite itself is not much of a problem, as android is pretty much like ubuntu. The most difficult part of running aircrack is that the wifi chipsets of most phones do not support "monitor mode". This mode is required to capture any information from the air, not just the ones for your computer, and is therefore necessary for aircrack (airmon-ng). First of all, you should Google if your phone's wifi chipset supports this mode. If it does, find out how. If it doesn't, you can follow this guide and use a usb wifi stick.
Android is linux, and uses a linux kernel. The easiest way to get the driver for our WiFi adapter to work is to rebuild the android kernel with the driver built-in. We can then flash the new kernel to the phone, and copy the firmware binary. This tutorial uses CyanogenMod, because it is a well documented, open-source ROM. With some adjustments you can use the same method on other ROMs. If you do not have experience building a linux kernel, it is best to stick to this guide and use CyanogenMod.
What you'll need:
- Android phone
- Computer with Ubuntu (or other linux distribution)
- USB OTG Adapter (micro usb to usb female)
- Wireless USB Adapter
- Time and patience
I am using my Samsung Galaxy S4 GT-i9505 and an Eminent EM4454 Wireless USB adapter using the rt73 driver, but I am sure this will work with other devices.
A. Install your ROM and aircrack-ng, on your phone...
1) ...install Cyanogenmod. Don't delete the .zip download after installation.
2) ...install "Complete Linux Installer" from Google Play and download and unpack Ubuntu in /sdcard/ubuntu/ubuntu.img as stated in the app.
3) ...install the aircrack-ng suite in the chrooted ubuntu. On ubuntu 12.04, this cannot be done using apt-get:
sudo apt-get install build-essential libssl-dev nano
wget http://download.aircrack-ng.org/aircrack-ng-1.1.tar.gz
tar -xzvf aircrack-ng-1.1.tar.gz
cd aircrack-ng-1.1
nano common.mak
Then find CFLAGS ?= -g -W -Wall -Werror -O3 and remove -Werror.
make
sudo make install
B. Rebuild the kernel, in a terminal on linux on your computer...
1) ...install adb and fastboot
sudo apt-get install adb fastboot
2) Enable USB-debugging on your phone, connect to your computer and test the connection on linux on your computer:
adb get-state
3) Find the GitHub page for the cyanogenmod kernel for your device. You can find this page on cyanogenmod.org. Now download the kernel source and extract it into a folder.
4) Change working directory into the kernel
cd pathtothekernel
5) See if there is a .config file. In a CyanogenMod kernel, there probably isn't. Type:
nano .config
If you see an empty screen, we need to get your devices current configuration:
adb pull /proc/config.gz config.gz
zcat config.gz > .config
rm config.gz
4) Make the necessary changes in the configuration file to have your USB wireless driver built in. To do so:
make menuconfig
Use the enter key to expand an item in the menu, and the space bar to mark a module. Make sure you mark the necessary modules with a *, not an 'M', so they will be built-in. Most wireless drivers have the mac80211 driver as a dependency. Make sure you select that one with an asterix (*), too.
For example, for my rt73 based adapter, I did:
Networking Support > Wireless > [*] ... (mac80211)
Device Drivers > Network > Wireless LAB > [*] Ralink Drivers > [*] rt73usb
5) Make some changes to fight errors:
Still in menuconfig, make the following changes:
Kernel Hacking > (1024) Block? size > 1032
Now to tell gcc to build ignoring warnings edit the Makefile
nano Makefile
Now go down a few pages and add the line:
KCONFIG_CFLAGS += -w
6) The normal gcc C compiler cannot be used as it will build for your computers processor. We need to build for ARM-processors, called cross-compiling. To make the cross-compiling work you need the arm-eabi- toolchain.
cd ~/Downloads
git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6
The will download the ~120Mb toolchain.
7) Tell the Makefile where the toolchain is
cd pathtothekernel
export PATH=$PATH:~/Downloads/arm-eabi-4.6/bin
export CROSS_COMPILE=arm-eabi-
export ARCH=arm
8) Then build the kernel. It you get errors, don't be scared and Google them. One cause of weird errors is not having enough memory; add a swapfile and try again. The building of the kernel will take quite some time:
make
C. Flash the new kernel to the phone
1) When the build is finished, it has saved "zImage". This image is our kernel. For the sake of simplicity, let's copy it to the desktop but rename it so that later commands won't override it:
cp arch/arm/boot/zImage ~/Desktop/new-zImage
2) For flashing, we need to pack this zImage into a boot.img. Get the boot.img out of the ROM you now run on your phone. For example, the CyangonMod.zip you had to flash to your phone to install it, contains a boot.img. Most flashable .zip files have a boot.img in them. Copy this boot.img to your desktop, too.
3) Extract the boot.img
sudo apt-get install abootimg
abootimg -x boot.img
this will place 3 new files on your desktop.
4) Delete the extracted zImage and boot.img, as we want our self-compiled kernel.
rm zImage
rm boot.img
5) Edit the configuration file and remove the line with kernel-size, as our new kernel's size will be slightly larger.
nano bootimg.cfg
Remove the line beginning with bootsize:, which is probably the first line
5) Use abootimg to repack new-zImage and the 2 extracted files.
abootimg --create boot.img -f bootimg.cfg -k new-zImage -r initrd.img
6) Backup your phone in case anything goes wrong, and flash the boot.img. For many phones, this can be done using fastboot on linux. On my Galaxy, I had to use Mobile Odin: http://forum.xda-developers.com/showthread.php?t=1347899
D. Copy the firmware and run, on your phone...
1) ... start the chrooted ubuntu
2) ... insert your USB OTG and in that the Wireless USB Adapter
3) ... run airmon-ng and make sure your device is listed.
airmon-ng
If not, check that your kernel is flashed (under Settings > About Device > kernel it should say [email protected]) and that the correct drivers were selected with an asterix * (built-in, y) in make menuconfig. If it is listed, continue.
4) We now have the correct driver, but the firmware is likely missing. Download the .bin firmware that belongs to your driver. In my case, I had to download the rt73 driver from aircrack-ng website, and copy the .bin firmware file. Install ES File Manager or another root explorer, choose Root Explorer and then mount /system as Read/Write so that you can edit the contents. Now copy the firmware file to /system/etc/firmware/.
5) Run airmon-ng and check which interface your Wireless USB Adapter is.
airmon-ng
6) Start the monitor mode
airmon-ng start wlan1
Replace wlan1 with the interface name of the Wireless USB Adapter
7) If everything went right, it should say that monitor mode is enabled. You can now use
airodump-ng mon0
replacing mon0 with the monitor interface. If you get the error SIOCFLAGS: No such file or directory, the firmware file (e.g. *.bin) is not placed in the right directory (/system/etc/firmware and maybe a path extension, check the firmware README) or has the wrong name.
Congratulations, you have now got a phone running aircrack-ng!
I got this to work on my stock Samsung TouchWiz ROM by making a few adjustments:
- Get the kernel from Samsung: http://opensource.samsung.com/
- Change the lines in the .config file of the kernel below ## Samsung Rooting ... from =y to =n using nano
- To get boot.img, download the ...tar.md5 firmware matching your current firmware from http://www.sammobile.com/firmware/, rename .tar.md5 to .tar, and extract the boot.img. You cannot use mkbootimg here, only abootimg, as this boot.img has a special ramdisk address!
Thank you helped heaps. had been compiling as modules and couldnt insmod.
s4 i9505 stock rom - aircrack - tp-link tl-wn722n
Jesus, that was awesome. Couldn't find a better tutorial on the net!
Thanks again.
Btw, could you please upload the Galaxy S4 Cyanogen rom with the kernel?
I would appreciate alot.
Hey i have Htc desire C! I did the instal "bcmon.apk" but when I run the program turns out this message "cant run as root,'su' failed... why ??? please help me !
argentux said:
Hey everyone,
It is possible to use an external Wi-Fi adapter with an android phone to run aircrack-ng, however I've had a lot of difficulties doing so. Here is a tutorial to make it easier for you.
The theory
Running the aircrack-ng suite itself is not much of a problem, as android is pretty much like ubuntu. The most difficult part of running aircrack is that the wifi chipsets of most phones do not support "monitor mode". This mode is required to capture any information from the air, not just the ones for your computer, and is therefore necessary for aircrack (airmon-ng). First of all, you should Google if your phone's wifi chipset supports this mode. If it does, find out how. If it doesn't, you can follow this guide and use a usb wifi stick.
Android is linux, and uses a linux kernel. The easiest way to get the driver for our WiFi adapter to work is to rebuild the android kernel with the driver built-in. We can then flash the new kernel to the phone, and copy the firmware binary. This tutorial uses CyanogenMod, because it is a well documented, open-source ROM. With some adjustments you can use the same method on other ROMs. If you do not have experience building a linux kernel, it is best to stick to this guide and use CyanogenMod.
What you'll need:
- Android phone
- Computer with Ubuntu (or other linux distribution)
- USB OTG Adapter (micro usb to usb female)
- Wireless USB Adapter
- Time and patience
I am using my Samsung Galaxy S4 GT-i9505 and an Eminent EM4454 Wireless USB adapter using the rt73 driver, but I am sure this will work with other devices.
A. Install your ROM and aircrack-ng, on your phone...
1) ...install Cyanogenmod. Don't delete the .zip download after installation.
2) ...install "Complete Linux Installer" from Google Play and download and unpack Ubuntu in /sdcard/ubuntu/ubuntu.img as stated in the app.
3) ...install the aircrack-ng suite in the chrooted ubuntu. On ubuntu 12.04, this cannot be done using apt-get:
sudo apt-get install build-essential libssl-dev nano
wget http://download.aircrack-ng.org/aircrack-ng-1.1.tar.gz
tar -xzvf aircrack-ng-1.1.tar.gz
cd aircrack-ng-1.1
nano common.mak
Then find CFLAGS ?= -g -W -Wall -Werror -O3 and remove -Werror.
make
sudo make install
B. Rebuild the kernel, in a terminal on linux on your computer...
1) ...install adb and fastboot
sudo apt-get install adb fastboot
2) Enable USB-debugging on your phone, connect to your computer and test the connection on linux on your computer:
adb get-state
3) Find the GitHub page for the cyanogenmod kernel for your device. You can find this page on cyanogenmod.org. Now download the kernel source and extract it into a folder.
4) Change working directory into the kernel
cd pathtothekernel
5) See if there is a .config file. In a CyanogenMod kernel, there probably isn't. Type:
nano .config
If you see an empty screen, we need to get your devices current configuration:
adb pull /proc/config.gz config.gz
zcat config.gz > .config
rm config.gz
4) Make the necessary changes in the configuration file to have your USB wireless driver built in. To do so:
make menuconfig
Use the enter key to expand an item in the menu, and the space bar to mark a module. Make sure you mark the necessary modules with a *, not an 'M', so they will be built-in. Most wireless drivers have the mac80211 driver as a dependency. Make sure you select that one with an asterix (*), too.
For example, for my rt73 based adapter, I did:
Networking Support > Wireless > [*] ... (mac80211)
Device Drivers > Network > Wireless LAB > [*] Ralink Drivers > [*] rt73usb
5) Make some changes to fight errors:
Still in menuconfig, make the following changes:
Kernel Hacking > (1024) Block? size > 1032
Now to tell gcc to build ignoring warnings edit the Makefile
nano Makefile
Now go down a few pages and add the line:
KCONFIG_CFLAGS += -w
6) The normal gcc C compiler cannot be used as it will build for your computers processor. We need to build for ARM-processors, called cross-compiling. To make the cross-compiling work you need the arm-eabi- toolchain.
cd ~/Downloads
git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6
The will download the ~120Mb toolchain.
7) Tell the Makefile where the toolchain is
cd pathtothekernel
export PATH=$PATH:~/Downloads/arm-eabi-4.6/bin
export CROSS_COMPILE=arm-eabi-
export ARCH=arm
8) Then build the kernel. It you get errors, don't be scared and Google them. One cause of weird errors is not having enough memory; add a swapfile and try again. The building of the kernel will take quite some time:
make
C. Flash the new kernel to the phone
1) When the build is finished, it has saved "zImage". This image is our kernel. For the sake of simplicity, let's copy it to the desktop but rename it so that later commands won't override it:
cp arch/arm/boot/zImage ~/Desktop/new-zImage
2) For flashing, we need to pack this zImage into a boot.img. Get the boot.img out of the ROM you now run on your phone. For example, the CyangonMod.zip you had to flash to your phone to install it, contains a boot.img. Most flashable .zip files have a boot.img in them. Copy this boot.img to your desktop, too.
3) Extract the boot.img
sudo apt-get install abootimg
abootimg -x boot.img
this will place 3 new files on your desktop.
4) Delete the extracted zImage and boot.img, as we want our self-compiled kernel.
rm zImage
rm boot.img
5) Edit the configuration file and remove the line with kernel-size, as our new kernel's size will be slightly larger.
nano bootimg.cfg
Remove the line beginning with bootsize:, which is probably the first line
5) Use abootimg to repack new-zImage and the 2 extracted files.
abootimg --create boot.img -f bootimg.cfg -k new-zImage -r initrd.img
6) Backup your phone in case anything goes wrong, and flash the boot.img. For many phones, this can be done using fastboot on linux. On my Galaxy, I had to use Mobile Odin: http://forum.xda-developers.com/showthread.php?t=1347899
D. Copy the firmware and run, on your phone...
1) ... start the chrooted ubuntu
2) ... insert your USB OTG and in that the Wireless USB Adapter
3) ... run airmon-ng and make sure your device is listed.
airmon-ng
If not, check that your kernel is flashed (under Settings > About Device > kernel it should say [email protected]) and that the correct drivers were selected with an asterix * (built-in, y) in make menuconfig. If it is listed, continue.
4) We now have the correct driver, but the firmware is likely missing. Download the .bin firmware that belongs to your driver. In my case, I had to download the rt73 driver from aircrack-ng website, and copy the .bin firmware file. Install ES File Manager or another root explorer, choose Root Explorer and then mount /system as Read/Write so that you can edit the contents. Now copy the firmware file to /system/etc/firmware/.
5) Run airmon-ng and check which interface your Wireless USB Adapter is.
airmon-ng
6) Start the monitor mode
airmon-ng start wlan1
Replace wlan1 with the interface name of the Wireless USB Adapter
7) If everything went right, it should say that monitor mode is enabled. You can now use
airodump-ng mon0
replacing mon0 with the monitor interface. If you get the error SIOCFLAGS: No such file or directory, the firmware file (e.g. *.bin) is not placed in the right directory (/system/etc/firmware and maybe a path extension, check the firmware README) or has the wrong name.
Congratulations, you have now got a phone running aircrack-ng!
I got this to work on my stock Samsung TouchWiz ROM by making a few adjustments:
- Get the kernel from Samsung: http://opensource.samsung.com/
- Change the lines in the .config file of the kernel below ## Samsung Rooting ... from =y to =n using nano
- To get boot.img, download the ...tar.md5 firmware matching your current firmware from http://www.sammobile.com/firmware/, rename .tar.md5 to .tar, and extract the boot.img. You cannot use mkbootimg here, only abootimg, as this boot.img has a special ramdisk address!
Click to expand...
Click to collapse
Thats insane that it can actually run aircrack, especially considering i had a hard time just running linux on it.
yoshihat said:
Thats insane that it can actually run aircrack, especially considering i had a hard time just running linux on it.
Click to expand...
Click to collapse
How is that so? For me it wasn't complicated at all.
I did everything and got everything ready, up to
Code:
make menuconfig
And it gives me error 2. And then it says something about there not being a variable.
:/
Please help?
I am actually having a time trying to make it work. I did everything right, then I sucessfully build the boot.img, but when I flash it through Mobile Odin as "Kernel" and the Cyanogenmod loads, the screen is all screwed up, like the SystemUI has crashed + interference signal effect, its unusable. Then I restore it through TWRP back to normal.
Do you know what may be the problem? Im using the 10.1.3 JFLTEXX CyanogenMod Build. (For the i9505.)
Edit: Nevermind, was compiling the M build against the Stable one. Obvious error. It works 100% now, thanks!
GruberEXN said:
I am actually having a time trying to make it work. I did everything right, then I sucessfully build the boot.img, but when I flash it through Mobile Odin as "Kernel" and the Cyanogenmod loads, the screen is all screwed up, like the SystemUI has crashed + interference signal effect, its unusable. Then I restore it through TWRP back to normal.
Do you know what may be the problem? Im using the 10.1.3 JFLTEXX CyanogenMod Build. (For the i9505.)
Edit: Nevermind, was compiling the M build against the Stable one. Obvious error. It works 100% now, thanks!
Click to expand...
Click to collapse
Could you please send the edited working kernel with the modules/drivers built in that you installed? (Please, like a link or something?)
androidiphonehacker said:
Could you please send the edited working kernel with the modules/drivers built in that you installed? (Please, like a link or something?)
Click to expand...
Click to collapse
Ok! I built the RTL8187/8187b driver, do you have that one? (Alfa wireless chipsets often use those ones.)
Edited for unknown reasons!
I have a TP-Link TL-wn722n USB wireless adapter. I'm kind of a noob at kernel building, and I'm not sure what driver/module it uses. Soooo... Could you build it for me please please pleaaaase? xD
I have (that USB adapter), and the newest CyanogenMod ROM for model SGS-i9505.
Tell you what: I'll pay you if you build it.
Sent from my GT-I9505 using Tapatalk
androidiphonehacker said:
I have a TP-Link TL-wn722n USB wireless adapter. I'm kind of a noob at kernel building, and I'm not sure what driver/module it uses. Soooo... Could you build it for me please please pleaaaase? xD
I have (that USB adapter), and the newest CyanogenMod ROM for model SGS-i9505.
Tell you what: I'll pay you if you build it.
Sent from my GT-I9505 using Tapatalk
Click to expand...
Click to collapse
Add'd your skype.
Building a kernel requires some troubleshooting, so prepare your device with TWRP or any recovery menu. (A nandroid backup would be nice too.)
And I don't mind a donation, although I don't want a payment. Maybe a cheap game would do the work after one day of troubleshooting your new kernel
Hello everyone....
i have a few little update form my side...
But first, my englisch is not the best, i'm sorry for it ^^
1. The is Important for every one how work at the end with aircrack... Then you need to get to patch the mac80211 data (channel-negative-one-maxim.patch and mac80211.compat08082009.wl_frag+ack_v1.patch from aircrack), otherwise you get at the end a fixed channel -1 problem in aircrack.... of which more later
Here now My litte Upgrade to build a another Kernel because CM10... For this session I use the Kernel form Yank555.lu on JB 4.1.2!
First you need to get the Kernel von GitHub. "github /yank555-lu/SGS3-JB/archive/Update11.zip"
After you extracte the kernel into your Kernel-Folder go in it.
cd ../path/to/kernel
########## 1. You need to edit the Makefile to beware for compile errors. ##########
nano Makefile
Search at the line 571:
-- KBUILD_CFLAGS += -fdiagnostics-show-option -Werror \
++ KBUILD_CFLAGS += -fdiagnostics-show-option \
Search at line 373:
-- -mcpu=cortex-a9 -mfpu=neon -mtune=cortex-a9 -fno-pic \
-- -munaligned-access
++ -mtune=cortex-a9
Now go to line 693:
++ #
++ # Edit by Mastaaa
++ #
++ KCONFIG_CFLAGS += -w
Save the file and Close it....
################ 2. Download and Patch the Wireless Patches. ################
For the negative-channel fix you need to get the Patches.
wget patches.aircrack-ng.org/mac80211.compat08082009.wl_frag+ack_v1.patch &&
wget patches.aircrack-ng.org/channel-negative-one-maxim.patch
Now patch it...
patch ./net/mac80211/tx.c mac80211.compat08082009.wl_frag+ack_v1.patch &&
patch ./net/wireless/chan.c channel-negative-one-maxim.patch
################### 3. make .config and edit menuconfig. ####################
Ceate a Basic .config File with:
make Yank555.lu_v3.x_series_defconfig
Now Edit the Menuconfig:
make menuconfig
Here the Basic edit's (i think) you get to need:
1. Edit the Kernel Info (to what you want...):
General setup --->
(...) Local version - append to kernel release (Hit Enter to edit this...)#
2. Turn On the mac80211 driver:
[*] Networking support ---->
-*- Wireless ---->
< > Generic IEEE 802.11 Networking Stack (Mark to <*>)
[ ] Enable mac80211 mesh networking (pre-802.11s) support (Mark to [ * ]
3, Mark the additional usb drivers:
Device Drivers ---->
.....[*] Network device support ---->
..........[*] Wireless LAN ---->
...............(Mark <m> or <*> waht you need.... Here a few examples
...............<*> Atmel at76c503/at76c505/at76c505a USB cards
...............<*> Realtek 8187 and 8187B USB support
...............<*> Atheros Wireless Cards ----->
...............<*> Ralink driver support ----->
....................<*> Ralink rt2500 (USB) support
....................<*> Ralink rt2501/rt73 (USB) support
....................<*> Ralink rt27xx/rt28xx/rt30xx (USB) support
....................[ * ] rt2800usb - Include support for rt33xx devices
....................[ * ] rt2800usb - Include support for rt35xx devices (EXPERIMENTAL)
....................[ * ] rt2800usb - Include support for rt53xx devices (EXPERIMENTAL)
....................[ * ] rt2800usb - Include support for unknown (USB) devices
4. Mark the OTG support on !:
Device Drivers ---->
.....[*] USB support ---->
..........[ ] OTG support ............................................................(Mark it to [*])
..........< > Enable Wireless USB extensions (EXPERIMENTAL) ..(Makr it to <*>)
5. Make Kernel hacking:
Kernel hacking ---->
.....(1024) Warn for stack frames larger than (needs gcc 4.4) (Edit this to 1032)
######################### 4. compile the Kernel. ###########################
make ARCH=arm CROSS_COMPILE=$CCOMPILER -j6
(with make -i ... you can ignor errors, but i think thats not good ^^)
########################## 5. make ramdisk.gz. ###########################
mkdir ramdisk-new
cp -ax ramdisk ./ramdisk-new
#clear git repositories in ramfs
find ramdisk-new -name .git -exec rm -rf {} \;
#remove empty directory placeholders
find ramdisk-new -name EMPTY_DIRECTORY -exec rm -rf {} \;
rm -rf ramdisk-new/tmp/*
#remove mercurial repository
rm -rf ramdisk-new/.hg
#copy modules into ramfs
mkdir -p ramdisk-new/lib/modules
find -name '*.ko' -exec cp -av {} ramdisk-new/lib/modules/
#make ramdisk.gz
mkbootfs ./ramdisk-new | gzip > ramdisk.gz
########################### 6. make boot.img. ############################
./mkbootimg --kernel arch/arm/boot/zImage --ramdisk ramdisk.gz --board smdk4x12 --base 0x10000000 --pagesize 2048 --ramdiskaddr 0x11000000 -o boot.img
################ 7. make modules.tgz for your chroot Linux. ###################
tar -czf modules.tgz `find . | grep ko$`
(... This modules.tgz you have to copy to sdcard0,
then go into chrootet (after you have flashed the new Kernel!) Linux and make: )
cd /lib/modules
mkdir `uname -r`
cd *
tar -zxf /sdcard0/modules.tgz
depmod -a
now turn the usb-wlan on S3 and make:
modprobe <your-driver>
example:
modprobe rt73usb
Now your Wifi-USB must be Online...
Soooo that was it from my self...
(For any Questions, you have. I'm on my Position...
Bye bye,
Master X
Please help me I have got HTC one mini on stock . Is it possible...?
Yes i think so...
In the theory at android 2.3 its possible to compile it with rt73usb extentials...
I'll do the kernel for i9500, but I'm afraid to damage the phone the wrong make.
If one makes the kernel for i9500 you Could you share?
yes, I did. and running rlt8187 alfa wifi on ubuntu.but wps not work. Everything other than these problems well
Probably, to add to another something and there are ( in kernel)
GT-I9500 cihazımdan Tapatalk kullanılarak gönderildi
LG G2 802 International Version
Can someone create a Kernel for This Device? Please?
With RTL 8187 Support
Would pay for it.
I added usb adapter device support to kernel successfully but then my wifi stopped working here is the dmesg of turning wifi on
Code:
<4>[ 2273.866333] wlan: disagrees about version of symbol cfg80211_ready_on_channel
<4>[ 2273.866455] wlan: Unknown symbol cfg80211_ready_on_channel (err -22)
<4>[ 2273.866729] wlan: disagrees about version of symbol __ieee80211_get_channel
<4>[ 2273.866821] wlan: Unknown symbol __ieee80211_get_channel (err -22)
<4>[ 2273.867065] wlan: disagrees about version of symbol cfg80211_cqm_rssi_notify
<4>[ 2273.867187] wlan: Unknown symbol cfg80211_cqm_rssi_notify (err -22)
<4>[ 2273.867370] wlan: disagrees about version of symbol cfg80211_roamed
<4>[ 2273.867523] wlan: Unknown symbol cfg80211_roamed (err -22)
<4>[ 2273.867614] wlan: disagrees about version of symbol cfg80211_pmksa_candidate_notify
<4>[ 2273.867736] wlan: Unknown symbol cfg80211_pmksa_candidate_notify (err -22)
<4>[ 2273.867858] wlan: disagrees about version of symbol wiphy_register
<4>[ 2273.868011] wlan: Unknown symbol wiphy_register (err -22)
<4>[ 2273.868133] wlan: disagrees about version of symbol cfg80211_disconnected
<4>[ 2273.868286] wlan: Unknown symbol cfg80211_disconnected (err -22)
<4>[ 2273.868499] wlan: disagrees about version of symbol cfg80211_new_sta
<4>[ 2273.868591] wlan: Unknown symbol cfg80211_new_sta (err -22)
<4>[ 2273.868774] wlan: disagrees about version of symbol cfg80211_tdls_oper_request
<4>[ 2273.868865] wlan: Unknown symbol cfg80211_tdls_oper_request (err -22)
<4>[ 2273.869018] wlan: disagrees about version of symbol cfg80211_connect_result
<4>[ 2273.869171] wlan: Unknown symbol cfg80211_connect_result (err -22)
<4>[ 2273.869262] wlan: disagrees about version of symbol cfg80211_inform_bss_frame
<4>[ 2273.869415] wlan: Unknown symbol cfg80211_inform_bss_frame (err -22)
<4>[ 2273.869506] wlan: disagrees about version of symbol wiphy_new
<4>[ 2273.869659] wlan: Unknown symbol wiphy_new (err -22)
<4>[ 2273.869781] wlan: disagrees about version of symbol cfg80211_rx_mgmt
<4>[ 2273.869903] wlan: Unknown symbol cfg80211_rx_mgmt (err -22)
<4>[ 2273.870117] wlan: disagrees about version of symbol cfg80211_send_unprot_deauth
<4>[ 2273.870239] wlan: Unknown symbol cfg80211_send_unprot_deauth (err -22)
<4>[ 2273.870361] wlan: disagrees about version of symbol cfg80211_mgmt_tx_status
<4>[ 2273.870513] wlan: Unknown symbol cfg80211_mgmt_tx_status (err -22)
<4>[ 2273.870727] wlan: disagrees about version of symbol cfg80211_inform_bss
<4>[ 2273.870819] wlan: Unknown symbol cfg80211_inform_bss (err -22)
<4>[ 2273.871002] wlan: disagrees about version of symbol wireless_send_event
<4>[ 2273.871093] wlan: Unknown symbol wireless_send_event (err -22)
<4>[ 2273.871246] wlan: disagrees about version of symbol wiphy_free
<4>[ 2273.871337] wlan: Unknown symbol wiphy_free (err -22)
<4>[ 2273.871520] wlan: disagrees about version of symbol cfg80211_scan_done
<4>[ 2273.871612] wlan: Unknown symbol cfg80211_scan_done (err -22)
<4>[ 2273.871795] wlan: disagrees about version of symbol regulatory_hint
<4>[ 2273.871856] wlan: Unknown symbol regulatory_hint (err -22)
<4>[ 2273.872039] wlan: disagrees about version of symbol cfg80211_get_bss
<4>[ 2273.872100] wlan: Unknown symbol cfg80211_get_bss (err -22)
<4>[ 2273.872283] wlan: disagrees about version of symbol cfg80211_michael_mic_failure
<4>[ 2273.872436] wlan: Unknown symbol cfg80211_michael_mic_failure (err -22)
<4>[ 2273.872528] wlan: disagrees about version of symbol cfg80211_ibss_joined
<4>[ 2273.872680] wlan: Unknown symbol cfg80211_ibss_joined (err -22)
<4>[ 2273.872833] wlan: disagrees about version of symbol cfg80211_del_sta
<4>[ 2273.872985] wlan: Unknown symbol cfg80211_del_sta (err -22)
<4>[ 2273.880584] wlan: disagrees about version of symbol cfg80211_remain_on_channel_expired
<4>[ 2273.880737] wlan: Unknown symbol cfg80211_remain_on_channel_expired (err -22)
<4>[ 2273.880889] wlan: disagrees about version of symbol wiphy_unregister
<4>[ 2273.880950] wlan: Unknown symbol wiphy_unregister (err -22)
<6>[ 2277.103332] SLIM_CL: skip reconfig sequence
<6>[ 2336.262878] SLIM_CL: skip reconfig sequence
<6>[ 2341.206115] SLIM_CL: skip reconfig sequence
<3>[ 2372.867187] init: untracked pid 7791 exited
<6>[ 2375.211242] SLIM_CL: skip reconfig sequence
<6>[ 2378.713043] SLIM_CL: skip reconfig sequence
<6>[ 2385.924896] check_recover_vbus_collapse: VBUS input current still limiting to 700 mA. Retry set
<6>[ 2397.413330] SLIM_CL: skip reconfig sequence
<4>[ 2464.730682] set_usb_max_current: setting current max to 1500
<4>[ 2544.752166] set_usb_max_current: setting current max to 1500
<4>[ 2604.769744] set_usb_max_current: setting current max to 1500
<4>[ 2674.810363] set_usb_max_current: setting current max to 1500
<6>[ 2686.035491] SLIM_CL: skip reconfig sequence
<3>[ 2690.290008] qup_i2c qup_i2c.0: QUP: I2C status flags :0x1300c8, irq:226
<3>[ 2690.290191] qup_i2c qup_i2c.0: I2C slave addr:0x28 not connected
<3>[ 2690.300445] pn544 0-0028: pn544_dev_write: i2c write err -107, but retry 1
<3>[ 2691.778778] qup_i2c qup_i2c.0: QUP: I2C status flags :0x1343c8, irq:226
<3>[ 2691.778961] qup_i2c qup_i2c.0: I2C slave addr:0x28 not connected
<3>[ 2691.789093] pn544 0-0028: pn544_dev_write: i2c write err -107, but retry 1
<6>[ 2694.949035] SLIM_CL: skip reconfig sequence
<4>[ 2714.834625] set_usb_max_current: setting current max to 1500
<6>[ 2715.883575] SLIM_CL: skip reconfig sequence
<6>[ 2843.803405] SLIM_CL: skip reconfig sequence
<6>[ 2854.273345] SLIM_CL: skip reconfig sequence
<6>[ 2955.025512] msm_otg msm_otg: USB exited from low power mode
<6>[ 2955.026306] msm_otg msm_otg: b_idle work, inputs=0x00000001
<6>[ 2955.026580] msm_otg msm_otg: Avail curr from USB = 0
<6>[ 2955.026885] msm_otg msm_otg: phy_reset: success
<6>[ 2955.136352] msm_otg msm_otg: USB in low power mode
<6>[ 2969.677581] msm_otg msm_otg: USB exited from low power mode
<6>[ 2969.678131] msm_otg msm_otg: b_idle work, inputs=0x00000003
<6>[ 2969.853424] msm_otg msm_otg: chg_type = USB_SDP_CHARGER
<6>[ 2969.853576] msm_otg msm_otg: b_idle work, inputs=0x00000003
<6>[ 2969.859283] msm_hsusb msm_hsusb: vbus online
<6>[ 2969.859436] msm_hsusb msm_hsusb: CI13XXX_CONTROLLER_RESET_EVENT received
<6>[ 2969.859558] msm_otg msm_otg: changed to b_peripheral, from b_idle
<6>[ 2970.140228] msm_hsusb msm_hsusb: reset
<6>[ 2970.140686] android_work: android_work: did not send uevent (0 0 (null))
<6>[ 2970.178863] android_work: android_work: sent uevent USB_STATE=CONNECTED
<6>[ 2970.182403] msm_hsusb msm_hsusb: reset
<6>[ 2970.182891] android_work: android_work: sent uevent USB_STATE=DISCONNECTED
<6>[ 2970.261993] android_work: android_work: sent uevent USB_STATE=CONNECTED
<6>[ 2971.677764] android_usb gadget: high-speed config #1: android_usb
<6>[ 2971.677917] msm_otg msm_otg: Avail curr from USB = 500
<6>[ 2971.733306] android_work: android_work: sent uevent USB_STATE=CONFIGURED
<6>[ 2971.880920] mtp_open
<6>[ 2974.863128] msm_ta_detect_work: USB exit ta detection - frindex
<3>[ 3000.568115] init: untracked pid 8878 exited
<3>[ 3003.624877] init: untracked pid 8948 exited
<6>[ 3005.894012] SLIM_CL: skip reconfig sequence
I think problem occurs when I enable "cfg80211 wireless extensions compatibility" but unless enabling it i cannot see the wifi adapter in airmon-ng
if CONFIG_CFG80211_WEXT=y = inner WLAN wont work
if CONFIG_CFG80211_WEXT=n = usb wifi adapter wont work with aircrack, reaver
getprop
[wifi.interface]: [wlan0]
[wlan.driver.ath]: [0]
[wlan.driver.config]: [/data/misc/wifi/WCNSS_qcom_cfg.ini]
[wlan.driver.status]: [unloaded]
logcat:
I/WifiManager(16050): Process ndroid.settings enabled Wifi
D/WifiService( 779): setWifiEnabled: true pid=16050, uid=1000
E/WifiStateMachine( 779): Failed to load driver!
E/WifiStateMachine( 779): DriverFailedState
here are documentations about it but they are too complex for me :
https://community.freescale.com/docs/DOC-93603
http://blog.linuxconsulting.ro/2010/04/porting-wifi-drivers-to-android.html
as fas as I understand from what I read I should recompile wlan.ko after building new kernel but i dont know how
can't find any help

Hack: ACCENT A450 & Driver & ADB

Today I just bought a A450 Android Smartphone ACCENT because I want to work with on a project.
Why ACCENT A450:
ACCENT is a Moroccan brand
ACCENT is sponsoring the event SFD Casablanca
ACCENT A450: not a bad configuration
So the first thing I should do is to connect the smartphone and have access via ADB, but I have not found a driver for it either in the official website or in the web is why I created a Windows via Linux.
Download 51-android.rules Linux ACCENT A450
Download Windows driver for ACCENT A450
Steps with which I have created this driver:
I- Linux:
1- Before connecting our Smartphone:
Code:
@ ws ws-Pro: ~ $ lsusb
Bus 002 Device 003: ID 1bcf: 2805 Sunplus Innovation Technology Inc.
Bus 002 Device 002: ID 8087: 0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b: 0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b: 0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b: 0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 138a: 003C Validity Sensors, Inc. VFS471 Fingerprint Reader
Bus 001 Device 002: ID 8087: 0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b: 0002 Linux Foundation 2.0 root hub
2-I connected my Smartphone:
Code:
@ ws ws-Pro: ~ $ lsusb
Bus 002 Device 003: ID 1bcf: 2805 Sunplus Innovation Technology Inc.
Bus 002 Device 005: ID 24e3: 9025
Bus 002 Device 002: ID 8087: 0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b: 0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b: 0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b: 0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 138a: 003C Validity Sensors, Inc. VFS471 Fingerprint Reader
Bus 001 Device 002: ID 8087: 0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b: 0002 Linux Foundation 2.0 root hub
NB:
Bus 002 Device 005: ID 24e3: 9025
This is our "idVendor = 24e3" and "idProduct = 9025"
3- I created with a 51-right root file android.rules
Code:
@ ws ws-Pro: ~ $ sudo gedit -w /etc/udev/rules.d/51-android.rules
4- I added this line; that contains our idVendor:
Code:
SUBSYSTEM == "usb", ATTR {idVendor} == "24e3", MODE = "0666", GROUP = "plugdev"
5- I restarted the service:
Code:
sudo restart udev Service
6- I unplugged and then plugged in again (my Smartphone):
Code:
@ ws ws-Pro: ~ $ adb devices
* Daemon not running. starting it now on 5037 port *
* Daemon started successfully *
List of devices attached
8888888 offline
7- A message appears on our smartphone, we have to accept and voila:
Code:
@ ws ws-Pro: ~ $ adb devices
List of devices attached
8888888 device
II- Windows:
1- I downloaded USB_Driver Google:
See: http://developer.android.com/sdk/win-usb.html
2- Then I added our idVendor and idProduct:
Code:
;Accent A450
%SingleAdbInterface% = USB_Install, USB\VID_24e3&PID_9025
%CompositeAdbInterface% = USB_Install, USB\VID_24e3&PID_9025&MI_01
3- To install is easy:
Download the file and then manually install (video demonstration of a manual installation: https://www.youtube.com/watch?v=6IEdJZGQVI4 )
Enjoy
s2dar said:
...
Click to expand...
Click to collapse
Good tutorial but it doesn't work!
A friend of mine own an Accent A500 which lacks drivers.
He wants me to root it for him. We tried your method but Windows failed installing drivers.
Nonta72 said:
Good tutorial but it doesn't work!
A friend of mine own an Accent A500 which lacks drivers.
He wants me to root it for him. We tried your method but Windows failed installing drivers.
Click to expand...
Click to collapse
I think it should work if you make small changes because it is not the same device see Technical Specifications.
A question:
When you connect your A500 Focus on Ubuntu and you run the command "lsusb" What is new line as you see
s2dar said:
I think it should work if you make small changes because it is not the same device see Technical Specifications.
A question:
When you connect your A500 Focus on Ubuntu and you run the command "lsusb" What is new line as you see
Click to expand...
Click to collapse
I'm not on Ubuntu atm.
But lemme try it there.
Here's the screenshot.
Anyways, I got it rooted using Kingo Root App but I'd still love getting the drivers working.
Nonta72 said:
Here's the screenshot.
Anyways, I got it rooted using Kingo Root App but I'd still love getting the drivers working.
Click to expand...
Click to collapse
can you try that ?
Linux:
$ sudo gedit -w /etc/udev/rules.d/51-android.rules
Code:
SUBSYSTEM == "usb", ATTR {idVendor} == "0a5c", MODE = "0666", GROUP = "plugdev"
$ sudo restart udev Service
$ adb devices
Windows :
Download Driver A500 Windows
s2dar said:
can you try that ?
Linux:
$ sudo gedit -w /etc/udev/rules.d/51-android.rules
Code:
SUBSYSTEM == "usb", ATTR {idVendor} == "0a5c", MODE = "0666", GROUP = "plugdev"
$ sudo restart udev Service
$ adb devices
Windows :
Download Driver A500 Windows
Click to expand...
Click to collapse
Thanks,
But error is still persistant on Windows LOL

USb tethering lags - fix enhancement

Hi everyone!
Sorry for the long post, but I wanted to be clear
I've just read a recent post concerning USB tethering lags under windows 8.1:
http://forum.xda-developers.com/android/general/fix-usb-tethering-lags-freezes-windows-t3039183
All in all, to fix the issue, I have to force the installation of another driver (which is called "Remote NDIS Compatible Device") instead of the windows stock one (called "Remote NDIS based Internet Sharing Device"). After the operation, the lags disappeared.
Now, what i would like to do is modify the usb device descriptor given by android when tethering is activated to tell windows to directly install the right driver. According to the inf file of "Remote NDIS Compatible Device", named rndiscmp.inf, any usb hardware with the following spec will trigger the driver install:
DeviceClass=EF
DeviceSubClass=04
DeviceProtocol=01
Now there is an rc file in / called init.qcom.usb.rc on my device telling what parameters to give to the usb when usb tethering is enabled. The interesting part is here:
Code:
on property:sys.usb.config=rndis
write /sys/class/android_usb/android0/enable 0
write /sys/class/android_usb/android0/idVendor 05C6
write /sys/class/android_usb/android0/idProduct 676A
write /sys/class/android_usb/android0/functions rndis
write /sys/class/android_usb/android0/enable 1
setprop sys.usb.state ${sys.usb.config}
So I went to /sys/class/android_usb/android0/ and it seems this is the place where the usb device descriptor is set. There are 3 interesting files:
bDeviceClass
bDeviceSubClass
bDeviceProtocol
So to make the modification, I added in the rc file before the "enable 1":
Code:
write /sys/class/android_usb/android0/idProduct 676E
write /sys/class/android_usb/android0/bDeviceClass EF
write /sys/class/android_usb/android0/bDeviceSubClass 04
write /sys/class/android_usb/android0/bDeviceProtocol 01
(I changed the idProduct to see if it would change in windows when I would plug the device).
I rebuilt the boot.img with these modifications (since / is a ramdisk and the rc file is extracted from the boot image at each startup), flashed it to my phone (with fastboot flash boot boot.img) and hoped that when enabling the usb tether option, I would see the new idProduct and the new class, subclass and protocol of the device, and with the right driver!
When plugging it on windows, and enabling usb tethering, the idProduct changed as expected, but the class, subclass and protocol were the same than before (FYI: E0,01,03), therefore triggering the bad driver install (whose inf is named WceISVista.inf by the way). I went to /sys/class/android_usb/android0/ and checked each three files I asked to be modified:
cat bDeviceClass : 0
cat bDeviceSubClass : 4
cat bDeviceProtocol : 1
Why would the bDeviceClass be set back to 0?
I feel I'm so close, would you guys have any ideas? Thank you!

Ubuntu Touch Porting: Motorola Moto E 2015 4G/LTE

ATTENTION:
Code:
/*
* Your warranty is now void.
*
* I am not responsible for bricked devices, dead SD cards, the expulsion of some contestant at the Spanish version of Got Talent,
* thermonuclear war, or you getting fired because the alarm app failed. Please
* do some research if you have any concerns about features included in this ROM
* before flashing it! YOU are choosing to make these modifications, and if
* you point the finger at me for messing up your device, I will laugh at you.
*/
THIS WILL WIPE ENTIRELY YOUR DEVICE. YOU WILL NEED TO CHANGE THE FILE SYSTEM OF /DATA TO EXT4 FROM F2FS IN TWRP BEFORE ANYTHING ELSE. AND, IT IS A MUST REQUIREMENT DOING A NANDROID OF YOUR CURRENT ROM WITH TWRP: TWRP Home >> Wipe >> Advanced Wipe >> tick data >> Repair or Change File System >> Change File System >> EXT4 >> Swipe to change.
UPDATE 22/07/2021: It has been discovered that some American surnia units (with model code XT1526 and XT1527, sold on Sprint and AT&T carriers) have different partition table than the European or Global versions (XT1521 and XT 1524). Sprint and AT&T surnia models are NOT COMPATIBLE with UBPorts, and trying to do this steps will cause a bootloop (easily fixable with a reflashing of LineageOS/stock ROM).
Hello. I'm a developer from Spain and I'm doing a porting work on my Moto E 2015 in Halium and Ubuntu Touch, and I'm looking for testers with surnia (CAUTION: ONLY surnia is allowed in this, NOT otus, sorry for this, I don't have otus) for testing this compilated version of Halium and Ubuntu Touch, because I'm having trouble with the port (rootfs not flashing on /data properly). I have some instructions to test this, and files to download and test on a real device.
-INSTRUCTIONS (only with Ubuntu Linux):
1-Download halium-boot (https://mega.nz/file/6TRRgAAa#YjtJ35nXxIMS_tVyaURRHuJfvjx3mxLFY1H6WWzD_Z4). Boot in Recovery Mode and flash with:
Code:
fastboot flash boot /path-to the image of halium-boot/halium-boot.img
2-Download system.img and halium-install.zip
https://mega.nz/file/GXBVAQyA#w68fYNKZ3He4Zg69QC9bkvQI8702ZAho4M4TVmKdfxg
https://github.com/JBBgameich/halium-install/archive/master.zip
Uncompress halium-install.zip and get into the folder via Terminal.
3-Download the latest rootfs from UBPorts:
https://ci.ubports.com/job/xenial-r.../out/ubports-touch.rootfs-xenial-armhf.tar.gz
4-Boot into TWRP recovery (or your recovery with BusyBox) and run this command (in the folder halium-install):
Code:
halium-install.sh -p ut -v path/to/rootfs.tar.gz path/to/system.img
Put a password that you can remember when prompted.
Wait, and it should flash all succesfully, if all goes well. I do not guarantee the success in this (my device has a problem with /data partition), so I need all the feedback possible in this (Terminal logs, for example, would be useful to me).
5-Reboot. Now, it should be the phone on Bootloader screen, but if you text in a terminal
Code:
ssh [email protected]
It should ask for a password and load the rootfs successfully.
After that, with this settings:
Code:
sudo mount -o remount,rw /
and
Code:
sudo -i # And enter your password
cat /var/lib/lxc/android/rootfs/ueventd*.rc|grep ^/dev|sed -e 's/^/dev///'|awk '{printf "ACTION=="add", KERNEL=="%s", OWNER="%s", GROUP="%s", MODE="%s"n",$1,$3,$4,$2}' | sed -e 's/r//' >/usr/lib/lxc-android-config/70-[codename].rules
and, finally, rebooting the phone, it should boot Ubuntu Touch. The lock password is the same than the password you made before in the install.
I need feedback to do this well. Any comments on this will be welcomed.
Logo of the project licensed by UBPorts by Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) License.
XDA:DevDB Information
Ubuntu Touch Porting: Motorola Moto E 2015 4G/LTE, ROM for the Moto E 2015
Contributors
impreza233, bartbart2003
Source Code: https://github.com/Halium/projectmanagement/issues/97
ROM OS Version: 7.x Nougat
ROM Kernel: Linux 3.10.x
ROM Firmware Required: Unlocked bootloader, latest TWRP or custom recovery with BusyBox installed
Version Information
Status: Alpha
Created 2018-09-29
Last Updated 2020-09-20
Great job!
Buen trabajo! Quizás lo testee más tarde, cuando esté seguro de que no necesitaré el celular para algo importante jajajaj.
~~
For English readers:
Great job! I may test it later, when I'm sure I won't be needing the phone for something important haha.
impreza233 said:
4-Boot into TWRP recovery (or your recovery with BusyBox) and run this command (in the folder halium-install):
Code:
halium-install-standalone.sh -p ut -v path/to/rootfs.tar.gz path/to/system.img
Click to expand...
Click to collapse
The file halium-install-standalone.sh is not existant. Tried using halium-install and /utils/standalone.sh, but both are giving me a "Permission denied" dialog. SU not found, using Squid's TWRP.
SonicoXD said:
The file halium-install-standalone.sh is not existant. Tried using halium-install and /utils/standalone.sh, but both are giving me a "Permission denied" dialog. SU not found, using Squid's TWRP.
Click to expand...
Click to collapse
Yes, it's a little fail on my install tutorial. The file is named halium-install.sh. utils/standalone.sh won't do nothing. I will fix this error in the tutorial. Thanks for the tip!!!
Otherwise, what version of Squid's TWRP do you use? I use the latest version from here: https://eu.dl.twrp.me/surnia/ and no problems on my side. I will investigate this too.
EDIT: fixed error on the install tutorial.
sh:halium-install.sh not found (twrp 3.2.3)
Android-fan117 said:
sh:halium-install.sh not found (twrp 3.2.3)
Click to expand...
Click to collapse
If you are inside the folder of halium-install.sh, when you have to type the command halium-install.sh, drag and drop the .sh file to the terminal, in this way:
path/to/halium-install.sh -p ut -v path/to/rootfs.tar.gz path/to/system.img
EDIT: fixed on the main tutorial.
ok... all flashed just fine,but ssh [email protected] gives Connection timed out (new network connection appears,when phone boots).I just can`t connect.
Android-fan117 said:
ok... all flashed just fine,but ssh [email protected] gives Connection timed out (new network connection appears,when phone boots).I just can`t connect.
Click to expand...
Click to collapse
Well, this is a good signal
What do you get if you do this command?:
Code:
ssh -vvvv [email protected]
I need to know that messages to debug this.
impreza233 said:
Well, this is a good signal
What do you get if you do this command?:
Code:
ssh -vvvv [email protected]
I need to know that messages to debug this.
Click to expand...
Click to collapse
I get this:
openSSH_7.2p2 Ubuntu-4ubuntu2.4, OpenSSL 1.0.2g 1 Mar 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: resolving "10.15.19.82" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to 10.15.19.82 [10.15.19.82] port 22.
debug1: connect to address 10.15.19.82 port 22: Connection timed out
ssh: connect to host 10.15.19.82 port 22: Connection timed out
(But new network connection appears)
ALSO I saw some errors while installing:
I: Pushing rootfs and android image to /data via ADB
5528 KB/s (2147483648 bytes in 379.315s)
5243 KB/s (1895825408 bytes in 353.069s)
Installing udev rules
cannot stat './file/70-tenshi.rules': No such file or directory
cannot stat './file/70-tenshi.rules': No such file or directory
cannot stat './file/70-tenshi.rules': No such file or directory
Android-fan117 said:
I get this:
openSSH_7.2p2 Ubuntu-4ubuntu2.4, OpenSSL 1.0.2g 1 Mar 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: resolving "10.15.19.82" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to 10.15.19.82 [10.15.19.82] port 22.
debug1: connect to address 10.15.19.82 port 22: Connection timed out
ssh: connect to host 10.15.19.82 port 22: Connection timed out
(But new network connection appears)
ALSO I saw some errors while installing:
I: Pushing rootfs and android image to /data via ADB
5528 KB/s (2147483648 bytes in 379.315s)
5243 KB/s (1895825408 bytes in 353.069s)
Installing udev rules
cannot stat './file/70-tenshi.rules': No such file or directory
cannot stat './file/70-tenshi.rules': No such file or directory
cannot stat './file/70-tenshi.rules': No such file or directory
Click to expand...
Click to collapse
Well, it means that the flashing of rootfs has been sucessful. Yipeee!!!! Well, the tenshi thing will be removed in future versions of the script. It was here only for debugging purposes.
For the ssh thing, I will provide a patch for that. Thanks again for your feedback!!!
impreza233 said:
Well, it means that the flashing of rootfs has been sucessful. Yipeee!!!! Well, the tenshi thing will be removed in future versions of the script. It was here only for debugging purposes.
For the ssh thing, I will provide a patch for that. Thanks again for your feedback!!!
Click to expand...
Click to collapse
Ok. Just let me know,when all be done. I'll test it again.
Android-fan117 said:
Ok. Just let me know,when all be done. I'll test it again.
Click to expand...
Click to collapse
Thanks for being the test case!
Android-fan117 said:
Ok. Just let me know,when all be done. I'll test it again.
Click to expand...
Click to collapse
Well, I have news. When you finish the halium-install process unpack and run the file attached to this message and remember to run the command to cancel previous connection with 10.15.19.82 in case of your ssh needs to. At that point it should be a connection to ssh.
impreza233 said:
Well, I have news. When you finish the halium-install process unpack and run the file attached to this message and remember to run the command to cancel previous connection with 10.15.19.82 in case of your ssh needs to. At that point it should be a connection to ssh.
Click to expand...
Click to collapse
get this(when run ssh_connection.sh):
* The device seems to be connected as enp0s20u7
RTNETLINK answers: File exists
RTNETLINK answers: File exists
PING 10.15.19.82 (10.15.19.82) 56(84) bytes of data.
From 192.168.2.89 icmp_seq=1 Destination Host Unreachable
From 192.168.2.89 icmp_seq=2 Destination Host Unreachable
From 192.168.2.89 icmp_seq=3 Destination Host Unreachable
--- 10.15.19.82 ping statistics ---
3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2038ms
pipe 3
* Connecting using ssh
OpenSSH_7.2p2 Ubuntu-4ubuntu2.5, OpenSSL 1.0.2g 1 Mar 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 10.15.19.82 [10.15.19.82] port 22.
debug1: connect to address 10.15.19.82 port 22: No route to host
ssh: connect to host 10.15.19.82 port 22: No route to host
Android-fan117 said:
get this(when run ssh_connection.sh):
* The device seems to be connected as enp0s20u7
PING 10.15.19.82 (10.15.19.82) 56(84) bytes of data.
From 192.168.2.63 icmp_seq=1 Destination Host Unreachable
From 192.168.2.63 icmp_seq=2 Destination Host Unreachable
From 192.168.2.63 icmp_seq=3 Destination Host Unreachable
--- 10.15.19.82 ping statistics ---
3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2052ms
pipe 3
* Connecting using ssh
OpenSSH_7.2p2 Ubuntu-4ubuntu2.5, OpenSSL 1.0.2g 1 Mar 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 10.15.19.82 [10.15.19.82] port 22.
debug1: connect to address 10.15.19.82 port 22: No route to host
ssh: connect to host 10.15.19.82 port 22: No route to host
Click to expand...
Click to collapse
Don't worry. I will continue tuning it for best results. My result is the same as you.
impreza233 said:
Don't worry. I will continue tuning it for best results. My result is the same as you.
Click to expand...
Click to collapse
Ok.I`ll be waiting for this.
Android-fan117 said:
Ok.I`ll be waiting for this.
Click to expand...
Click to collapse
I'm thinking about the fact that the system would not be properly booted when the phone is switched on. Could you do a dmesg -w when the phone is switched on and shows a network on your computer?
impreza233 said:
I'm thinking about the fact that the system would not be properly booted when the phone is switched on. Could you do a dmesg -w when the phone is switched on and shows a network on your computer?
Click to expand...
Click to collapse
I`ll do it right now
---------- Post added at 04:20 PM ---------- Previous post was at 04:04 PM ----------
impreza233 said:
I'm thinking about the fact that the system would not be properly booted when the phone is switched on. Could you do a dmesg -w when the phone is switched on and shows a network on your computer?
Click to expand...
Click to collapse
ok...I found this
[ 1373.515554] usb 3-7: New USB device found, idVendor=18d1, idProduct=d001
[ 1373.515560] usb 3-7: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1373.515564] usb 3-7: Product: Failed to boot
[ 1373.515568] usb 3-7: Manufacturer: Halium initrd
[ 1373.515571] usb 3-7: SerialNumber: halium-initrd telnet 192.168.2.15
Android-fan117 said:
I`ll do it right now
---------- Post added at 04:20 PM ---------- Previous post was at 04:04 PM ----------
ok...I found this
[ 1373.515554] usb 3-7: New USB device found, idVendor=18d1, idProduct=d001
[ 1373.515560] usb 3-7: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1373.515564] usb 3-7: Product: Failed to boot
[ 1373.515568] usb 3-7: Manufacturer: Halium initrd
[ 1373.515571] usb 3-7: SerialNumber: halium-initrd telnet 192.168.2.15
Click to expand...
Click to collapse
Just as I suspected. Halium fails to boot. I will continue investigating this. Thanks!!!

Categories

Resources