This tool help to you generate latest offline down links for Android SDK. This is helpful when you don’t have internet access or speed is low.
You can use your favorite download tool to download them. Then put these downloaded files into sdk/temp folder and open Android SDK Manager. Click the items in Android SDK Manager, it will read from your downloaded cache.
If your can’t get the Android SDK Manager items or if they are not update, or the download speed is slow, please try to use the proxy listed here
git clone https://github.com/derekhe/android-sdk-offline.git
npm install -g http-server
//You may need to set proxy if your network is blocked
npm run generate
npm run serve
I brought a WaveShare 7-inch HDMI LCD and it provides a USB touchscreen. But the company only provide binary driver and images, which is quite bad. Installing binary driver will break self compiled kernel, and you can’t get updated kernels. I asked the company to provide the source code but they refused. They said they won’t provide any source code because other companies can copy very fast so that their products can’t sell out at good price.
OK. If they company won’t want to provide anything, that’s fine. I finally find out we can still drive the touchscreen by writing a user space driver.
Tested using official image: 2015-05-05-raspbian-wheezy.img
ssh into your raspiberry
clone this repo into any dir,then
chmod +x install.sh
How do I hack it
By looking at the dmesg information, we can see it is installed as a hid-generic driver, the vendor is 0x0eef(eGalaxy) and product is 0x0005. 0x0005 can’t be found anywhere, I think the company wrote their own driver to support this.
[ 3.518144] usb 1-1.5: new full-speed USB device number 4 using dwc_otg
[ 3.606036] udevd: starting version 175
[ 3.631476] usb 1-1.5: New USB device found, idVendor=0eef, idProduct=0005
[ 3.641195] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 3.653540] usb 1-1.5: Product: By ZH851
[ 3.659956] usb 1-1.5: Manufacturer: RPI_TOUCH
[ 3.659967] usb 1-1.5: SerialNumber: \xffffffc2\xffffff84\xffffff84\xffffffc2\xffffffa0\xffffffa0B54711U335
[ 3.678577] hid-generic 0003:0EEF:0005.0001: hiddev0,hidraw0: USB HID v1.10 Device [RPI_TOUCH By ZH851] on usb-bcm2708_usb-1.5/input0
kernel config provide us more clue:
It is really a eGalaxy based device. Google this config but found nothing. I don’t have a eGalxy to compare, maybe waveshare’s touchscreen is only modifed the product id.
“aa” is start of the command, “01” means clicked while “00” means unclicked. “00e4” and “0139” is the X,Y position (HEX). “bb” is start of multi-touch, and the following bytes are the position of each point.
Write the driver
I use python to read from hidraw driver and then use uinput to emulate the mouse. It is quite easy to do. Please look at the source code.
I think this driver can work in any linux system with hidraw and uinput driver support.
Calibration and Multitouch
Please try this driver and if you need to support multitouch and calibration, please contact me to get the pro version.
I received an email from Adam, this driver may work with another type of screen:
Hi there. Wanted to say thank you for writing and sharing the user space driver for 7” USB touchscreen, you have saved me!