87 Commits
Author SHA1 Message Date
emil e1122b48d6 overlay: usb + bluetooth regex typo fix 2026-09-28 17:58:49 +02:00
emil 724916ba47 docs: simplify FEATURES.md, more easily testable 2026-09-28 17:45:56 +02:00
emil dbc16a0665 docs: rename FEATURE_CHECKLIST 2026-09-28 17:45:34 +02:00
emil 52b6c94dc1 init: add some commands to silence gps problems 2026-09-28 17:45:34 +02:00
emil bdda982063 gps: stock gps.conf 2026-09-28 17:45:34 +02:00
emil b4e526b302 docs: feature checklist misc. 2026-09-28 17:45:34 +02:00
emil 2b9a0ab5eb prop: cosmetic 2026-09-28 17:45:34 +02:00
emil f5f5536807 overlay: make more values match stock framework 2026-09-28 17:45:34 +02:00
emil 587da9d6b8 docs: comments; todo; feature checklist 2026-09-28 17:45:34 +02:00
emil e0b730e701 fstab: cosmetic 2026-09-27 14:54:55 +02:00
emil b68810ce88 init: remove unnecessary things from init script 2026-09-27 14:51:36 +02:00
emil 07bf6f83ed init: set swappiness to 100 2026-09-27 14:46:40 +02:00
emil 5ce3242523 overlay: misc. cosmetic 2026-09-27 14:29:39 +02:00
emil 245d0bac33 overlay: make brightness curve match stock 2026-09-27 14:01:51 +02:00
emil 32c6ca722f build: change model to actual tablet model 2026-09-27 14:00:26 +02:00
emil df89f2d643 overlay: formatting, remove copyright notice 2026-09-27 13:45:11 +02:00
emil 0c28ad00a7 backlight: add files for adaptive brightness 2026-09-27 13:44:19 +02:00
emil 8d16b8d368 misc: formatting 2026-09-27 13:34:40 +02:00
emil c8419e37e1 backlight: add support for manual brightness 2026-09-27 13:28:03 +02:00
emil 88fdeb326c prop: remove inline comment 2026-09-27 12:46:30 +02:00
emil b498000627 general: vibrator setup; audio custom policy 2026-09-27 12:00:34 +02:00
emil 4762596bcf audio: copy some .xml's from millet-common 2026-09-27 11:38:32 +02:00
emil 9d0dd5974e audio: mixer_paths from stock 2026-09-27 11:33:37 +02:00
emil 0c13ba1e0a overlay: home button wakes 2026-09-27 10:57:38 +02:00
emil c4169f8005 general: add gpio keys 2026-09-27 10:51:50 +02:00
emil d6dd605ce7 prop: remove irrelevant props, leave only required 2026-09-27 10:28:58 +02:00
emil cda996306a prop: add some display-relevant props 2026-09-27 09:42:42 +02:00
emil a07cea7507 misc: move HAL config from vendor to dt 2026-09-27 08:40:50 +02:00
emil e254159c6d build: drop redundant permission 2026-09-27 08:36:22 +02:00
emil dd3fe249dd general: permissions; lcd density 2026-09-27 08:30:14 +02:00
emil b9086ee31f boardconfig: add qcom bluetooth settings 2026-09-26 21:40:13 +02:00
emil 56f9948ff1 fstab: misc changes, make it closer to similar dts
(cherry picked from commit 5e86cf368e)
2026-09-26 21:22:57 +02:00
emil b7458210b3 boardconfig: display 180 rotation 2026-09-26 13:56:54 +02:00
emil 3587a53571 boardconfig: add boot device 2026-09-26 12:58:26 +02:00
emil f4e8b7f431 boardconfig: you know what, lzma is back 2026-09-23 13:36:56 +02:00
emil 93e383be73 general: get rid of twrp, we have a separate tree 2026-09-22 22:42:01 +02:00
emil f3738aff14 boardconfig: add kernel image name 2026-09-22 21:58:36 +02:00
emil e3ba859101 boardconfig: rubens is not krait (!!) 2026-09-22 21:21:00 +02:00
emil 53765aa576 build: rename makefile again, fixing build 2026-09-22 17:04:45 +02:00
emil 2e227c0941 build: add AndroidProducts 2026-09-22 16:49:57 +02:00
emil 4941bb14ac build: rename main makefile, fix broken include 2026-09-22 16:43:05 +02:00
emil 06598434bf boardconfig: remove unnecessary options, prepare for 16.0 2026-09-22 14:28:45 +02:00
emil d9a57c1024 general: move back to vfat; no f2fs; xz ramdisk 2026-09-21 23:52:52 +02:00
emil 7a0cfb0688 boardconfig: silence SEANDROID bullshit 2026-09-21 08:12:05 +02:00
emil ca495fcd7f general: add support for compiling twrp 2026-09-21 08:06:22 +02:00
emil 2da31b280a boardconfig: kernel cmdline loglevel 8 2026-09-20 23:02:07 +02:00
emil 60ee0d4921 boardconfig: add f2fs support 2026-09-20 23:00:12 +02:00
emil e85242b606 boardconfig: enable zcache 2026-09-20 22:53:12 +02:00
emil 1c2d2c2431 general: sdfat support 2026-09-20 22:43:13 +02:00
emil cc08d9e01e build: remove redundant import 2026-09-20 22:41:57 +02:00
emil 4067e1979c prop: fix incorrect path 2026-09-20 20:42:38 +02:00
emil 90bdf1166e general: add system.prop 2026-09-20 19:28:18 +02:00
emil 6b8aed9d06 general: make recovery fstab fstab.qcom 2026-09-20 17:24:49 +02:00
emil 9ed66ea1ec fstab: data/cache ext4+f2fs; firmware fix 2026-09-20 11:26:25 +02:00
emil 1eb13da7d9 general: remove fstab firmware check; init simplifications 2026-09-20 11:26:25 +02:00
emil 48313f9ad4 docs: update readme bootloop poweroff 2026-09-19 16:49:26 +02:00
emil 06688cf119 fstab: make fstabs match stock + init script more 2026-09-19 16:23:25 +02:00
emil bb4004e67a build: forgot module path 2026-09-19 11:58:20 +02:00
emil f8ef7ecfec fstab: improvements 2026-09-19 11:45:41 +02:00
emil 419d323cc2 build: more import shenanigans 2026-09-19 10:48:18 +02:00
emil 43762db999 build: reorder imports again 2026-09-19 09:53:33 +02:00
emil 404a1b4662 build: different include order 2026-09-19 09:41:04 +02:00
emil 5ddc1f07cc boardconfig: fm build fix 2026-09-19 08:53:37 +02:00
emil 9c6be943b6 general: misc fixes 2026-09-19 08:41:24 +02:00
emil 0790112b5d general: remove redundant configs 2026-09-19 08:38:23 +02:00
emil c484da5896 general: make dt similar to msm8226 2026-09-19 08:33:17 +02:00
emil 224d747b33 build: add dalvik heap config 2026-09-19 08:29:30 +02:00
emil 3ef9520c90 init: wrong file copied 2026-09-18 20:52:30 +02:00
emil 0d39b7151b general: move around files 2026-09-18 20:10:42 +02:00
emil 87dbbf8ded build: simplify makefiles 2026-09-18 20:08:22 +02:00
emil 7ca672fbc0 fstab: add f2fs to data and cache 2026-09-18 19:42:58 +02:00
emil dee8658e0c general: fix boot hang (fstab.qcom, init, etc.) 2026-09-18 19:36:15 +02:00
emil b92a15dad6 boardconfig: change cpu variant 2026-09-17 10:36:50 +02:00
emil 8898760c55 fstab: los has different format than twrp 2026-09-17 10:34:30 +02:00
emil bb062f5746 general: simplifications 2026-09-17 08:33:41 +02:00
emil d8116f4029 fstab: firmware vfat; system non-recoveryonly 2026-09-14 09:45:43 +02:00
emil 97253a13f1 docs: update readme 2026-09-13 23:07:46 +02:00
emil 5a4615191d boardconfig: add recovery density to fix build 2026-09-13 20:03:27 +02:00
emil 800e268388 boardconfig: remove non-available feature 2026-09-13 20:03:27 +02:00
emil dbf57e5b3c general: simplifications; fstab changes
fstab.qcom now matches millet-common.
2026-09-13 20:03:11 +02:00
emil a8a8ff7dee boardconfig: custom bootimage; recovery lzma 2026-09-13 20:02:38 +02:00
emil f3186853b8 bluetooth: add buildcfg 2026-09-13 20:02:14 +02:00
emil 3a769be877 init: fix makefile 2026-09-13 20:02:14 +02:00
emil ec06aa6f95 init: create init no-op lib 2026-09-13 20:02:14 +02:00
emil 40f75e779a general: fresh device tree 2026-09-13 20:02:14 +02:00
emil a5b25ea850 general: vendor extraction
Add proprietary blob extraction scripts and list. Based on millet-common, milletlte and verified against mounted system image (275/275 files).
2026-09-13 20:02:14 +02:00
emil 376b6fa86c Initial commit 2026-09-05 20:26:02 +02:00
34 changed files with 2181 additions and 1419 deletions
-5
View File
@@ -1,5 +0,0 @@
LOCAL_PATH := $(call my-dir)
ifeq ($(TARGET_DEVICE),rubenslte)
include $(call all-subdir-makefiles,$(LOCAL_PATH))
endif
+1 -1
View File
@@ -1 +1 @@
PRODUCT_MAKEFILES := $(LOCAL_DIR)/omni_rubenslte.mk
PRODUCT_MAKEFILES := $(LOCAL_DIR)/lineage_rubenslte.mk
+45 -38
View File
@@ -1,50 +1,57 @@
DEVICE_TREE := device/samsung/rubenslte
BOARD_CUSTOM_BOOTIMG_MK := $(DEVICE_TREE)/mkbootimg.mk
-include device/samsung/msm8226-common/BoardConfigCommon.mk
BOARD_KERNEL_SEPARATED_DT := true
INSTALLED_DTIMAGE_TARGET = $(PRODUCT_OUT)/dt.img
BOARD_MKBOOTIMG_ARGS = --kernel_offset 0x00008000 --ramdisk_offset 0x02000000 --tags_offset 0x01e00000 --dt $(INSTALLED_DTIMAGE_TARGET)
TARGET_ARCH := arm
TARGET_OTA_ASSERT_DEVICE := rubenslte,rubensltexx
TARGET_CPU_VARIANT := cortex-a7
TARGET_ARCH_VARIANT := armv7-a-neon
TARGET_CPU_ABI := armeabi-v7a
DEVICE_PATH := device/samsung/rubenslte
BOARD_VENDOR := samsung
TARGET_BOARD_PLATFORM := msm8226
TARGET_BOARD_PLATFORM_GPU := qcom-adreno305
TARGET_BOOTLOADER_BOARD_NAME := MSM8226
TARGET_KERNEL_SOURCE := kernel/samsung/rubenslte
TARGET_KERNEL_CONFIG := lineage_rubenslte_defconfig
KERNEL_TOOLCHAIN_PREFIX := arm-eabi-
BOARD_KERNEL_CMDLINE := console=null androidboot.console=null androidboot.hardware=qcom user_debug=23 androidboot.selinux=permissive
# Kernel
BOARD_KERNEL_BASE := 0x00000000
BOARD_KERNEL_PAGESIZE := 2048
BOARD_KERNEL_SEPARATED_DT := true
BOARD_KERNEL_CMDLINE := androidboot.hardware=qcom androidboot.selinux=permissive \
androidboot.bootdevice=msm_sdcc.1 zcache.enabled=1 user_debug=23
BOARD_KERNEL_IMAGE_NAME := zImage
TARGET_KERNEL_SOURCE := kernel/samsung/rubenslte
TARGET_KERNEL_CONFIG := lineage_rubenslte_defconfig
BOARD_HAS_LARGE_FILESYSTEM := true
BOARD_USES_QC_TIME_SERVICES := true
BOARD_IMAGE_PARTITION_SIZE := 10485248
BOARD_BOOTIMAGE_PARTITION_SIZE := $(BOARD_IMAGE_PARTITION_SIZE)
BOARD_RECOVERYIMAGE_PARTITION_SIZE := $(BOARD_IMAGE_PARTITION_SIZE)
# Partitions
BOARD_BOOTIMAGE_PARTITION_SIZE := 10485248
BOARD_RECOVERYIMAGE_PARTITION_SIZE := 10485248
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 2411724288
BOARD_USERDATAIMAGE_PARTITION_SIZE := 12843662336
BOARD_CACHEIMAGE_PARTITION_SIZE := 314572288
BOARD_USERDATAIMAGE_PARTITION_SIZE := 12843662336
BOARD_FLASH_BLOCK_SIZE := 131072
RECOVERY_SDCARD_ON_DATA := true
TARGET_USE_CUSTOM_LUN_FILE_PATH := "/sys/devices/platform/msm_hsusb/gadget/lun%d/file"
# Boot & recovery
BOARD_CUSTOM_BOOTIMG := true
BOARD_CUSTOM_BOOTIMG_MK := hardware/samsung/mkbootimg.mk
BOARD_MKBOOTIMG_ARGS := --kernel_offset 0x00008000 --ramdisk_offset 0x02000000 --tags_offset 0x01e00000
LZMA_RAMDISK_TARGETS := recovery
TARGET_SCREEN_HEIGHT := 1280
TARGET_SCREEN_WIDTH := 800
TARGET_RECOVERY_PIXEL_FORMAT := "RGBX_8888"
# Bluetooth
BOARD_HAVE_BLUETOOTH_QCOM := true
QCOM_BT_USE_BTNV := true
BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := $(DEVICE_PATH)/bluetooth
TW_BRIGHTNESS_PATH := "/sys/class/leds/lcd-backlight/brightness"
TW_MAX_BRIGHTNESS := 255
TW_DEFAULT_BRIGHTNESS := 128
TW_NO_REBOOT_BOOTLOADER := true
TW_HAS_DOWNLOAD_MODE := true
TW_MTP_DEVICE := "/dev/mtp_usb"
TW_INCLUDE_CRYPTO := true
# Audio
USE_CUSTOM_AUDIO_POLICY := 1
USE_XML_AUDIO_POLICY_CONF := 1
# Lights
TARGET_SPECIFIC_HEADER_PATH := $(DEVICE_PATH)/include
# Radio
BOARD_HAVE_QCOM_FM := true
# Recovery
TARGET_RECOVERY_DENSITY := hdpi
TARGET_RECOVERY_FSTAB := $(DEVICE_PATH)/rootdir/etc/fstab.qcom
# Miscellaneous
TARGET_SYSTEM_PROP += $(DEVICE_PATH)/system.prop
SF_PRIMARY_DISPLAY_ORIENTATION := 180 # The panel is mounted upside down.
# Vibrator HIDL manifest fragment (appended to msm8226-common's device manifest)
DEVICE_MANIFEST_FILE += $(DEVICE_PATH)/manifest.xml
-include vendor/samsung/rubenslte/BoardConfigVendor.mk
+83
View File
@@ -0,0 +1,83 @@
# SM-T365 feature checklist
Legend: `[ ]` untested, `[x]` works, `[~]` partial / known issue.
## Boot
- [x] Boots
- [x] Setup wizard
- [x] Reboot / power off
- [x] Date & time
- [ ] No SELinux denials (`dmesg | grep avc`)
## Display & touch
- [x] Display (no artifacts)
- [x] Manual brightness
- [x] Adaptive brightness
- [x] Auto-rotate
- [x] Touch / multitouch
- [x] Night Light
## Audio
- [x] Speaker
- [x] Headphones
- [x] Microphone
- [x] Volume adjustment
## Camera
- [ ] Rear photo
- [ ] Rear video
- [ ] Flash / torch
- [ ] Front photo / video
## Wi-Fi
- [x] Connect
- [x] Hotspot
- [ ] Reconnect after sleep
## Bluetooth
- [ ] Pair
- [ ] A2DP
- [ ] BLE
## Cellular
- [ ] SIM / network
- [ ] Mobile data
- [ ] Calls
- [ ] SMS
## GPS
- [x] Fix
- [x] Location in Maps
- [ ] GLONASS
## Sensors
- [x] Accelerometer
- [x] Light
- [x] Proximity
## NFC
- [ ] Tag read
## USB
- [x] adb
- [x] MTP / PTP
- [x] Charging
- [ ] Tethering
## Storage
- [ ] Internal
- [ ] microSD
## Power
- [x] Battery %
- [x] Charging status
- [x] Offline charging animation
## Buttons & haptics
- [x] Power
- [x] Volume
- [x] Home / Recents / Back
- [x] Vibrator
## Security
- [ ] Lockscreen
+2 -2
View File
@@ -208,7 +208,7 @@ If you develop a new program, and you want it to be of the greatest possible use
To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found.
twrp_device_samsung_rubenslte
android_device_samsung_rubenslte
Copyright (C) 2026 rubenslte
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
@@ -221,7 +221,7 @@ Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode:
twrp_device_samsung_rubenslte Copyright (C) 2026 rubenslte
android_device_samsung_rubenslte Copyright (C) 2026 rubenslte
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details.
+8 -7
View File
@@ -1,6 +1,6 @@
# android_device_samsung_rubenslte
Device tree for rubenslte (TWRP)
Device tree for rubenslte
## Device information
@@ -27,11 +27,12 @@ Device tree for rubenslte (TWRP)
## Flashing
| Mode | Key combo |
|----------|---------------------|
| Recovery | Vol+ & Home & Power |
| Download | Vol- & Home & Power |
| Mode | Key combo |
|---------------------------|---------------------|
| Recovery | Vol+ & Home & Power |
| Download | Vol- & Home & Power |
| Turn off when bootlooping | Vol- & Power |
Boot into download mode, then run `heimdall flash --RECOVERY
recovery.img`.
Boot into recovery and flash the ROM zip, or extract partitions and
flash using `heimdall` in download mode.
+4
View File
@@ -0,0 +1,4 @@
# SM-T365 to-do list
- [ ] Check if brightness curve and min/max values truly fit the
stock; they seem to be a bit excessive for the min I think.
+54
View File
@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<audio_effects_conf version="2.0" xmlns="http://schemas.android.com/audio/audio_effects_conf/v2_0">
<libraries>
<library name="bundle" path="libbundlewrapper.so"/>
<library name="reverb" path="libreverbwrapper.so"/>
<library name="qcbassboost" path="libqcbassboost.so"/>
<library name="qcvirt" path="libqcvirt.so"/>
<library name="qcreverb" path="libqcreverb.so"/>
<library name="visualizer_sw" path="libvisualizer.so"/>
<library name="visualizer_hw" path="libqcomvisualizer.so"/>
<library name="downmix" path="libdownmix.so"/>
<library name="loudness_enhancer" path="libldnhncr.so"/>
<library name="proxy" path="libeffectproxy.so"/>
<library name="offload_bundle" path="libqcompostprocbundle.so"/>
<library name="audio_pre_processing" path="libqcomvoiceprocessing.so"/>
</libraries>
<effects>
<effectProxy name="bassboost" library="proxy" uuid="14804144-a5ee-4d24-aa88-0002a5d5c51b">
<libsw library="qcbassboost" uuid="23aca180-44bd-11e2-bcfd-0800200c9a66"/>
<libhw library="offload_bundle" uuid="2c4a8c24-1581-487f-94f6-0002a5d5c51b"/>
</effectProxy>
<effectProxy name="virtualizer" library="proxy" uuid="d3467faa-acc7-4d34-acaf-0002a5d5c51b">
<libsw library="qcvirt" uuid="e6c98a16-22a3-11e2-b87b-f23c91aec05e"/>
<libhw library="offload_bundle" uuid="509a4498-561a-4bea-b3b1-0002a5d5c51b"/>
</effectProxy>
<effectProxy name="equalizer" library="proxy" uuid="c8e70ecd-48ca-456e-8a4f-0002a5d5c51b">
<libsw library="bundle" uuid="ce772f20-847d-11df-bb17-0002a5d5c51b"/>
<libhw library="offload_bundle" uuid="a0dac280-401c-11e3-9379-0002a5d5c51b"/>
</effectProxy>
<effect name="volume" library="bundle" uuid="119341a0-8469-11df-81f9-0002a5d5c51b"/>
<effectProxy name="reverb_env_aux" library="proxy" uuid="48404ac9-d202-4ccc-bf84-0002a5d5c51b">
<libsw library="qcreverb" uuid="a8c1e5f3-293d-43cd-95ec-d5e26c02e217"/>
<libhw library="offload_bundle" uuid="79a18026-18fd-4185-8233-0002a5d5c51b"/>
</effectProxy>
<effectProxy name="reverb_env_ins" library="proxy" uuid="b707403a-a1c1-4291-9573-0002a5d5c51b">
<libsw library="qcreverb" uuid="791fff8b-8129-4655-83a4-59bc61034c3a"/>
<libhw library="offload_bundle" uuid="eb64ea04-973b-43d2-8f5e-0002a5d5c51b"/>
</effectProxy>
<effectProxy name="reverb_pre_aux" library="proxy" uuid="1b78f587-6d1c-422e-8b84-0002a5d5c51b">
<libsw library="qcreverb" uuid="53ef1db5-c0c0-445b-b060-e34d20ebb70a"/>
<libhw library="offload_bundle" uuid="6987be09-b142-4b41-9056-0002a5d5c51b"/>
</effectProxy>
<effectProxy name="reverb_pre_ins" library="proxy" uuid="f3e178d2-ebcb-408e-8357-0002a5d5c51b">
<libsw library="qcreverb" uuid="b08a0e38-22a5-11e2-b87b-f23c91aec05e"/>
<libhw library="offload_bundle" uuid="aa2bebf6-47cf-4613-9bca-0002a5d5c51b"/>
</effectProxy>
<effectProxy name="visualizer" library="proxy" uuid="1d0a1a53-7d5d-48f2-8e71-27fbd10d842c">
<libsw library="visualizer_sw" uuid="d069d9e0-8329-11df-9168-0002a5d5c51b"/>
<libhw library="visualizer_hw" uuid="7a8044a0-1a71-11e3-a184-0002a5d5c51b"/>
</effectProxy>
<effect name="downmix" library="downmix" uuid="93f04452-e4fe-41cc-91f9-e475b6d1d69f"/>
<effect name="loudness_enhancer" library="loudness_enhancer" uuid="fa415329-2034-4bea-b5dc-5b381c8d1e2c"/>
</effects>
</audio_effects_conf>
+94
View File
@@ -0,0 +1,94 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright (c) 2014, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
<!-- met: -->
<!-- * Redistributions of source code must retain the above copyright -->
<!-- notice, this list of conditions and the following disclaimer. -->
<!-- * Redistributions in binary form must reproduce the above -->
<!-- copyright notice, this list of conditions and the following -->
<!-- disclaimer in the documentation and/or other materials provided -->
<!-- with the distribution. -->
<!-- * Neither the name of The Linux Foundation nor the names of its -->
<!-- contributors may be used to endorse or promote products derived -->
<!-- from this software without specific prior written permission. -->
<!-- -->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<audio_platform_info>
<acdb_ids>
<!-- Output devices -->
<device name="SND_DEVICE_OUT_SPEAKER" acdb_id="15" />
<device name="SND_DEVICE_OUT_SPEAKER_REVERSE" acdb_id="15" />
<device name="SND_DEVICE_OUT_VOICE_SPEAKER" acdb_id="15" />
<device name="SND_DEVICE_OUT_USB_HEADSET" acdb_id="98" />
<!-- Input devices -->
<device name="SND_DEVICE_IN_HANDSET_DMIC" acdb_id="4" />
<device name="SND_DEVICE_IN_SPEAKER_MIC" acdb_id="4" />
<device name="SND_DEVICE_IN_SPEAKER_DMIC" acdb_id="4" />
<device name="SND_DEVICE_IN_VOICE_DMIC" acdb_id="4" />
<device name="SND_DEVICE_IN_VOICE_REC_MIC" acdb_id="53" />
<device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC" acdb_id="4" />
<device name="SND_DEVICE_IN_VOICE_SPEAKER_DMIC" acdb_id="4" />
<device name="SND_DEVICE_IN_VOIP_HANDSET_MIC" acdb_id="57" />
<device name="SND_DEVICE_IN_VOIP_SPEAKER_MIC" acdb_id="64" />
</acdb_ids>
<backend_names>
<!-- empty -->
</backend_names>
<pcm_ids>
<!-- empty -->
</pcm_ids>
<device_names>
<!-- Output devices -->
<device name="SND_DEVICE_OUT_HEADPHONES" alias="headset" />
<device name="SND_DEVICE_OUT_VOICE_HANDSET" alias="voice-call-handset" />
<device name="SND_DEVICE_OUT_VOICE_SPEAKER" alias="voice-call-speaker" />
<device name="SND_DEVICE_OUT_VOICE_HEADPHONES" alias="voice-call-headset" />
<device name="SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES" alias="TTY-full" />
<device name="SND_DEVICE_OUT_VOICE_TTY_VCO_HEADPHONES" alias="TTY-headset" />
<device name="SND_DEVICE_OUT_VOICE_TTY_HCO_HANDSET" alias="TTY-handset" />
<!-- Input devices -->
<device name="SND_DEVICE_IN_HANDSET_MIC" alias="rec-main-mic" />
<device name="SND_DEVICE_IN_HANDSET_DMIC" alias="voice-call-main-mic" />
<device name="SND_DEVICE_IN_HANDSET_DMIC_NS" alias="voice-call-NS-mic-handset" />
<device name="SND_DEVICE_IN_HANDSET_DMIC_AEC" alias="voice-call-main-mic" />
<device name="SND_DEVICE_IN_HANDSET_DMIC_AEC_NS" alias="voice-call-main-mic" />
<device name="SND_DEVICE_IN_SPEAKER_MIC" alias="rec-main-mic" />
<device name="SND_DEVICE_IN_SPEAKER_DMIC" alias="voice-call-main-mic" />
<device name="SND_DEVICE_IN_SPEAKER_DMIC_NS" alias="voice-call-NS-mic-speaker" />
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC" alias="voice-call-main-mic" />
<device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS" alias="voice-call-main-mic" />
<device name="SND_DEVICE_IN_HEADSET_MIC" alias="rec-headset-mic" />
<device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" alias="rec-main-mic" />
<device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC" alias="voice-call-main-mic" />
<device name="SND_DEVICE_IN_VOICE_HEADSET_MIC" alias="voice-call-headset-mic" />
<device name="SND_DEVICE_IN_CAMCORDER_MIC" alias="rec-main-mic" />
<device name="SND_DEVICE_IN_VOICE_DMIC" alias="voice-call-main-mic" />
<device name="SND_DEVICE_IN_VOICE_SPEAKER_DMIC" alias="voice-call-main-mic" />
<device name="SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC" alias="TTY-full-mic" />
<device name="SND_DEVICE_IN_VOICE_TTY_VCO_HANDSET_MIC" alias="TTY-vco-mic" />
<device name="SND_DEVICE_IN_VOICE_TTY_HCO_HEADSET_MIC" alias="TTY-headset-mic" />
<device name="SND_DEVICE_IN_VOICE_REC_MIC" alias="vr-main-mic" />
<device name="SND_DEVICE_IN_VOICE_REC_MIC_NS" alias="svoice-NS-mic" />
<device name="SND_DEVICE_IN_VOICE_REC_DMIC_STEREO" alias="vr-main-mic" />
<device name="SND_DEVICE_IN_HANDSET_STEREO_DMIC" alias="rec-stereo-mic" />
<device name="SND_DEVICE_IN_SPEAKER_STEREO_DMIC" alias="rec-stereo-mic" />
<device name="SND_DEVICE_IN_VOIP_SPEAKER_MIC" alias="voip-main-mic-others" />
</device_names>
</audio_platform_info>
+218
View File
@@ -0,0 +1,218 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- 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.
-->
<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"/>
<!-- Modules section:
There is one section per audio HW module present on the platform.
Each module section will contains two mandatory tags for audio HAL “halVersion” and “name”.
The module names are the same as in current .conf file:
“primary”, “A2DP”, “remote_submix”, “USB”
Each module will contain the following sections:
“devicePorts”: a list of device descriptors for all input and output devices accessible via this
module.
This contains both permanently attached devices and removable devices.
“mixPorts”: listing all output and input streams exposed by the audio HAL
“routes”: list of possible connections between input and output devices or between stream and
devices.
"route": is defined by an attribute:
-"type": <mux|mix> means all sources are mutual exclusive (mux) or can be mixed (mix)
-"sink": the sink involved in this route
-"sources": all the sources than can be connected to the sink via vis route
“attachedDevices”: permanently attached devices.
The attachedDevices section is a list of devices names. The names correspond to device names
defined in <devicePorts> section.
“defaultOutputDevice”: device to be used by default when no policy rule applies
-->
<modules>
<!-- Primary Audio HAL -->
<module name="primary" halVersion="2.0">
<attachedDevices>
<item>Earpiece</item>
<item>Speaker</item>
<item>Built-In Mic</item>
<item>Built-In Back Mic</item>
<item>FM Tuner</item>
<item>Telephony Rx</item>
<item>Telephony Tx</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,48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="low_latency" role="source" flags="AUDIO_OUTPUT_FLAG_FAST">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="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"/>
<profile name="" format="AUDIO_FORMAT_AAC"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_MONO"/>
<profile name="" format="AUDIO_FORMAT_AAC_LC"
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,48000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="voip_rx" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000" channelMasks="AUDIO_CHANNEL_OUT_MONO"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_VOIP_RX" />
</mixPort>
<mixPort name="incall_music" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_OUT_MONO"
flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_INCALL_MUSIC" />
</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,AUDIO_CHANNEL_IN_5POINT1"/>
</mixPort>
<mixPort name="voice_rx" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,48000" channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
</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="48000" channelMasks="AUDIO_CHANNEL_IN_MONO"/>
</devicePort>
<devicePort tagName="Speaker" role="sink" type="AUDIO_DEVICE_OUT_SPEAKER" address="">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" 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="16000,48000" 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="16000,48000" 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,48000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
</devicePort>
<devicePort tagName="HDMI" type="AUDIO_DEVICE_OUT_AUX_DIGITAL" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
</devicePort>
<devicePort tagName="Proxy" type="AUDIO_DEVICE_OUT_PROXY" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000" channelMasks="dynamic"/>
</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>
<devicePort tagName="FM Tuner" type="AUDIO_DEVICE_IN_FM_TUNER" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
</devicePort>
</devicePorts>
<!-- route declaration, i.e. list all available sources for a given sink -->
<routes>
<route type="mix" sink="Earpiece"
sources="primary output,low_latency,compressed_offload,BT SCO Headset Mic,voip_rx"/>
<route type="mix" sink="Speaker"
sources="primary output,low_latency,compressed_offload,BT SCO Headset Mic,Telephony Rx,voip_rx"/>
<route type="mix" sink="Wired Headset"
sources="primary output,low_latency,compressed_offload,BT SCO Headset Mic,Telephony Rx,incall_music,voip_rx"/>
<route type="mix" sink="Wired Headphones"
sources="primary output,low_latency,compressed_offload,BT SCO Headset Mic,Telephony Rx,incall_music,voip_rx"/>
<route type="mix" sink="Telephony Tx"
sources="voice_tx"/>
<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="voice_rx"
sources="Telephony Rx"/>
<route type="mix" sink="HDMI"
sources="primary output,low_latency,compressed_offload"/>
<route type="mix" sink="Proxy"
sources="primary output,low_latency,compressed_offload"/>
</routes>
</module>
<!-- A2dp Audio HAL -->
<xi:include href="/vendor/etc/a2dp_audio_policy_configuration.xml"/>
<!-- Usb Audio HAL -->
<xi:include href="/vendor/etc/usb_audio_policy_configuration.xml"/>
<!-- Remote Submix Audio HAL -->
<xi:include href="/vendor/etc/r_submix_audio_policy_configuration.xml"/>
</modules>
<!-- End of Modules section -->
<!-- Volume section -->
<xi:include href="/vendor/etc/audio_policy_volumes.xml"/>
<xi:include href="/vendor/etc/default_volume_tables.xml"/>
<!-- End of Volume section -->
</audioPolicyConfiguration>
File diff suppressed because it is too large Load Diff
+9
View File
@@ -0,0 +1,9 @@
#ifndef _BDROID_BUILDCFG_H
#define _BDROID_BUILDCFG_H
#define BTM_DEF_LOCAL_NAME "Samsung Galaxy Tab Active"
#define BTM_WBS_INCLUDED TRUE
#define BTIF_HF_WBS_PREFERRED TRUE
#endif
+1
View File
@@ -0,0 +1 @@
/system/lib/hw/sensors.msm8226.so
-15
View File
@@ -1,15 +0,0 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := \
dtbtool.c
LOCAL_CFLAGS += \
-Wall
## Hybrid v1/v2 dtbTool. Use a different name to avoid conflicts with copies in device repos
LOCAL_MODULE := dtbToolLineage
LOCAL_MODULE_TAGS := optional
include $(BUILD_HOST_EXECUTABLE)
-1054
View File
File diff suppressed because it is too large Load Diff
-235
View File
@@ -1,235 +0,0 @@
Copyright (c) 2012-2014, The Linux Foundation. All rights reserved.
Redistribution and use in source form and compiled forms (SGML, HTML,
PDF, PostScript, RTF and so forth) with or without modification, are
permitted provided that the following conditions are met:
Redistributions in source form must retain the above copyright
notice, this list of conditions and the following disclaimer as the
first lines of this file unmodified.
Redistributions in compiled form (transformed to other DTDs,
converted to PDF, PostScript, RTF and other formats) must reproduce
the above copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided with
the distribution.
THIS DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AND
NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD
DOCUMENTATION PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.
Android - Table of Device Tree
==============================
0) Document revision
v1.0 - Initial version (dng)
v1.1 - Add v2 format to allow subtype (dng)
1) Android boot image:
----------------------
1.1) Header:
1) Magic (8B)
2) kernel size (4B)
3) kernel addr (4B)
4) ramdisk size (4B)
5) ramdisk addr (4B)
6) 2ndary size (4B)
7) 2ndary addr (4B)
8) tags addr (4B)
9) page size (4B)
10) unused #1 (4B) (zero in standard Android)
11) unused #2 (4B) (zero in standard Android)
12) product name (16B)
13) kernel cmdline (512B)
14) id (8B)
1.2) Layout:
A) header (as above - 1 page)
B) kernel (n pages)
C) ramdisk (m pages)
D) second stage (o pages)
2) QC table of device tree
--------------------------
2.1) Changes:
i) use "unused #1, #2" members in existing boot image
header to point to new table of device tree
(#1 - size of QC table of DT)
ii) append table of device tree (described later)
after "D) second stage"
2.2) Format:
size
x +------------------+
| | MAGIC ("QCDT") | 4B
| +------------------+
header | VERSION | uint32 (version 3)
| +------------------+
| | num of DTBs | uint32 (number of DTB entries)
x +------------------+
| | platform id #1 | uint32 (e.g. ID for MSM8974)
| +------------------+
| | variant id #1 | uint32 (e.g. ID for CDP, MTP)
| +------------------+
| | subtype id #1 | uint32 (e.g. ID for subtype) (QCDT v2)
device +------------------+
#1 | soc rev #1 | uint32 (e.g. MSM8974 v2)
entry +------------------+
| | pmic0 #1 | uint32 (pmic0-> first smallest SID of existing pmic)
| +------------------+
| | pmic1 #1 | uint32 (pmic1-> secondary smallest SID of existing pmic)
| +------------------+
| | pmic2 #1 | uint32 (pmic2-> third smallest SID of existing pmic)
| +------------------+
| | pmic3 #1 | uint32 (pmic3-> fourth smallest SID of existing pmic)
| +------------------+
| | offset #1 | uint32 (byte offset from start/before MAGIC
| +------------------+ to DTB entry)
| | size #1 | uint32 (size in bytes of DTB blob)
x +------------------+
. .
. . (repeat)
. .
x +------------------+
| | platform id #Z | uint32 (e.g. ID for MSM8974)
| +------------------+
device | variant id #Z | uint32 (e.g. ID for CDP, MTP)
#Z +------------------+
entry | subtype id #Z | uint32 (e.g. ID for subtype) (QCDT v2)
(last) +------------------+
| | soc rev #Z | uint32 (e.g. MSM8974 v2)
| +------------------+
| | pmic0 #1 | uint32 (pmic0-> first smallest SID of existing pmic)
| +------------------+
| | pmic1 #1 | uint32 (pmic1-> secondary smallest SID of existing pmic)
| +------------------+
| | pmic2 #1 | uint32 (pmic2-> third smallest SID of existing pmic)
| +------------------+
| | pmic3 #1 | uint32 (pmic3-> fourth smallest SID of existing pmic)
| +------------------+
| | offset #Z | uint32 (byte offset from start/before MAGIC
x +------------------+ to DTB entry)
| 0 ("zero") | uint32 (end of list delimiter)
+------------------+ to DTB entry)
| padding | variable length for next DTB to start on
+------------------+ page boundary
| DTB #1 | variable (start is page aligned)
| |
| |
+------------------+
| padding | variable length for next DTB to start on
+------------------+ page boundary
.
.
.
+------------------+
| DTB #Z (last) | variable (start is page aligned)
| |
| |
+------------------+
3) Operations
-------------
3.1) Build-time:
1) Each DTS per device will add a "qcom,msm-id" entry
e.g. for msm8974-sim.dts, add
qcom,msm-id = <x y z>;
or
qcom,msm-id = <x z>;
qcom,board-id = <y y'>;
or
qcom,msm-id = <x z>;
qcom,board-id = <y y'>;
qcom,pmic-id = <a b c d>;
x = ID for msm8974
y = ID for CDP, MTP, etc.
y' = ID for subtype (assumed zero if absent)
z = ID for soc revision
a = pmic0
b = pmic1
c = pmic2
d = pmic3
SBL populates the pmic entries always in ascending order of SID, so
pmic0-> SID0, pmic1-> SID1, pmic2-> SID2, pmic3-> SID3.
e.g. for qcom,pmic-id = <pmic0 pmic1 pmic2 pmic3>
Board X = MSM8994 + PM8994 + PMI8994 (Existing boards [ROW])
Board Y = MSM8994 + PM8994 + PMI8994 + PM8004 (Internal SS board variant)
Board Z = MSM8994 + PM8994 + PM8004 (Boards that SS will be making)
For all boards X, Y, and Z, PMICs have the following SIDs and REVID SUBTYPEs
(i.e. PMIC Model):
PM8994 - SID 0 and 1; subtype = 9
PMI8994 - SID 2 and 3; subtype = 10
PM8004 - SID 4 and 5; subtype = 12
LK using SMEM PMIC info(1 as major and 0 as minor version for example):
Board X: qcom,pmic-id = <0x0109 0x010A 0x0 0x0>;
Board Y: qcom,pmic-id = <0x0109 0x010A 0x010C 0x0>;
Board Z: qcom,pmic-id = <0x0109 0x010C 0x0 0x0>;
The entry can optionally be an array:
qcom,msm-id = <x1 y1 z1>, <x2 y2 z2>, ...;
or
qcom,msm-id = <x1 z1>, <x2 z2>, ...;
qcom,board-id = <y1 y1'>, ...;
or
qcom,msm-id = <x1 z1>, <x2 z2>, ...;
qcom,board-id = <y1 y1'>, ...;
qcom,pmic-id = <a1 b1 c1 d1>, ...;
Note that qcom,msm-id, qcom,board-id and qcom,pmic-id are not matched pairs.
2) Kernel compile will generate the DTB
3) Android build will run a new tool (dtbTool)
a) scan the DTB output directory for all compiled DTB
b) decompile the DTB for "qcom,msm-id"/"qcom,board-id"/"qcom,pmic-id"
c) generate the QC table of device tree in sorted
order (platform, variant, subtype, soc rev, pmic0, pmic1, pmic2, pmic3)
d) modified mkbootimg will merge new table of DT
3.2) Run-time:
1) LK bootloader will obtain platform id/variant/subtype/soc rev/major ver/minor ver
/pmic0/pmic1/pmic2/pmic3 info either from early bootloaders or via other means
2) LK bootloader will check entries #10 for non-zero
value (set to zero for standard boot.img). If the
value is non-zero, refer to page section after
the "second stage" in the boot.img layout
3) Check QCDT magic
4) Check QCDT version (optional LK to handle multiple
QCDT version)
5) LK scans through the QCDT table to look for matching
entry. Search order is:
1) msm ID exact match
2) Platform type exact match
3) subtype ID exact match
4) HLOS subtype exact match
5) Pmic0 model ID exact match
6) Pmic1 model ID exact match
7) Pmic2 model ID exact match
8) Pmic3 model ID exact match
9) foundry ID, look for exact match, if not found choose
device tree with foundry-id(0x0)
10) select the highest soc rev in QCDT that is
equal to or lower than the runtime detected soc rev
11) select the highest major&minor ver in QCDT that is
equal to or lower than the runtime detected major ver
12) select the highest pmic0 major&minor in QCDT that is
equal to or lower than the runtime detected pmic0
13) select the highest pmic1 major&minor in QCDT that is
equal to or lower than the runtime detected pmic1
14) select the highest pmic2 major&minor in QCDT that is
equal to or lower than the runtime detected pmic2
15) select the highest pmic3 major&minor in QCDT that is
equal to or lower than the runtime detected pmic3
6) Load the matching DTB blob to the tags addr
7) LK pass the correct DTB to the kernel
+22
View File
@@ -0,0 +1,22 @@
# GPS configuration for rubenslte (SM-T365), taken from the stock ROM.
# The msm8226-common default disables AGPS (CAPABILITIES=0x31, no XTRA),
# which leaves the GNSS engine in standalone-only mode.
XTRA_SERVER_1=http://xtrapath1.izatcloud.net/xtra2.bin
XTRA_SERVER_2=http://xtrapath2.izatcloud.net/xtra2.bin
XTRA_SERVER_3=http://xtrapath3.izatcloud.net/xtra2.bin
XTRA_VERSION_CHECK=0
ERR_ESTIMATE=0
NTP_SERVER=time.gpsonextra.net
DEBUG_LEVEL = 2
INTERMEDIATE_POS=0
SUPL_VER=0x10000
SUPL_ES=0
USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL=1
SUPL_MODE=3
CAPABILITIES=0x37
LPP_PROFILE = 0
NMEA_PROVIDER=1
SGLTE_TARGET=0
A_GLONASS_POS_PROTOCOL_SELECT = 0
DEL_EPH_ONLY = 0
+14
View File
@@ -0,0 +1,14 @@
#ifndef SAMSUNG_LIGHTS_H
#define SAMSUNG_LIGHTS_H
/*
* Board specific nodes
*
* rubenslte exposes the panel backlight through the mdss_fb LED class
* device. There is no touchkey backlight or notification LED on this
* device.
*/
#define PANEL_BRIGHTNESS_NODE "/sys/class/leds/lcd-backlight/brightness"
#define PANEL_MAX_BRIGHTNESS_NODE "/sys/class/leds/lcd-backlight/max_brightness"
#endif // SAMSUNG_LIGHTS_H
+15
View File
@@ -0,0 +1,15 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_C_INCLUDES := \
device/samsung/msm8226-common/init \
system/core/base/include \
system/core/init
LOCAL_CFLAGS := -Wall
LOCAL_SRC_FILES := init_msm.cpp
LOCAL_MODULE := libinit_msm
include $(BUILD_STATIC_LIBRARY)
+4
View File
@@ -0,0 +1,4 @@
#include <vendor_init.h>
void vendor_load_properties() {
}
+4
View File
@@ -0,0 +1,4 @@
key 115 VOLUME_UP
key 158 BACK
key 172 HOME
key 254 APP_SWITCH
+63
View File
@@ -0,0 +1,63 @@
$(call inherit-product, frameworks/native/build/tablet-7in-hdpi-1024-dalvik-heap.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base_telephony.mk)
$(call inherit-product, vendor/lineage/config/common_full_phone.mk)
# ^ It's pretty much like tablet, except with telephony. The Tab
# Active has GSM, so this is fine.
PRODUCT_NAME := lineage_rubenslte
PRODUCT_BRAND := samsung
PRODUCT_MANUFACTURER := samsung
# The following is just like the stock ROM.
PRODUCT_MODEL := SM-T365
PRODUCT_DEVICE := rubenslte
PRODUCT_CHARACTERISTICS := tablet
PRODUCT_GMS_CLIENTID_BASE := android-samsung
TARGET_SCREEN_HEIGHT := 1280
TARGET_SCREEN_WIDTH := 800
PRODUCT_AAPT_PREF_CONFIG := hdpi
# Fstab and init
PRODUCT_PACKAGES += fstab.qcom init.target.rc
# Vibrator
PRODUCT_PACKAGES += android.hardware.vibrator@1.0-impl
# Lights
PRODUCT_PACKAGES += android.hardware.light@2.0-service.samsung
# Overlays
DEVICE_PACKAGE_OVERLAYS += $(LOCAL_PATH)/overlay $(LOCAL_PATH)/overlay-lineage
# Permissions
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml \
# Sensors
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/sensors/_hals.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/_hals.conf
# Keylayout
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/keylayout/gpio-keys.kl:system/usr/keylayout/gpio-keys.kl
# Audio
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/audio/audio_effects.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.xml \
$(LOCAL_PATH)/audio/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \
$(LOCAL_PATH)/audio/audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_configuration.xml \
$(LOCAL_PATH)/audio/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \
frameworks/av/services/audiopolicy/config/a2dp_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration.xml \
frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml
# GPS
# Overrides the msm8226-common gps.conf (first PRODUCT_COPY_FILES entry
# for a destination wins), enabling AGPS/XTRA as in the stock ROM.
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/gps/gps.conf:system/etc/gps.conf
$(call inherit-product-if-exists, vendor/samsung/rubenslte/rubenslte-vendor.mk)
$(call inherit-product, device/samsung/msm8226-common/msm8226.mk)
+20
View File
@@ -0,0 +1,20 @@
<manifest version="1.0" type="device">
<hal format="hidl">
<name>android.hardware.light</name>
<transport>hwbinder</transport>
<version>2.0</version>
<interface>
<name>ILight</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.vibrator</name>
<transport arch="32">passthrough</transport>
<version>1.0</version>
<interface>
<name>IVibrator</name>
<instance>default</instance>
</interface>
</hal>
</manifest>
-26
View File
@@ -1,26 +0,0 @@
LOCAL_PATH := $(call my-dir)
DTBTOOL := $(HOST_OUT_EXECUTABLES)/dtbToolLineage$(HOST_EXECUTABLE_SUFFIX)
$(INSTALLED_DTIMAGE_TARGET): $(DTBTOOL) $(INSTALLED_KERNEL_TARGET)
$(hide) $(DTBTOOL) $(BOARD_DTBTOOL_ARGS) -o $@ -s $(BOARD_KERNEL_PAGESIZE) -p $(KERNEL_OUT)/scripts/dtc/ $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/;
$(hide) chmod a+r $@
@echo "Made DT image: $@"
.PHONY: dtimage
dtimage: $(INSTALLED_DTIMAGE_TARGET)
$(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES) $(INSTALLED_DTIMAGE_TARGET)
$(hide) $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --output $@
$(hide) echo -n "SEANDROIDENFORCE" >> $@
$(hide) $(call assert-max-image-size,$@,$(BOARD_BOOTIMAGE_PARTITION_SIZE),raw)
@echo "Made boot image: $@"
$(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTIMG) $(recovery_ramdisk) $(recovery_kernel) $(INSTALLED_DTIMAGE_TARGET)
$(hide) $(MKBOOTIMG) $(INTERNAL_RECOVERYIMAGE_ARGS) $(BOARD_MKBOOTIMG_ARGS) --output $@
$(hide) echo -n "SEANDROIDENFORCE" >> $@
$(hide) $(call assert-max-image-size,$@,$(BOARD_RECOVERYIMAGE_PARTITION_SIZE),raw)
@echo "Made recovery image: $@"
$(recovery_ramdisk): $(TARGET_RECOVERY_ROOT_TIMESTAMP)
$(hide) $(MKBOOTFS) $(TARGET_RECOVERY_ROOT_OUT) | xz --format=lzma -c -6 > $@
@echo "Compressed $@ with LZMA"
-12
View File
@@ -1,12 +0,0 @@
$(call inherit-product, $(SRC_TARGET_DIR)/product/embedded.mk)
$(call inherit-product, vendor/omni/config/common.mk)
PRODUCT_COPY_FILES += \
bionic/libc/zoneinfo/tzdata:recovery/root/system/usr/share/zoneinfo/tzdata
PRODUCT_BRAND := samsung
PRODUCT_MANUFACTURER := samsung
PRODUCT_MODEL := SM-T365
PRODUCT_DEVICE := rubenslte
PRODUCT_RELEASE_NAME := rubenslte
PRODUCT_NAME := omni_rubenslte
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Hardware keys present on the device, stored as a bit field.
This integer should equal the sum of the corresponding value for each
of the following keys present:
1 - Home
2 - Back
4 - Menu
8 - Assistant (search)
16 - App switch
32 - Camera
64 - Volume rocker
For example, a device with Home, Back and Menu keys would set this
config to 7. -->
<integer name="config_deviceHardwareKeys">83</integer>
<!-- Hardware keys present on the device with the ability to wake, stored as a bit field.
1 - Home
2 - Back
4 - Menu
8 - Assistant (search)
16 - App switch
32 - Camera
64 - Volume rocker
Home wakes by default (home_wake_screen setting defaults to 1);
volume can be enabled by the user. -->
<integer name="config_deviceHardwareWakeKeys">65</integer>
</resources>
@@ -0,0 +1,86 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="config_screenBrightnessSettingMinimum">20</integer>
<integer name="config_screenBrightnessSettingDefault">143</integer>
<integer name="config_screenBrightnessSettingMaximum">255</integer>
<integer name="config_screenBrightnessDim">30</integer>
<bool name="config_automatic_brightness_available">true</bool>
<!-- The auto-brightness curve and brightness limits below are taken
from the stock SM-T365 framework-res.apk, so they match this
panel's calibration. -->
<integer-array name="config_autoBrightnessLevels">
<item>15</item>
<item>150</item>
<item>1000</item>
<item>5000</item>
</integer-array>
<integer-array name="config_autoBrightnessLcdBacklightValues">
<item>10</item>
<item>80</item>
<item>162</item>
<item>190</item>
<item>255</item>
</integer-array>
<!-- Tethering interfaces / upstream types (stock SM-T365
values). -->
<string-array translatable="false" name="config_tether_wifi_regexs">
<item>"wlan0"</item>
</string-array>
<string-array translatable="false" name="config_tether_usb_regexs">
<item>"usb\\d"</item>
<item>"rndis\\d"</item>
<item>"ncm\\d"</item>
</string-array>
<string-array translatable="false" name="config_tether_bluetooth_regexs">
<item>"bnep\\d"</item>
<item>"bt-pan"</item>
</string-array>
<integer-array translatable="false" name="config_tether_upstream_types">
<item>0</item>
<item>1</item>
<item>4</item>
<item>5</item>
<item>7</item>
</integer-array>
<string-array translatable="false" name="radioAttributes">
<item>"1,1"</item>
<item>"0,1"</item>
<item>"7,1"</item>
</string-array>
<!-- Wi-Fi (stock SM-T365 values). -->
<bool translatable="false" name="config_wifi_dual_band_support">true</bool>
<bool translatable="false" name="config_wifi_background_scan_support">true</bool>
<string name="config_wifi_tcp_buffers" translatable="false">524288,1048576,4525824,524288,1048576,4525824</string>
<string-array name="config_mobile_tcp_buffers">
<item>default:4096,87380,704512,4096,16384,110208</item>
<item>edge:4093,26280,35040,4096,16384,35040</item>
<item>evdo:4094,87380,262144,4096,16384,262144</item>
<item>gprs:4092,30000,30000,4096,8760,11680</item>
<item>hsdpa:4094,87380,704512,4096,16384,262144</item>
<item>hspa:4094,87380,704512,4096,16384,262144</item>
<item>hspap:4094,87380,1220608,4096,16384,1220608</item>
<item>hsupa:4094,87380,704512,4096,16384,262144</item>
<item>lte:524288,1048576,2560000,524288,1048576,2560000</item>
<item>umts:4094,87380,704512,4096,16384,110208</item>
</string-array>
<!-- Device characteristics (stock SM-T365 values). -->
<bool name="config_batterySdCardAccessibility">false</bool>
<integer name="config_overrideHasPermanentMenuKey">2</integer>
<integer name="config_longPressOnHomeBehavior">2</integer>
<!-- The Samsung QCOM modem handles network selection restore itself. -->
<bool name="skip_restoring_network_selection">true</bool>
</resources>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="wifi_tether_configure_ssid_default" translatable="false">Galaxy Tab Active</string>
</resources>
-22
View File
@@ -1,22 +0,0 @@
/boot emmc /dev/block/platform/msm_sdcc.1/by-name/boot
/recovery emmc /dev/block/platform/msm_sdcc.1/by-name/recovery
/system ext4 /dev/block/platform/msm_sdcc.1/by-name/system
/data ext4 /dev/block/platform/msm_sdcc.1/by-name/userdata
/cache ext4 /dev/block/platform/msm_sdcc.1/by-name/cache
/sdcard auto /dev/block/mmcblk1p1 flags=display="MicroSD";storage;wipeingui;removable
/efs ext4 /dev/block/platform/msm_sdcc.1/by-name/efs flags=display="EFS"
/modem emmc /dev/block/platform/msm_sdcc.1/by-name/apnhlos
/mdm emmc /dev/block/platform/msm_sdcc.1/by-name/modem
/preload ext4 /dev/block/platform/msm_sdcc.1/by-name/hidden flags=display="Preload"
### Stock recovery.fstab
# /dev/block/platform/msm_sdcc.1/by-name/boot /boot emmc default recoveryonly
# /dev/block/platform/msm_sdcc.1/by-name/recovery /recovery emmc default recoveryonly
# /dev/block/platform/msm_sdcc.1/by-name/system /system ext4 default recoveryonly
# /dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 default wait,length=-16384
# /dev/block/platform/msm_sdcc.1/by-name/cache /cache ext4 default recoveryonly
# /dev/block/mmcblk1p1 /sdcard vfat default recoveryonly
# /dev/block/platform/msm_sdcc.1/by-name/efs /efs ext4 default recoveryonly
# /dev/block/platform/msm_sdcc.1/by-name/apnhlos /modem emmc default recoveryonly
# /dev/block/platform/msm_sdcc.1/by-name/modem /mdm emmc default recoveryonly
# /dev/block/platform/msm_sdcc.1/by-name/hidden /preload ext4 default recoveryonly
+17
View File
@@ -0,0 +1,17 @@
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := fstab.qcom
LOCAL_MODULE_TAGS := optional eng
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/fstab.qcom
LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
include $(BUILD_PREBUILT)
include $(CLEAR_VARS)
LOCAL_MODULE := init.target.rc
LOCAL_MODULE_TAGS := optional eng
LOCAL_MODULE_CLASS := ETC
LOCAL_SRC_FILES := etc/init.target.rc
LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
include $(BUILD_PREBUILT)
+19
View File
@@ -0,0 +1,19 @@
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,errors=panic wait,recoveryonly
/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 nosuid,nodev,noatime,noauto_da_alloc,discard,journal_async_commit,errors=continue wait,check,formattable,encryptable=footer,length=-16384
# In stock, the following are mounted in init.target.rc. We do it in the fstab.
/dev/block/platform/msm_sdcc.1/by-name/cache /cache ext4 nosuid,nodev,noatime,noauto_da_alloc,discard,journal_async_commit,errors=continue wait,check,formattable
/dev/block/platform/msm_sdcc.1/by-name/persist /persist ext4 nosuid,nodev,noatime,noauto_da_alloc,discard,journal_async_commit,errors=panic wait,check
/dev/block/platform/msm_sdcc.1/by-name/efs /efs ext4 nosuid,nodev,noatime,noauto_da_alloc,discard,journal_async_commit,errors=panic wait,check
/dev/block/platform/msm_sdcc.1/by-name/modem /firmware-modem vfat ro,shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337,context=u:object_r:firmware_file:s0 wait
/dev/block/platform/msm_sdcc.1/by-name/apnhlos /firmware vfat ro,shortname=lower,uid=1000,gid=1000,dmask=227,fmask=337,context=u:object_r:firmware_file:s0 wait
/dev/block/platform/msm_sdcc.1/by-name/boot /boot emmc defaults recoveryonly
/dev/block/platform/msm_sdcc.1/by-name/recovery /recovery emmc defaults recoveryonly
/dev/block/platform/msm_sdcc.1/by-name/hidden /preload ext4 defaults recoveryonly
/dev/block/platform/msm_sdcc.1/by-name/fota /misc emmc defaults defaults
/devices/msm_sdcc.2/mmc_host/mmc* auto auto defaults voldmanaged=sdcard1:auto,encryptable=userdata
/devices/platform/msm_hsusb_host/usb* auto auto defaults voldmanaged=usb:auto
# Not done in stock, but newer Android versions might need a bit extra memory.
/dev/block/zram0 none swap defaults zramsize=75%,swapprio=10,notrim
+11
View File
@@ -0,0 +1,11 @@
on boot
# More aggressive swappiness should be good.
write /proc/sys/vm/swappiness 100
# For GNSS (GPS)
chown system system /dev/subsys_modem
chmod 0660 /dev/subsys_modem
mkdir /data/misc/location 0770 gps system
mkdir /data/misc/location/xtra 0770 gps system
mkdir /data/misc/location/gpsone_d 0770 gps system
restorecon_recursive /data/misc/location
+7
View File
@@ -0,0 +1,7 @@
ro.vendor.extension_library=/system/vendor/lib/libqti-perfd-client.so
# The following fixes lots of display glitches.
debug.hwui.use_buffer_age=false
lockscreen.rot_override=true
ro.sf.lcd_density=213
-2
View File
@@ -1,2 +0,0 @@
add_lunch_combo omni_rubenslte-eng
add_lunch_combo omni_rubenslte-userdebug