[DEV] Hardware Research - Acer Iconia A500
Hello happy iconia users!
I propose to dedicate this thread to collecting information about iconia hardware (gpio routing, clocks, embedded chips) and then making a page on xda wiki to reflect the changes. The main purpose is to prepare for future kernel developments. Currenty Acer has not released kernel sources (although i have asked in the acer world support - they sent me to russian support and they in turn told me to forget about kernel sources because A500 is not officially released here yet). This has of course brought great disappointment to me and I even thought about disassembling kernel (which I have obviously started doing but didn't want to waste my time on it), but while playing with the device I had a brilliant idea that I've immediately checked - the kernel is built with debugfs.
So, i did a mount -t debugfs none /mnt/usb_storage and got some interesting details from there. Currently I am busy with several other projects so won't be investing time into iconia hacking but will instead just leave the information here in a hope that it will be wikified or at least someone finds it useful. Some chips are identified and marked to indicate their support level by the currently available sources in mainline linux kernel and google tegra tree.
1. GPIO table
Code:
GPIOs 0-223, tegra-gpio:
gpio-10 (lvds_shdn ) out hi
gpio-22 (pnl_pwr_enb ) out hi
gpio-23 (KEY_POWER ) in lo irq-215 edge-both
gpio-28 (backlight_enb ) out hi
gpio-67 (KEY_POWER ) in lo irq-259 edge-both
gpio-69 (sdhci2_cd ) in lo irq-261 edge-both
gpio-70 (sdhci3_power ) out hi
gpio-85 (wlan_power ) out lo
gpio-86 (wlan_rst ) out hi
gpio-109 (mpu_akm8975 ) in lo irq-301 edge-rising
gpio-110 (temp_alert ) in hi irq-302 edge-both
gpio-111 (hdmi_hpd ) in lo irq-303 edge-both
gpio-132 (KEY_VOLUMEUP ) in hi irq-324 edge-both
gpio-133 (KEY_VOLUMEDOWN ) in hi irq-325 edge-both
gpio-135 (atmel_maXTouch1386 ) out hi
gpio-136 (sysfs ) in lo irq-328 edge-both
gpio-137 (sysfs ) in lo
gpio-142 (chg_disable ) out lo
gpio-144 (oob irq ) in lo irq-336 level-high wakeup
gpio-151 (mpu_kxtf9 ) in lo irq-343 edge-rising
gpio-155 (sdhci2_power ) out hi
gpio-160 (bcm4329_nshutdown_gp) out lo
gpio-161 (bt_ext_wake ) out lo
gpio-166 (bt_host_wake ) in hi
gpio-171 (ac_present ) in lo irq-363 edge-both
gpio-173 (vibrator ) out lo
gpio-174 (atmel_maXTouch1386_i) in hi irq-366 level-low
gpio-178 (headphone-detect-gpi) in hi irq-370 edge-both
gpio-190 (dock_headphone-detec) in hi irq-382 edge-both
gpio-202 (isl29018 ) in hi irq-394 edge-falling
gpio-203 (sysfs ) out lo
gpio-204 (mpu3050 ) in lo irq-396 edge-rising
GPIOs 224-227, i2c/4-0034, tps6586x, can sleep:
gpio-224 (pcie_vdd ) out hi
here we can see a reference to tps6586x which seems to be a multifunction device acting as a gpio expander with irq support, pwm controller, rtc controller and possibly other functions are provided by it. supported by linux
if the gpio names are not lying, we have an Atmel MaxTouch 1386 which is capable of handling 16 independent presses simultaneously Product brief on the Atmel site. FWIW i have managed to get 8 fingers to get tracked in some app and I'm quite impressed.
some driver exists for asus transformer but further investigation is needed
akm8975 compass chip supported by linux
AD5820 camera actuator supported by linux
ov5650 rear camera supported by linux and tegra media drivers
wm8903 audio codec supported by linux
bcm4329 wifi/bluetooth chip supported by both vanilla linux and separate module sources are also available
Another interesting project might be dumping the bootloader and finding out how it checks the recovery and boot images for security so the first step to running a custom rom on our tablets will be identifying the possibilities of building a kernel with kexec support and possibly installing a second-stage bootloader to load custom kernels but let's wait for the kernel sources first.
Further posts will contain additional information
tegra pinmux config. should be enough to restore the initialization tables in kernel and build a bootable image
Code:
{TEGRA_PINGROUP_ATA, TEGRA_MUX_IDE, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_ATB, TEGRA_MUX_SDIO4, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_ATC, TEGRA_MUX_NAND, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_ATD, TEGRA_MUX_GMI, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_ATE, TEGRA_MUX_GMI, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_CDEV1, TEGRA_MUX_PLLA_OUT, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_CDEV2, TEGRA_MUX_PLLP_OUT4, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_CRTP, TEGRA_MUX_CRT, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_CSUS, TEGRA_MUX_VI_SENSOR_CLK, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_DAP1, TEGRA_MUX_DAP1, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_DAP2, TEGRA_MUX_DAP2, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_DAP3, TEGRA_MUX_DAP3, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_DAP4, TEGRA_MUX_DAP4, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_DDC, TEGRA_MUX_RSVD2, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_DTA, TEGRA_MUX_VI, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_DTB, TEGRA_MUX_VI, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_DTC, TEGRA_MUX_VI, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_DTD, TEGRA_MUX_VI, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_DTE, TEGRA_MUX_VI, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_DTF, TEGRA_MUX_I2C3, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_GMA, TEGRA_MUX_SDIO4, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_GMB, TEGRA_MUX_GMI, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_GMC, TEGRA_MUX_UARTD, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_GMD, TEGRA_MUX_SFLASH, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_GME, TEGRA_MUX_SDIO4, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_GPU, TEGRA_MUX_PWM, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_GPU7, TEGRA_MUX_RTCK, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_GPV, TEGRA_MUX_PCIE, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_HDINT, TEGRA_MUX_HDMI, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_I2CP, TEGRA_MUX_I2C, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_IRRX, TEGRA_MUX_UARTB, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_IRTX, TEGRA_MUX_UARTB, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_KBCA, TEGRA_MUX_KBC, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_KBCB, TEGRA_MUX_KBC, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_KBCC, TEGRA_MUX_KBC, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_KBCD, TEGRA_MUX_KBC, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_KBCE, TEGRA_MUX_KBC, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_KBCF, TEGRA_MUX_KBC, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LCSN, TEGRA_MUX_RSVD4, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_LD0, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LD1, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LD10, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LD11, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LD12, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LD13, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LD14, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LD15, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LD16, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LD17, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LD2, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LD3, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LD4, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LD5, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LD6, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LD7, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LD8, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LD9, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LDC, TEGRA_MUX_RSVD4, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_LDI, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LHP0, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LHP1, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LHP2, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LHS, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LM0, TEGRA_MUX_RSVD4, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LM1, TEGRA_MUX_CRT, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_LPP, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LPW0, TEGRA_MUX_HDMI, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LPW1, TEGRA_MUX_RSVD4, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_LPW2, TEGRA_MUX_HDMI, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LSC0, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LSC1, TEGRA_MUX_HDMI, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LSCK, TEGRA_MUX_HDMI, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_LSDA, TEGRA_MUX_HDMI, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_LSDI, TEGRA_MUX_RSVD4, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_LSPI, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LVP0, TEGRA_MUX_RSVD4, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_LVP1, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_LVS, TEGRA_MUX_DISPLAYA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_OWC, TEGRA_MUX_RSVD2, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_PMC, TEGRA_MUX_PWR_ON, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_PTA, TEGRA_MUX_I2C2, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_RM, TEGRA_MUX_I2C, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_SDB, TEGRA_MUX_SDIO3, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_SDC, TEGRA_MUX_SDIO3, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_SDD, TEGRA_MUX_SDIO3, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_SDIO1, TEGRA_MUX_SDIO1, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_SLXA, TEGRA_MUX_PCIE, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_SLXC, TEGRA_MUX_SDIO3, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_SLXD, TEGRA_MUX_SPDIF, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_SLXK, TEGRA_MUX_SDIO3, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_SPDI, TEGRA_MUX_RSVD2, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_SPDO, TEGRA_MUX_RSVD2, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_SPIA, TEGRA_MUX_GMI, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_SPIB, TEGRA_MUX_GMI, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_SPIC, TEGRA_MUX_GMI, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_SPID, TEGRA_MUX_SPI1, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_SPIE, TEGRA_MUX_SPI1, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_SPIF, TEGRA_MUX_SPI1, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_SPIG, TEGRA_MUX_SPI2_ALT, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_SPIH, TEGRA_MUX_SPI2_ALT, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE},
{TEGRA_PINGROUP_UAA, TEGRA_MUX_ULPI, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_UAB, TEGRA_MUX_ULPI, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_UAC, TEGRA_MUX_RSVD2, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_UAD, TEGRA_MUX_IRDA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_UCA, TEGRA_MUX_UARTC, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_UCB, TEGRA_MUX_UARTC, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_UDA, TEGRA_MUX_ULPI, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_CK32, TEGRA_MUX_NONE, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_DDRC, TEGRA_MUX_NONE, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_PMCA, TEGRA_MUX_NONE, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_PMCB, TEGRA_MUX_NONE, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_PMCC, TEGRA_MUX_NONE, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_PMCD, TEGRA_MUX_NONE, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_PMCE, TEGRA_MUX_NONE, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_XM2C, TEGRA_MUX_NONE, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_XM2D, TEGRA_MUX_NONE, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
tegra pinmux drive
Code:
{TEGRA_DRIVE_PINGROUP_AO1, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_ENABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_31, TEGRA_PULL_31, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_AO2, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_ENABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_31, TEGRA_PULL_31, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_AT1, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_ENABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_31, TEGRA_PULL_31, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_AT2, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_ENABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_31, TEGRA_PULL_31, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_CDEV1, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_DISABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_18, TEGRA_PULL_22, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_CDEV2, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_DISABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_18, TEGRA_PULL_22, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_CSUS, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_DISABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_18, TEGRA_PULL_22, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_DAP1, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_DISABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_18, TEGRA_PULL_22, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_DAP2, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_DISABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_18, TEGRA_PULL_22, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_DAP3, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_DISABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_18, TEGRA_PULL_22, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_DAP4, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_DISABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_18, TEGRA_PULL_22, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_DBG, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_ENABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_31, TEGRA_PULL_31, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_LCD1, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_DISABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_18, TEGRA_PULL_22, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_LCD2, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_DISABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_18, TEGRA_PULL_22, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_SDMMC2, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_ENABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_31, TEGRA_PULL_31, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_SDMMC3, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_ENABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_31, TEGRA_PULL_31, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_SPI, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_DISABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_18, TEGRA_PULL_22, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_UAA, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_DISABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_18, TEGRA_PULL_22, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_UAB, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_DISABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_18, TEGRA_PULL_22, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_UART2, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_DISABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_18, TEGRA_PULL_22, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_UART3, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_DISABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_18, TEGRA_PULL_22, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_VI1, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_ENABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_31, TEGRA_PULL_31, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_VI2, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_ENABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_31, TEGRA_PULL_31, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_XM2A, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_DISABLE, TEGRA_DRIVE_DIV_8, TEGRA_PULL_28, TEGRA_PULL_31, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_FAST},
{TEGRA_DRIVE_PINGROUP_XM2C, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_ENABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_31, TEGRA_PULL_31, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_FAST},
{TEGRA_DRIVE_PINGROUP_XM2D, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_ENABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_31, TEGRA_PULL_31, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_FAST},
{TEGRA_DRIVE_PINGROUP_XM2CLK, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_DISABLE, TEGRA_DRIVE_DIV_8, TEGRA_PULL_28, TEGRA_PULL_31, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_FAST},
{TEGRA_DRIVE_PINGROUP_MEMCOMP, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_ENABLE, TEGRA_DRIVE_DIV_8, TEGRA_PULL_31, TEGRA_PULL_31, TEGRA_SLEW_FASTEST, TEGRA_SLEW_FASTEST},
{TEGRA_DRIVE_PINGROUP_SDIO1, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_ENABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_31, TEGRA_PULL_31, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_CRT, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_DISABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_18, TEGRA_PULL_22, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_DDC, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_ENABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_31, TEGRA_PULL_31, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_GMA, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_DISABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_18, TEGRA_PULL_22, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_GMB, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_DISABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_18, TEGRA_PULL_22, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_GMC, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_DISABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_18, TEGRA_PULL_22, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_GMD, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_DISABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_18, TEGRA_PULL_22, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_GME, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_DISABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_18, TEGRA_PULL_22, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_OWR, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_DISABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_18, TEGRA_PULL_22, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
{TEGRA_DRIVE_PINGROUP_UAD, TEGRA_HSM_DISABLE, TEGRA_SCHMITT_DISABLE, TEGRA_DRIVE_DIV_1, TEGRA_PULL_18, TEGRA_PULL_22, TEGRA_SLEW_SLOWEST, TEGRA_SLEW_SLOWEST},
debugfs clock directory should have necessary data to configure lcd clock and backlight pwm period
you are saying that the Iconia has teh wolfson wm8903 chip in it??
that's amazing! Definitely getting one now!
[Offtop]
Dear sp3dev, how I can see you are also from Russia, how do you think - have we any chanses to connect Yota SWC-U200 to ours tablets?
Shir_man said:
[Offtop]
Dear sp3dev, how I can see you are also from Russia, how do you think - have we any chanses to connect Yota SWC-U200 to ours tablets?
Click to expand...
Click to collapse
I think, yes. I am busy now but if you want, I can try building the driver during the weekends, although we'd better discuss it in the kernel modules thread. PM me with your jabber or email so that I can send you the files to test. And tell me your kernel version (in Settings->About).
sp3dev said:
I think, yes. I am busy now but if you want, I can try building the driver during the weekends, although we'd better discuss it in the kernel modules thread. PM me with your jabber or email so that I can send you the files to test. And tell me your kernel version (in Settings->About).
Click to expand...
Click to collapse
I wrote to you an email, check it please
Oops. Turns out I had an old account which is now deleted in my profile. Please send one more email so that it goes to the correct address now.
Ok, some of you know I was disappointed with Iconia and sold mine. But now that asus transformer is likely to be not shipped here and other tegra devices have little ram I may be switching back. But anyways...
I have set up a git here https://github.com/astarasikov/android_kernel_TF101 which is a clone of netarchy's transformer kernel. Later (I plan to start working tomorrow or on thursday) I will add some changes to support Iconia including gpio pinmux and fill framebuffer/clocks setup with values from the disassembled kernel.
What I need now is that some experienced developer like thor2002ro or someone else tests some kernel images I'll build and continues the development.
For now, if anyone is interested in decompiling original kernel, here is a hint. It is compressed with gzip. Gzip header is 1F 8B 08. Look for it in the extracted kernel image. The one I'm experimenting with had it at 16409 (decimal). So to extract it you can use
Code:
dd if=kernel bs=1 skip=16409 | gunzip > kernel_uncompressed
Maybe you could ask Dexter_nlb, sc2k and vache for some help with this i believe they are quite talented in the dev community, you could also try to put out test kernels that the community could test and provide feedback.
Ok, I have spent some time hex-viewing the kernel and have extracted the pwm (backlight) and framebuffer settings. Now RAM tables are left to go (I have found them but was lazy to parse)
Code:
static struct platform_pwm_backlight_data ventana_backlight_data = {
.pwm_id = 2,
.max_brightness = 255,
.dft_brightness = 224, -> our value. anything will go actually
.pwm_period_ns = 4166923 -> our value. better not change
...
}
Code:
static struct tegra_dc_mode ventana_panel_modes[] = {
{
/* Warning.
* The real LCD pclk will be replaced in tegra_dc_probe(). */
.pclk = 62200000, -> our value, the rest seem to match asus ones
.h_ref_to_sync = 11,
.v_ref_to_sync = 1,
.h_sync_width = 58,
.v_sync_width = 4,
.h_back_porch = 58,
.v_back_porch = 4,
.h_active = 1280,
.v_active = 800,
.h_front_porch = 58,
.v_front_porch = 4,
},
};
suspend settings
Code:
static struct tegra_suspend_platform_data ventana_suspend_data = {
/*
* Check power on time and crystal oscillator start time
* for appropriate settings.
*/
.cpu_timer = 5000, -> our value
.cpu_off_timer = 5000, -> our value
.suspend_mode = TEGRA_SUSPEND_LP0,
.core_timer = 0x7e7e,
.core_off_timer = 0x7f, -> our value
.separate_req = true,
.corereq_high = false,
.sysclkreq_high = true,
.wake_enb = 0, -> these need to be verified or filled manually
.wake_high = 0,
.wake_low = 0,
.wake_any = 0,
};
Here is the A500 Service Guide for Acer support.
It have all hardware details and some diagrams. Maybe it can help.
http://a500.teamtep.gaming.cx/SG_ICONIA Tab A500_20110421.pdf
P.S : i'm ready to test/build kernel. Let me know when you need help.
Thanks for the manual. It contains some info about the chips used but unfortunately does not give exact data like timings or gpios but I have extracted almost all needed data from the binary.
As all ventana boards share the same mtype, my idea is to make a compile-time option to select the board and the files for the board (transformer/iconia/atrix etc) should be in a subdirectory or just named differently. So I'm gonna do some cleanup to asus sources and build a couple kernels for you tomorrow.
Depending on whether asus transformer will be available here I will or will not join the iconian party myself later...
I'm very interested in the docking port...
..and possibly bringing a cable / alt. dock to market for this guy. Anyone have the pinout and specs for this? Or where I might start to look?
Thanks in advance...!
Here is a test zImage - http://www.mediafire.com/?g7a1nh23qs52302
all the changes are in git (https://github.com/astarasikov/iconia_kernel)
ok, here is a short summary.
1. Basically, transformer kernel is ****ed up many ways. Those monkeys either have no sense how to code or are professional trolls. Can you imagine board-specific callbacks for transformer to be hooked everywhere, even in gpio-keys, sdio core? A battery callback in framebuffer? If we make any custom image boot on iconia, we must start over with a clean tree like android or chromium
2. I have made some switch in config to allow to select transformer or iconia at compile time.. Basically, now we have to copy transformer files and make modifications to them and clean up crap.
3. I have found the sdram config tables but didn't take time to disassemble original zImage and find the detection routine. So if this particular image doesn't boot, someone will have to try with different memtype values in ventana_emc_init() in board-ventana-memory-a500.c
4. Some hardware like one of cameras is not supported by this kernel tree. For now the priority is to get it to boot and make display work and then we'll need another tree anyway.
So, all in all, I suggest that someone who owns the device tries to find out the memory detection thingie and starts with a clean tree. I can help with the disassembly part. I'm personally shocked by the code quality of asus and this is imho enough good reason to keep away from this stuff..
And btw, have fun
{
"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"
}
Nice work. Is this overclocked like I see in the iconia source tree?
I am new to Linux kernel compilation and am learning as I go. I have taken the latest version of the kernel source from the ASUS web site and have had to make many of the same fixes you mention. I am cross compiling against the arm-eabi- and have gotten it to build as well. I must be doing something right because my zImage is ~2.8Mb just like yours! The .config file I am using came from an iconia source that someone posted, so I feel pretty good about the kernel configuration options I have selected. I have also compiled some kernel modules and they are working good on my 3.01 Iconia, so that made me feel good as well
I would love to see someone give it a try. I would give it a whirl, but I haven't dug into the itsmagic and the 3.1 ROM dexter posted yet. Hopefully someone comfortable with these new methods will give it a try and report back. I am also be willing to post my zImage (not overclocked) if someone wants to give it a try.
I want someone like vache to try it out. But now that the kernel source release date is confirmed it makes no sense to continue here as we'd have to rewrite a lot of stuff like camera driver and memory detection..
so we got a kernel to compile and it works?
i would assume that the tiomat changes can be brought into this source git tree?
We can compile. No one has tried to see if it works and you're welcome to. But now that the official release date is 22nd, it makes sense to wait
sp3dev said:
We can compile. No one has tried to see if it works and you're welcome to. But now that the official release date is 22nd, it makes sense to wait
Click to expand...
Click to collapse
sure.. ill wait for the official then..
sp3dev said:
We can compile. No one has tried to see if it works and you're welcome to. But now that the official release date is 22nd, it makes sense to wait
Click to expand...
Click to collapse
Where did you hear that it'll be released on 22nd?
Sent from my HTC HD2 using XDA Premium App
Related
[Guide] How Can i Make My Own LiteStalk 4.4 builds
LITESTALK Litestalk is for users who want a stable better batttery life more free ram pleasent kitkat experience overall for thier devices it is the rom based on "What u See is What u Get conecpt" a simple rom which user can customise it like he want So your interested in Building..! Follow this guide! For any 2011 xperia device! Setup to build - This section can be skipped if youve ever built anything before. This is for first time build setup. 1. From your root terminal location, type the following: Code: sudo apt-get install curl git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev sun-java6-jdk pngcrush schedtool g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib Download google repo tool 2. Type: mkdir ~/bin 3. Type: PATH=~/bin:$PATH 4. Type: curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo 5. Type: chmod a+x ~/bin/repo Code: [B][U]From terminal[/U][/B] 1. mkdir kk 2. cd kk 3. mkdir system 4. cd system 5. repo init -u git://github.com/LiteStalk/android.git -b cm-11.0 8. repo sync 9. curl https://raw.github.com/LegacyXperia/local_manifests/cm-11.0/updates.sh > ~/beanstalk/system/updates.sh 10. chmod a+x updates.sh 11. ./updates.sh 12. cd ~/kk/system/vendor/cm 13. ./get-prebuilts 14. cd ~/beanstalk/system 15. . build/envsetup.sh 16. breakfast anzu 17. brunch anzu - you can chnage device name to yours
[Q] i9305 compile errors
I've been following this guide, using clean Ubuntu 13.10: http://docs.omnirom.org/Build_for_i9300 But with added dependecies for i9305: Code: <?xml version="1.0" encoding="UTF-8"?> <manifest> <project path="device/samsung/i9300" name="android_device_samsung_i9300" remote="omnirom" revision="android-4.4"/> <project path="device/samsung/smdk4412-common" name="android_device_samsung_smdk4412-common" remote="omnirom" revision="android-4.4"/> <project path="hardware/samsung" name="android_hardware_samsung" remote="omnirom" revision="android-4.4"/> <project path="kernel/samsung/smdk4412" name="android_kernel_samsung_smdk4412" remote="omnirom" revision="android-4.4"/> <project path="vendor/samsung" name="DonkeyCoyote/proprietary_vendor_samsung" remote="github" revision="android-4.4" /> <project path="device/samsung/i9305" name="android_device_samsung_i9305" remote="omnirom" revision="android-4.4"/> <project path="device/samsung/smdk4412-qcom-common" name="android_device_samsung_smdk4412-qcom-common" remote="omnirom" revision="android-4.4"/> </manifest> However, roomservice immediately reports issues: Code: Traceback (most recent call last): File "build/tools/roomservice.py", line 297, in <module> fetch_dependencies(device) File "build/tools/roomservice.py", line 253, in fetch_dependencies create_dependency_manifest(dependencies) File "build/tools/roomservice.py", line 238, in create_dependency_manifest revision=revision) File "build/tools/roomservice.py", line 146, in create_manifest_project project_exists = check_project_exists(url) File "build/tools/roomservice.py", line 120, in check_project_exists for project in iterate_manifests(): File "build/tools/roomservice.py", line 110, in iterate_manifests man = ES.parse(file) File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1182, in parse tree.parse(source, parser) File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 657, in parse self._root = parser.close() File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1654, in close self._raiseerror(v) File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1506, in _raiseerror raise err xml.etree.ElementTree.ParseError: no element found: line 1, column 0 But, it continues and breaks at some random point and pretty much untraceable. Been trying for some time, with clean installation and clean code base but without success. CM compiles fine, though. Thanks. EDIT: I think that i9305 vendor blobs should be added to DonkeyCoyote, especially when there are new 4.3 ones since yesterday. @mcampbellsmith ?
Nobody?
Half asleep, but a glance shows a lot of errors in your roomservice, which makes me ask: what's your python version? Code: python -V
BlaqueDroid said: Hey man I'm having the same problem and how did u manage to fix your issue if u ever did Click to expand... Click to collapse Roomservice errors weren't fixed but I've found what was breaking the build. Apparently this block is badly formatted in guide: sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.8-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev openjdk-6-jre openjdk-6-jdk pngcrush schedtool libxml2 libxml2-utils xsltproc lzop libc6-dev schedtool ... And copy/pasting this whole block is not a good idea since it missed few libraries, libxml2-utils for example. PonsAsinorem said: Half asleep, but a glance shows a lot of errors in your roomservice, which makes me ask: what's your python version? Code: python -V Click to expand... Click to collapse 2.7.5 It compiles now even though there are errors in roomservice. No issues with CM.
Android App - Proguard related issue
Hi, My unsigned APK works fine. The login on First screen also works. But when I sign the APK and install it on a device, the login fails. I have added the below lines to proguard-project.txt -dontwarn org.simpleframework.xml.stream.** -keep public class com.allintravel.mobileagent.activities {*;} -keep public class com.allintravel.mobileagent.adapters {*;} -keep public class com.allintravel.mobileagent.anim {*;} -keep public class com.allintravel.mobileagent.connection {*;} -keep public class com.allintravel.mobileagent.interfaces {*;} -keep public class com.allintravel.mobileagent.models {*;} -keep public class com.allintravel.mobileagent.taskhandler {*;} -keep public class com.allintravel.mobileagent.util {*;} -keep public class com.allintravel.mobileagent.views {*;} -keep public class com.jeremyfeinstein.slidingmenu.lib {*;} -keep public class com.jeremyfeinstein.slidingmenu.lib.app {*;} -keep public class com.handmark.pulltorefresh.library {*;} -keep public class com.handmark.pulltorefresh.library.extras {*;} -keep public class com.handmark.pulltorefresh.library.internal {*;} Below are the Errors 04-10 11:54:33.414: W/System.err(7588): java.lang.ClassNotFoundException: com.allintravel.mobileagent.models.ResponseData 04-10 11:54:33.414: W/System.err(7588): at java.lang.Class.classForName(Native Method) 04-10 11:54:33.414: W/System.err(7588): at java.lang.Class.forName(Class.java:217) 04-10 11:54:33.414: W/System.err(7588): at java.lang.Class.forName(Class.java:172) 04-10 11:54:33.414: W/System.err(7588): at com.allintravel.mobileagent.f.a.a(Unknown Source) 04-10 11:54:33.414: W/System.err(7588): at com.allintravel.mobileagent.f.a.doInBackground(Unknown Source) 04-10 11:54:33.422: W/System.err(7588): at android.os.AsyncTask$2.call(AsyncTask.java:287) 04-10 11:54:33.422: W/System.err(7588): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 04-10 11:54:33.422: W/System.err(7588): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 04-10 11:54:33.422: W/System.err(7588): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 04-10 11:54:33.422: W/System.err(7588): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 04-10 11:54:33.422: W/System.err(7588): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 04-10 11:54:33.422: W/System.err(7588): at java.lang.Thread.run(Thread.java:856) 04-10 11:54:33.422: W/System.err(7588): Caused by: java.lang.NoClassDefFoundError: com/allintravel/mobileagent/models/ResponseData 04-10 11:54:33.422: W/System.err(7588): ... 12 more 04-10 11:54:33.422: W/System.err(7588): Caused by: java.lang.ClassNotFoundException: com.allintravel.mobileagent.models.ResponseData 04-10 11:54:33.422: W/System.err(7588): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 04-10 11:54:33.422: W/System.err(7588): at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 04-10 11:54:33.422: W/System.err(7588): at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 04-10 11:54:33.422: W/System.err(7588): ... 12 more 04-10 11:54:33.430: W/System.err(7588): a.a.a.a.ew: Can not instantiate null class 04-10 11:54:33.430: W/System.err(7588): at a.a.a.a.fy.b(Unknown Source) 04-10 11:54:33.430: W/System.err(7588): at a.a.a.a.fy.a(Unknown Source) 04-10 11:54:33.430: W/System.err(7588): at a.a.a.a.eg.a(Unknown Source) 04-10 11:54:33.430: W/System.err(7588): at a.a.a.a.eg.a(Unknown Source) 04-10 11:54:33.430: W/System.err(7588): at a.a.a.a.eg.a(Unknown Source) 04-10 11:54:33.430: W/System.err(7588): at a.a.a.a.eg.a(Unknown Source) 04-10 11:54:33.430: W/System.err(7588): at a.a.a.a.eg.a(Unknown Source) 04-10 11:54:33.430: W/System.err(7588): at com.allintravel.mobileagent.f.a.a(Unknown Source) 04-10 11:54:33.430: W/System.err(7588): at com.allintravel.mobileagent.f.a.doInBackground(Unknown Source) 04-10 11:54:33.430: W/System.err(7588): at android.os.AsyncTask$2.call(AsyncTask.java:287) 04-10 11:54:33.430: W/System.err(7588): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 04-10 11:54:33.430: W/System.err(7588): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 04-10 11:54:33.430: W/System.err(7588): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 04-10 11:54:33.430: W/System.err(7588): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 04-10 11:54:33.438: W/System.err(7588): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 04-10 11:54:33.438: W/System.err(7588): at java.lang.Thread.run(Thread.java:856) How can I resolve this issue? Libraries used are FlurryAnalytics_3.3.4.jar simple-xml-2.7.1.jar google-play-services_lib pull-to-refresh \jeremyfeinstein\slidingmenu Thanks
[GUIDE] Build AICP MM6.0 for Samsung Galaxy S3
How to AICP11 6.0 for I9300 You need: PC/Laptop with 4GB RAM Good internet connection Linux 64 Bit Open the Terminal in your Linux distribution and copy the following command: Code: sudo apt-get install bison build-essential curl flex git gnupg gperf libesd0-dev liblz4-tool libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop openjdk-7-jdk openjdk-7-jre pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev Creating directories: Code: mkdir -p ~/bin mkdir -p ~/AICP Install repo: Code: curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo Initialize the AICP source repository: Code: cd ~/AICP repo init -u https://github.com/AICP/platform_manifest.git -b mm6.0 Download the source code: Code: repo sync Download device-specific files: Code: . build/envsetup.sh breakfast i9300 Start the build: Code: brunch i9300 Build will be in: AICP/out/target/product/i9300
Reserved Reserved
Enabling USB-Audio out - Joying Intel SC9853i Android 8.1
Currently i am trying to enable USB-Audio out in the newest Intel SC9853i Joying Headunits. That would be a great feature for me and some other audiophiles. In older Joyings with Android 5.1, it was possible to enable it by adding code to the audio_policy.conf: # Global configuration section: lists input and output devices always present on the device # as well as the output device selected by default. # Devices are designated by a string that corresponds to the enum in audio.h global_configuration { attached_output_devices AUDIO_DEVICE_OUT_SPEAKER default_output_device AUDIO_DEVICE_OUT_SPEAKER attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_BACK_MIC|AUDIO_DEVICE_IN_VOICE_CALL|AUDIO_DEVICE_IN_REMOTE_SUBMIX|AUDIO_DEVICE_IN_BLUETOOTH_A2DP } # audio hardware module section: contains descriptors for all audio hw modules present on the # device. Each hw module node is named after the corresponding hw module library base name. # For instance, "primary" corresponds to audio.primary.<device>.so. # The "primary" module is mandatory and must include at least one output with # AUDIO_OUTPUT_FLAG_PRIMARY flag. # Each module descriptor contains one or more output profile descriptors and zero or more # input profile descriptors. Each profile lists all the parameters supported by a given output # or input stream category. # The "channel_masks", "formats", "devices" and "flags" are specified using strings corresponding # to enums in audio.h and audio_policy.h. They are concatenated by use of "|" without space or "\n". audio_hw_modules { primary { outputs { primary { sampling_rates 48000 | 44100 channel_masks AUDIO_CHANNEL_OUT_STEREO formats AUDIO_FORMAT_PCM_16_BIT devices AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_AUX_DIGITAL|AUDIO_DEVICE_OUT_FM flags AUDIO_OUTPUT_FLAG_PRIMARY } } inputs { primary { sampling_rates 48000 channel_masks AUDIO_CHANNEL_IN_MONO|AUDIO_CHANNEL_IN_STEREO|AUDIO_CHANNEL_IN_VOICE_UPLINK|AUIDIO_CHANNEL_IN_VOICE_DNLINK|AUDIO_CHANNEL_IN_VOICE_UPLINK_DNLINK formats AUDIO_FORMAT_PCM_16_BIT devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET|AUDIO_DEVICE_IN_WIRED_HEADSET|AUDIO_DEVICE_IN_BACK_MIC|AUDIO_DEVICE_IN_FM_RX|AUDIO_DEVICE_IN_VOICE_CALL } } } a2dp { outputs { a2dp { sampling_rates 44100 channel_masks AUDIO_CHANNEL_OUT_STEREO formats AUDIO_FORMAT_PCM_16_BIT devices AUDIO_DEVICE_OUT_ALL_A2DP } } inputs { primary { sampling_rates 48000 | 44100 channel_masks AUDIO_CHANNEL_IN_STEREO formats AUDIO_FORMAT_PCM_16_BIT devices AUDIO_DEVICE_IN_BLUETOOTH_A2DP } } } r_submix { outputs { submix { sampling_rates 48000 channel_masks AUDIO_CHANNEL_OUT_STEREO formats AUDIO_FORMAT_PCM_16_BIT devices AUDIO_DEVICE_OUT_REMOTE_SUBMIX } } inputs { submix { sampling_rates 48000 channel_masks AUDIO_CHANNEL_IN_MONO|AUDIO_CHANNEL_IN_STEREO formats AUDIO_FORMAT_PCM_16_BIT devices AUDIO_DEVICE_IN_REMOTE_SUBMIX } } } usb { outputs { usb_accessory { sampling_rates 44100 channel_masks AUDIO_CHANNEL_OUT_STEREO formats AUDIO_FORMAT_PCM_16_BIT devices AUDIO_DEVICE_OUT_USB_ACCESSORY } usb_device { sampling_rates dynamic channel_masks dynamic formats dynamic devices AUDIO_DEVICE_OUT_USB_DEVICE } } inputs { usb_device { sampling_rates dynamic channel_masks AUDIO_CHANNEL_IN_STEREO formats AUDIO_FORMAT_PCM_16_BIT devices AUDIO_DEVICE_IN_USB_DEVICE } } } } Click to expand... Click to collapse In Android 8, the file format changed from .conf to xml and also the code changed a bit and multiple files are defining the modules, devices, volume and routing of sound. I rooted the Joying and copied all files on a stick. On the first look, it seems totally okay, USB-Audio is defined as a module. When connecting a USB-DAC, it is powered, but sound is not routet to it. So i think there is code missing in the rooting of sound, or it is muted but i just can´t find whats missing. Does someone have a clue what has to be changed to get it working? audio_policy_configuration.xml <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!-- Copyright (C) 2017 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude"> <!-- version section contains a “version” tag in the form “major.minor” e.g version=”1.0” --> <!-- Global configuration Decalaration --> <globalConfiguration speaker_drc_enabled="true"/> <!-- HIER WAR VORHER false --> <modules> <!-- Primary Audio HAL --> <xi:include href="primary_audio_policy_configuration.xml"/> <!-- Remote Submix Audio HAL --> <xi:include href="r_submix_audio_policy_configuration.xml"/> <!-- A2dp Audio HAL --> <xi:include href="a2dp_audio_policy_configuration.xml"/> <!-- Usb Audio HAL --> <xi:include href="usb_audio_policy_configuration.xml"/> </modules> <!-- End of Modules section --> <!-- Volume section --> <xi:include href="audio_policy_volumes.xml"/> <xi:include href="default_volume_tables.xml"/> <!-- End of Volume section --> </audioPolicyConfiguration> Click to expand... Click to collapse primary_audio_policy_configuration.xml <?xml version="1.0" encoding="UTF-8"?> <!-- Default Primary Audio HAL Module Audio Policy Configuration include flie --> <module name="primary" halVersion="2.0"> <attachedDevices> <item>Speaker</item> <item>Earpiece</item> <item>Built-In Mic</item> <item>Built-In Back Mic</item> </attachedDevices> <defaultOutputDevice>Speaker</defaultOutputDevice> <mixPorts> <mixPort name="primary output" role="source" flags="AUDIO_OUTPUT_FLAG_PRIMARY"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/> </mixPort> <!-- <mixPort name="deep_buffer" role="source" flags="AUDIO_OUTPUT_FLAG_DEEP_BUFFER"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/> </mixPort> --> <mixPort name="compressed_offload" role="source" flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING"> <profile name="" format="AUDIO_FORMAT_MP3" samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/> </mixPort> <mixPort name="voice_tx" role="source"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/> </mixPort> <mixPort name="primary input" role="sink"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000" channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/> </mixPort> <mixPort name="voice_rx" role="sink"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_IN_MONO"/> </mixPort> </mixPorts> <devicePorts> <!-- Output devices declaration, i.e. Sink DEVICE PORT --> <devicePort tagName="Earpiece" type="AUDIO_DEVICE_OUT_EARPIECE" role="sink"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="44100" channelMasks="AUDIO_CHANNEL_IN_MONO"/> </devicePort> <devicePort tagName="Speaker" role="sink" type="AUDIO_DEVICE_OUT_SPEAKER"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/> </devicePort> <devicePort tagName="Wired Headset" type="AUDIO_DEVICE_OUT_WIRED_HEADSET" role="sink"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/> </devicePort> <devicePort tagName="Wired Headphones" type="AUDIO_DEVICE_OUT_WIRED_HEADPHONE" role="sink"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/> </devicePort> <devicePort tagName="BT SCO" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO" role="sink"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/> </devicePort> <devicePort tagName="BT SCO Headset" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET" role="sink"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/> </devicePort> <devicePort tagName="BT SCO Car Kit" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_CARKIT" role="sink"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/> </devicePort> <devicePort tagName="Telephony Tx" type="AUDIO_DEVICE_OUT_TELEPHONY_TX" role="sink"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/> </devicePort> <devicePort tagName="Built-In Mic" type="AUDIO_DEVICE_IN_BUILTIN_MIC" role="source"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000" channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/> </devicePort> <devicePort tagName="Built-In Back Mic" type="AUDIO_DEVICE_IN_BACK_MIC" role="source"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000" channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/> </devicePort> <devicePort tagName="Wired Headset Mic" type="AUDIO_DEVICE_IN_WIRED_HEADSET" role="source"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000" channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/> </devicePort> <devicePort tagName="BT SCO Headset Mic" type="AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET" role="source"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_IN_MONO"/> </devicePort> <devicePort tagName="Telephony Rx" type="AUDIO_DEVICE_IN_TELEPHONY_RX" role="source"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_IN_MONO"/> </devicePort> </devicePorts> <!-- route declaration, i.e. list all available sources for a given sink --> <routes> <route type="mix" sink="Earpiece" sources="primary output,compressed_offload,BT SCO Headset Mic"/> <route type="mix" sink="Speaker" sources="primary output,compressed_offload,BT SCO Headset Mic,Telephony Rx"/> <route type="mix" sink="Wired Headset" sources="primary output,compressed_offload,BT SCO Headset Mic,Telephony Rx"/> <route type="mix" sink="Wired Headphones" sources="primary output,BT SCO Headset Mic,Telephony Rx"/> <route type="mix" sink="BT SCO" sources="primary output,Telephony Rx"/> <route type="mix" sink="BT SCO Headset" sources="primary output,Telephony Rx"/> <route type="mix" sink="BT SCO Car Kit" sources="primary output,Telephony Rx"/> <route type="mix" sink="primary input" sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic"/> <route type="mix" sink="Telephony Tx" sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic, voice_tx"/> <route type="mix" sink="voice_rx" sources="Telephony Rx"/> </routes> </module> Click to expand... Click to collapse usb_audio_policy_configuration.xml <?xml version="1.0" encoding="UTF-8"?> <!-- Copyright (C) 2015 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- USB Audio HAL Audio Policy Configuration file --> <module name="usb" halVersion="2.0"> <mixPorts> <mixPort name="usb_accessory output" role="source"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/> </mixPort> <mixPort name="usb_device output" role="source"/> <mixPort name="usb_device input" role="sink"/> </mixPorts> <devicePorts> <devicePort tagName="USB Host Out" type="AUDIO_DEVICE_OUT_USB_ACCESSORY" role="sink"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/> </devicePort> <devicePort tagName="USB Device Out" type="AUDIO_DEVICE_OUT_USB_DEVICE" role="sink"/> <devicePort tagName="USB Headset Out" type="AUDIO_DEVICE_OUT_USB_HEADSET" role="sink"/> <devicePort tagName="USB Device In" type="AUDIO_DEVICE_IN_USB_DEVICE" role="source"/> <devicePort tagName="USB Headset In" type="AUDIO_DEVICE_IN_USB_HEADSET" role="source"/> </devicePorts> <routes> <route type="mix" sink="USB Host Out" sources="usb_accessory output"/> <route type="mix" sink="USB Device Out" sources="usb_device output"/> <route type="mix" sink="USB Headset Out" sources="usb_device output"/> <route type="mix" sink="usb_device input" sources="USB Device In,USB Headset In"/> </routes> </module> Click to expand... Click to collapse audio_policy_volumes.xml <?xml version="1.0" encoding="UTF-8"?> <!-- Copyright (C) 2015 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- Volume section defines a volume curve for a given use case and device category. It contains a list of points of this curve expressing the attenuation in Millibels for a given volume index from 0 to 100. <volume stream=”AUDIO_STREAM_MUSIC” deviceCategory=””> <point>0,-9600</point> <point>100,0</point> </volume> --> <volumes> <volume stream="AUDIO_STREAM_VOICE_CALL" deviceCategory="DEVICE_CATEGORY_HEADSET"> <point>0,-4200</point> <point>33,-2800</point> <point>66,-1400</point> <point>100,0</point> </volume> <volume stream="AUDIO_STREAM_VOICE_CALL" deviceCategory="DEVICE_CATEGORY_SPEAKER"> <point>0,-2400</point> <point>33,-1600</point> <point>66,-800</point> <point>100,0</point> </volume> <volume stream="AUDIO_STREAM_VOICE_CALL" deviceCategory="DEVICE_CATEGORY_EARPIECE"> <point>0,-2400</point> <point>33,-1600</point> <point>66,-800</point> <point>100,0</point> </volume> <volume stream="AUDIO_STREAM_VOICE_CALL" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA" ref="DEFAULT_MEDIA_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_SYSTEM" deviceCategory="DEVICE_CATEGORY_HEADSET"> <point>1,-3000</point> <point>33,-2600</point> <point>66,-800</point> <point>100,0</point> </volume> <volume stream="AUDIO_STREAM_SYSTEM" deviceCategory="DEVICE_CATEGORY_SPEAKER" ref="DEFAULT_SYSTEM_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_SYSTEM" deviceCategory="DEVICE_CATEGORY_EARPIECE" ref="DEFAULT_SYSTEM_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_SYSTEM" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA" ref="DEFAULT_DEVICE_CATEGORY_EXT_MEDIA_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_RING" deviceCategory="DEVICE_CATEGORY_HEADSET" ref="DEFAULT_DEVICE_CATEGORY_HEADSET_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_RING" deviceCategory="DEVICE_CATEGORY_SPEAKER"> <point>1,-2970</point> <point>33,-2010</point> <point>66,-1020</point> <point>100,0</point> </volume> <volume stream="AUDIO_STREAM_RING" deviceCategory="DEVICE_CATEGORY_EARPIECE" ref="DEFAULT_DEVICE_CATEGORY_EARPIECE_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_RING" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA" ref="DEFAULT_DEVICE_CATEGORY_EXT_MEDIA_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_MUSIC" deviceCategory="DEVICE_CATEGORY_HEADSET" ref="DEFAULT_MEDIA_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_MUSIC" deviceCategory="DEVICE_CATEGORY_SPEAKER" ref="DEFAULT_DEVICE_CATEGORY_SPEAKER_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_MUSIC" deviceCategory="DEVICE_CATEGORY_EARPIECE" ref="DEFAULT_MEDIA_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_MUSIC" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA" ref="DEFAULT_MEDIA_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_ALARM" deviceCategory="DEVICE_CATEGORY_HEADSET" ref="DEFAULT_DEVICE_CATEGORY_HEADSET_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_ALARM" deviceCategory="DEVICE_CATEGORY_SPEAKER"> <point>1,-2970</point> <point>33,-2010</point> <point>66,-1020</point> <point>100,0</point> </volume> <volume stream="AUDIO_STREAM_ALARM" deviceCategory="DEVICE_CATEGORY_EARPIECE" ref="DEFAULT_DEVICE_CATEGORY_EARPIECE_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_ALARM" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA" ref="DEFAULT_DEVICE_CATEGORY_EXT_MEDIA_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_NOTIFICATION" deviceCategory="DEVICE_CATEGORY_HEADSET" ref="DEFAULT_DEVICE_CATEGORY_HEADSET_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_NOTIFICATION" deviceCategory="DEVICE_CATEGORY_SPEAKER"> <point>1,-2970</point> <point>33,-2010</point> <point>66,-1020</point> <point>100,0</point> </volume> <volume stream="AUDIO_STREAM_NOTIFICATION" deviceCategory="DEVICE_CATEGORY_EARPIECE" ref="DEFAULT_DEVICE_CATEGORY_EARPIECE_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_NOTIFICATION" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA" ref="DEFAULT_DEVICE_CATEGORY_EXT_MEDIA_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_BLUETOOTH_SCO" deviceCategory="DEVICE_CATEGORY_HEADSET"> <point>0,-4200</point> <point>33,-2800</point> <point>66,-1400</point> <point>100,0</point> </volume> <volume stream="AUDIO_STREAM_BLUETOOTH_SCO" deviceCategory="DEVICE_CATEGORY_SPEAKER"> <point>0,-2400</point> <point>33,-1600</point> <point>66,-800</point> <point>100,0</point> </volume> <volume stream="AUDIO_STREAM_BLUETOOTH_SCO" deviceCategory="DEVICE_CATEGORY_EARPIECE"> <point>0,-4200</point> <point>33,-2800</point> <point>66,-1400</point> <point>100,0</point> </volume> <volume stream="AUDIO_STREAM_BLUETOOTH_SCO" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA" ref="DEFAULT_MEDIA_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_ENFORCED_AUDIBLE" deviceCategory="DEVICE_CATEGORY_HEADSET"> <point>1,-3000</point> <point>33,-2600</point> <point>66,-2200</point> <point>100,-1800</point> </volume> <volume stream="AUDIO_STREAM_ENFORCED_AUDIBLE" deviceCategory="DEVICE_CATEGORY_SPEAKER" ref="DEFAULT_SYSTEM_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_ENFORCED_AUDIBLE" deviceCategory="DEVICE_CATEGORY_EARPIECE" ref="DEFAULT_SYSTEM_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_ENFORCED_AUDIBLE" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA" ref="DEFAULT_DEVICE_CATEGORY_EXT_MEDIA_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_DTMF" deviceCategory="DEVICE_CATEGORY_HEADSET"> <point>1,-3000</point> <point>33,-2600</point> <point>66,-2200</point> <point>100,-1800</point> </volume> <volume stream="AUDIO_STREAM_DTMF" deviceCategory="DEVICE_CATEGORY_SPEAKER" ref="DEFAULT_SYSTEM_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_DTMF" deviceCategory="DEVICE_CATEGORY_EARPIECE" ref="DEFAULT_SYSTEM_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_DTMF" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA" ref="DEFAULT_DEVICE_CATEGORY_EXT_MEDIA_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_TTS" deviceCategory="DEVICE_CATEGORY_HEADSET" ref="SILENT_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_TTS" deviceCategory="DEVICE_CATEGORY_SPEAKER" ref="FULL_SCALE_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_TTS" deviceCategory="DEVICE_CATEGORY_EARPIECE" ref="SILENT_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_TTS" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA" ref="SILENT_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_ACCESSIBILITY" deviceCategory="DEVICE_CATEGORY_HEADSET" ref="DEFAULT_MEDIA_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_ACCESSIBILITY" deviceCategory="DEVICE_CATEGORY_SPEAKER" ref="DEFAULT_DEVICE_CATEGORY_SPEAKER_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_ACCESSIBILITY" deviceCategory="DEVICE_CATEGORY_EARPIECE" ref="DEFAULT_MEDIA_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_ACCESSIBILITY" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA" ref="DEFAULT_MEDIA_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_REROUTING" deviceCategory="DEVICE_CATEGORY_HEADSET" ref="FULL_SCALE_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_REROUTING" deviceCategory="DEVICE_CATEGORY_SPEAKER" ref="FULL_SCALE_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_REROUTING" deviceCategory="DEVICE_CATEGORY_EARPIECE" ref="FULL_SCALE_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_REROUTING" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA" ref="FULL_SCALE_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_PATCH" deviceCategory="DEVICE_CATEGORY_HEADSET" ref="FULL_SCALE_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_PATCH" deviceCategory="DEVICE_CATEGORY_SPEAKER" ref="FULL_SCALE_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_PATCH" deviceCategory="DEVICE_CATEGORY_EARPIECE" ref="FULL_SCALE_VOLUME_CURVE"/> <volume stream="AUDIO_STREAM_PATCH" deviceCategory="DEVICE_CATEGORY_EXT_MEDIA" ref="FULL_SCALE_VOLUME_CURVE"/> </volumes> Click to expand... Click to collapse r_submix_audio_policy_configuration.xml <?xml version="1.0" encoding="UTF-8"?> <!-- Copyright (C) 2015 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!-- Remote Submix Audio Policy Configuration file --> <module name="r_submix" halVersion="2.0"> <attachedDevices> <item>Remote Submix In</item> </attachedDevices> <mixPorts> <mixPort name="r_submix output" role="source"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/> </mixPort> <mixPort name="r_submix input" role="sink"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_STEREO"/> </mixPort> </mixPorts> <devicePorts> <devicePort tagName="Remote Submix Out" type="AUDIO_DEVICE_OUT_REMOTE_SUBMIX" role="sink"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/> </devicePort> <devicePort tagName="Remote Submix In" type="AUDIO_DEVICE_IN_REMOTE_SUBMIX" role="source"> <profile name="" format="AUDIO_FORMAT_PCM_16_BIT" samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_STEREO"/> </devicePort> </devicePorts> <routes> <route type="mix" sink="Remote Submix Out" sources="r_submix output"/> <route type="mix" sink="r_submix input" sources="Remote Submix In"/> </routes> </module> Click to expand... Click to collapse
does it work with USB Audio Player Pro ?
I'm with you on this one. It would be great if this worked. I use a Mini-DSP 2x4 in my car with Nexus 7. Great sound. I switched to Joying for better integration but lost USB audio out. So SAD!
stelchlepp said: Currently i am trying to enable USB-Audio out in the newest Intel SC9853i Joying Headunits. That would be a great feature for me and some other audiophiles. In older Joyings with Android 5.1, it was possible to enable it by adding code to the audio_policy.conf: Click to expand... Click to collapse To start with: I am no audiophile and certainly not an audio expert. This worked on both the Android 5.1 and 6.1.0 Sofia versions, but you still did not have the possibility to manage the volume. You needed a Xposed module to do that (like XFytTweaker and/or its predecessor XSofiaTweaker). As such the audio went via the "AudioManager.STREAM_MUSIC" channel, so not so difficult or different. With the arrival of the SPDIF modules something seems indeed to be missing. At that time there were several USB-DAC epxerts but I haven't seen them in the forum for a very long time.
any update regarding this one?
Have you figured this out? I have same issue with Android 10 unit. It works only thru UAPP.