From 32781d65225655b3eb3e85626e7dfe1363774eba Mon Sep 17 00:00:00 2001 From: Joel16 Date: Wed, 18 Dec 2019 21:46:24 -0500 Subject: [PATCH] Cleanup configs and fix sensor permissions --- audio/audio_policy.conf | 138 +++++++ configs/BCM4356.hcd | Bin 0 -> 64048 bytes configs/sec_config | 527 ++++++++++++------------ configs/sensors/sensor_def_qcomdev.conf | 312 ++++++++++++++ configs/thermal-engine.conf | 94 ----- configs/thermanager.xml | 361 ++++++++++++++++ configs/{wlan => wifi}/bcmdhd.cal | 0 device.mk | 42 +- proprietary-files.txt | 106 ++++- 9 files changed, 1198 insertions(+), 382 deletions(-) create mode 100644 audio/audio_policy.conf create mode 100644 configs/BCM4356.hcd create mode 100644 configs/sensors/sensor_def_qcomdev.conf delete mode 100644 configs/thermal-engine.conf create mode 100644 configs/thermanager.xml rename configs/{wlan => wifi}/bcmdhd.cal (100%) diff --git a/audio/audio_policy.conf b/audio/audio_policy.conf new file mode 100644 index 0000000..9ed589b --- /dev/null +++ b/audio/audio_policy.conf @@ -0,0 +1,138 @@ +# 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 +# - defines whether the speaker output path uses DRC +# "TRUE" means DRC is enabled, "FALSE" or omission means DRC isn't used. + +global_configuration { + attached_output_devices AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_TELEPHONY_TX + default_output_device AUDIO_DEVICE_OUT_SPEAKER + attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_BACK_MIC|AUDIO_DEVICE_IN_REMOTE_SUBMIX|AUDIO_DEVICE_IN_TELEPHONY_RX|AUDIO_DEVICE_IN_FM_TUNER +} + +# 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..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 44100|48000 + 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 + flags AUDIO_OUTPUT_FLAG_PRIMARY + } + deep_buffer { + sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000 + channel_masks AUDIO_CHANNEL_OUT_STEREO + formats AUDIO_FORMAT_PCM_16_BIT + devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_AUX_DIGITAL + flags AUDIO_OUTPUT_FLAG_DEEP_BUFFER + } + hdmi { + sampling_rates 44100|48000 + channel_masks dynamic + formats AUDIO_FORMAT_PCM_16_BIT + devices AUDIO_DEVICE_OUT_AUX_DIGITAL + flags AUDIO_OUTPUT_FLAG_DIRECT + } + compress_offload { + sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000 + channel_masks AUDIO_CHANNEL_OUT_MONO|AUDIO_CHANNEL_OUT_STEREO + formats AUDIO_FORMAT_MP3|AUDIO_FORMAT_AAC_LC|AUDIO_FORMAT_AAC_HE_V1|AUDIO_FORMAT_AAC_HE_V2 + devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE + flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING + } + voice_tx { + sampling_rates 8000|16000|48000 + channel_masks AUDIO_CHANNEL_OUT_STEREO|AUDIO_CHANNEL_OUT_MONO + formats AUDIO_FORMAT_PCM_16_BIT + devices AUDIO_DEVICE_OUT_TELEPHONY_TX + } + } + inputs { + primary { + sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000 + channel_masks AUDIO_CHANNEL_IN_MONO|AUDIO_CHANNEL_IN_STEREO|AUDIO_CHANNEL_IN_FRONT_BACK + formats AUDIO_FORMAT_PCM_16_BIT + devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_WIRED_HEADSET|AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET|AUDIO_DEVICE_IN_VOICE_CALL|AUDIO_DEVICE_IN_BACK_MIC|AUDIO_DEVICE_IN_FM_TUNER + } + voice_rx { + sampling_rates 8000|16000|48000 + channel_masks AUDIO_CHANNEL_IN_STEREO|AUDIO_CHANNEL_IN_MONO + formats AUDIO_FORMAT_PCM_16_BIT + devices AUDIO_DEVICE_IN_TELEPHONY_RX + } + } + } + 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 { + a2dp { + sampling_rates 44100|48000 + channel_masks AUDIO_CHANNEL_IN_MONO|AUDIO_CHANNEL_IN_STEREO + formats AUDIO_FORMAT_PCM_16_BIT + devices AUDIO_DEVICE_IN_BLUETOOTH_A2DP + } + } + } + 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 dynamic + formats dynamic + devices AUDIO_DEVICE_IN_USB_DEVICE + } + } + } + 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_STEREO + formats AUDIO_FORMAT_PCM_16_BIT + devices AUDIO_DEVICE_IN_REMOTE_SUBMIX + } + } + } +} diff --git a/configs/BCM4356.hcd b/configs/BCM4356.hcd new file mode 100644 index 0000000000000000000000000000000000000000..8830a25be3743cfd59518dcae797c8e5d1d14492 GIT binary patch literal 64048 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 z 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

_7uOPiWh1p$@gs~VpG3?Uj;Sb; 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:: */ -16:4294967295:1000:3004 +16:4294967295:1000:1021 /* Allow SS CTL service to be used by system and net_raw processes */ 43:4294967295:1000:3004 +/* :: */ +71:4294967295:1001 /* :: */ 50:4294967295:1001 /* Allow Sensor services to be used by sensor process */ -256:4294967295:3011 -257:4294967295:3011 -258:4294967295:3011 -259:4294967295:3011 -260:4294967295:3011 -261:4294967295:3011 -262:4294967295:3011 -263:4294967295:3011 -264:4294967295:3011 -265:4294967295:3011 -266:4294967295:3011 -267:4294967295:3011 -268:4294967295:3011 -269:4294967295:3011 -270:4294967295:3011 -271:4294967295:3011 -272:4294967295:3011 -273:4294967295:3011 -274:4294967295:3011 -275:4294967295:3011 -276:4294967295:3011 -277:4294967295:3011 -278:4294967295:3011 -279:4294967295:3011 -280:4294967295:3011 -281:4294967295:3011 -282:4294967295:3011 -283:4294967295:3011 -284:4294967295:3011 -285:4294967295:3011 -286:4294967295:3011 -287:4294967295:3011 -288:4294967295:3011 -289:4294967295:3011 -290:4294967295:3011 -291:4294967295:3011 -292:4294967295:3011 -293:4294967295:3011 -294:4294967295:3011 -295:4294967295:3011 -296:4294967295:3011 -297:4294967295:3011 -298:4294967295:3011 -299:4294967295:3011 -300:4294967295:3011 -301:4294967295:3011 -302:4294967295:3011 -303:4294967295:3011 -304:4294967295:3011 -305:4294967295:3011 -306:4294967295:3011 -307:4294967295:3011 -308:4294967295:3011 -309:4294967295:3011 -310:4294967295:3011 -311:4294967295:3011 -312:4294967295:3011 -313:4294967295:3011 -314:4294967295:3011 -315:4294967295:3011 -316:4294967295:3011 -317:4294967295:3011 -318:4294967295:3011 -319:4294967295:3011 -320:4294967295:3011 -321:4294967295:3011 -322:4294967295:3011 -323:4294967295:3011 -324:4294967295:3011 -325:4294967295:3011 -326:4294967295:3011 -327:4294967295:3011 -328:4294967295:3011 -329:4294967295:3011 -330:4294967295:3011 -331:4294967295:3011 -332:4294967295:3011 -333:4294967295:3011 -334:4294967295:3011 -335:4294967295:3011 -336:4294967295:3011 -337:4294967295:3011 -338:4294967295:3011 -339:4294967295:3011 -340:4294967295:3011 -341:4294967295:3011 -342:4294967295:3011 -343:4294967295:3011 -344:4294967295:3011 -345:4294967295:3011 -346:4294967295:3011 -347:4294967295:3011 -348:4294967295:3011 -349:4294967295:3011 -350:4294967295:3011 -351:4294967295:3011 -352:4294967295:3011 -353:4294967295:3011 -354:4294967295:3011 -355:4294967295:3011 -356:4294967295:3011 -357:4294967295:3011 -358:4294967295:3011 -359:4294967295:3011 -360:4294967295:3011 -361:4294967295:3011 -362:4294967295:3011 -363:4294967295:3011 -364:4294967295:3011 -365:4294967295:3011 -366:4294967295:3011 -367:4294967295:3011 -368:4294967295:3011 -369:4294967295:3011 -370:4294967295:3011 -371:4294967295:3011 -372:4294967295:3011 -373:4294967295:3011 -374:4294967295:3011 -375:4294967295:3011 -376:4294967295:3011 -377:4294967295:3011 -378:4294967295:3011 -379:4294967295:3011 -380:4294967295:3011 -381:4294967295:3011 -382:4294967295:3011 -383:4294967295:3011 -384:4294967295:3011 -385:4294967295:3011 -386:4294967295:3011 -387:4294967295:3011 -388:4294967295:3011 -389:4294967295:3011 -390:4294967295:3011 -391:4294967295:3011 -392:4294967295:3011 -393:4294967295:3011 -394:4294967295:3011 -395:4294967295:3011 -396:4294967295:3011 -397:4294967295:3011 -398:4294967295:3011 -399:4294967295:3011 -400:4294967295:3011 -401:4294967295:3011 -402:4294967295:3011 -403:4294967295:3011 -404:4294967295:3011 -405:4294967295:3011 -406:4294967295:3011 -407:4294967295:3011 -408:4294967295:3011 -409:4294967295:3011 -410:4294967295:3011 -411:4294967295:3011 -412:4294967295:3011 -413:4294967295:3011 -414:4294967295:3011 -415:4294967295:3011 -416:4294967295:3011 -417:4294967295:3011 -418:4294967295:3011 -419:4294967295:3011 -420:4294967295:3011 -421:4294967295:3011 -422:4294967295:3011 -423:4294967295:3011 -424:4294967295:3011 -425:4294967295:3011 -426:4294967295:3011 -427:4294967295:3011 -428:4294967295:3011 -429:4294967295:3011 -430:4294967295:3011 -431:4294967295:3011 -432:4294967295:3011 -433:4294967295:3011 -434:4294967295:3011 -435:4294967295:3011 -436:4294967295:3011 -437:4294967295:3011 -438:4294967295:3011 -439:4294967295:3011 -440:4294967295:3011 -441:4294967295:3011 -442:4294967295:3011 -443:4294967295:3011 -444:4294967295:3011 -445:4294967295:3011 -446:4294967295:3011 -447:4294967295:3011 -448:4294967295:3011 -449:4294967295:3011 -450:4294967295:3011 -451:4294967295:3011 -452:4294967295:3011 -453:4294967295:3011 -454:4294967295:3011 -455:4294967295:3011 -456:4294967295:3011 -457:4294967295:3011 -458:4294967295:3011 -459:4294967295:3011 -460:4294967295:3011 -461:4294967295:3011 -462:4294967295:3011 -463:4294967295:3011 -464:4294967295:3011 -465:4294967295:3011 -466:4294967295:3011 -467:4294967295:3011 -468:4294967295:3011 -469:4294967295:3011 -470:4294967295:3011 -471:4294967295:3011 -472:4294967295:3011 -473:4294967295:3011 -474:4294967295:3011 -475:4294967295:3011 -476:4294967295:3011 -477:4294967295:3011 -478:4294967295:3011 -479:4294967295:3011 -480:4294967295:3011 -481:4294967295:3011 -482:4294967295:3011 -483:4294967295:3011 -484:4294967295:3011 -485:4294967295:3011 -486:4294967295:3011 -487:4294967295:3011 -488:4294967295:3011 -489:4294967295:3011 -490:4294967295:3011 -491:4294967295:3011 -492:4294967295:3011 -493:4294967295:3011 -494:4294967295:3011 -495:4294967295:3011 -496:4294967295:3011 -497:4294967295:3011 -498:4294967295:3011 -499:4294967295:3011 -500:4294967295:3011 -501:4294967295:3011 -502:4294967295:3011 -503:4294967295:3011 -504:4294967295:3011 -505:4294967295:3011 -506:4294967295:3011 -507:4294967295:3011 -508:4294967295:3011 -509:4294967295:3011 -510:4294967295:3011 -511:4294967295:3011 +256:4294967295:1000:1006:1013:1021:1047 +257:4294967295:1000:1006:1013:1021:1047 +258:4294967295:1000:1006:1013:1021:1047 +259:4294967295:1000:1006:1013:1021:1047 +260:4294967295:1000:1006:1013:1021:1047 +261:4294967295:1000:1006:1013:1021:1047 +262:4294967295:1000:1006:1013:1021:1047 +263:4294967295:1000:1006:1013:1021:1047 +264:4294967295:1000:1006:1013:1021:1047 +265:4294967295:1000:1006:1013:1021:1047 +266:4294967295:1000:1006:1013:1021:1047 +267:4294967295:1000:1006:1013:1021:1047 +268:4294967295:1000:1006:1013:1021:1047 +269:4294967295:1000:1006:1013:1021:1047 +270:4294967295:1000:1006:1013:1021:1047 +271:4294967295:1000:1006:1013:1021:1047 +272:4294967295:1000:1006:1013:1021:1047 +273:4294967295:1000:1006:1013:1021:1047 +274:4294967295:1000:1006:1013:1021:1047 +275:4294967295:1000:1006:1013:1021:1047 +276:4294967295:1000:1006:1013:1021:1047 +277:4294967295:1000:1006:1013:1021:1047 +278:4294967295:1000:1006:1013:1021:1047 +279:4294967295:1000:1006:1013:1021:1047 +280:4294967295:1000:1006:1013:1021:1047 +281:4294967295:1000:1006:1013:1021:1047 +282:4294967295:1000:1006:1013:1021:1047 +283:4294967295:1000:1006:1013:1021:1047 +284:4294967295:1000:1006:1013:1021:1047 +285:4294967295:1000:1006:1013:1021:1047 +286:4294967295:1000:1006:1013:1021:1047 +287:4294967295:1000:1006:1013:1021:1047 +288:4294967295:1000:1006:1013:1021:1047 +289:4294967295:1000:1006:1013:1021:1047 +290:4294967295:1000:1006:1013:1021:1047 +291:4294967295:1000:1006:1013:1021:1047 +292:4294967295:1000:1006:1013:1021:1047 +293:4294967295:1000:1006:1013:1021:1047 +294:4294967295:1000:1006:1013:1021:1047 +295:4294967295:1000:1006:1013:1021:1047 +296:4294967295:1000:1006:1013:1021:1047 +297:4294967295:1000:1006:1013:1021:1047 +298:4294967295:1000:1006:1013:1021:1047 +299:4294967295:1000:1006:1013:1021:1047 +300:4294967295:1000:1006:1013:1021:1047 +301:4294967295:1000:1006:1013:1021:1047 +302:4294967295:1000:1006:1013:1021:1047 +303:4294967295:1000:1006:1013:1021:1047 +304:4294967295:1000:1006:1013:1021:1047 +305:4294967295:1000:1006:1013:1021:1047 +306:4294967295:1000:1006:1013:1021:1047 +307:4294967295:1000:1006:1013:1021:1047 +308:4294967295:1000:1006:1013:1021:1047 +309:4294967295:1000:1006:1013:1021:1047 +310:4294967295:1000:1006:1013:1021:1047 +311:4294967295:1000:1006:1013:1021:1047 +312:4294967295:1000:1006:1013:1021:1047 +313:4294967295:1000:1006:1013:1021:1047 +314:4294967295:1000:1006:1013:1021:1047 +315:4294967295:1000:1006:1013:1021:1047 +316:4294967295:1000:1006:1013:1021:1047 +317:4294967295:1000:1006:1013:1021:1047 +318:4294967295:1000:1006:1013:1021:1047 +319:4294967295:1000:1006:1013:1021:1047 +320:4294967295:1000:1006:1013:1021:1047 +321:4294967295:1000:1006:1013:1021:1047 +322:4294967295:1000:1006:1013:1021:1047 +323:4294967295:1000:1006:1013:1021:1047 +324:4294967295:1000:1006:1013:1021:1047 +325:4294967295:1000:1006:1013:1021:1047 +326:4294967295:1000:1006:1013:1021:1047 +327:4294967295:1000:1006:1013:1021:1047 +328:4294967295:1000:1006:1013:1021:1047 +329:4294967295:1000:1006:1013:1021:1047 +330:4294967295:1000:1006:1013:1021:1047 +331:4294967295:1000:1006:1013:1021:1047 +332:4294967295:1000:1006:1013:1021:1047 +333:4294967295:1000:1006:1013:1021:1047 +334:4294967295:1000:1006:1013:1021:1047 +335:4294967295:1000:1006:1013:1021:1047 +336:4294967295:1000:1006:1013:1021:1047 +337:4294967295:1000:1006:1013:1021:1047 +338:4294967295:1000:1006:1013:1021:1047 +339:4294967295:1000:1006:1013:1021:1047 +340:4294967295:1000:1006:1013:1021:1047 +341:4294967295:1000:1006:1013:1021:1047 +342:4294967295:1000:1006:1013:1021:1047 +343:4294967295:1000:1006:1013:1021:1047 +344:4294967295:1000:1006:1013:1021:1047 +345:4294967295:1000:1006:1013:1021:1047 +346:4294967295:1000:1006:1013:1021:1047 +347:4294967295:1000:1006:1013:1021:1047 +348:4294967295:1000:1006:1013:1021:1047 +349:4294967295:1000:1006:1013:1021:1047 +350:4294967295:1000:1006:1013:1021:1047 +351:4294967295:1000:1006:1013:1021:1047 +352:4294967295:1000:1006:1013:1021:1047 +353:4294967295:1000:1006:1013:1021:1047 +354:4294967295:1000:1006:1013:1021:1047 +355:4294967295:1000:1006:1013:1021:1047 +356:4294967295:1000:1006:1013:1021:1047 +357:4294967295:1000:1006:1013:1021:1047 +358:4294967295:1000:1006:1013:1021:1047 +359:4294967295:1000:1006:1013:1021:1047 +360:4294967295:1000:1006:1013:1021:1047 +361:4294967295:1000:1006:1013:1021:1047 +362:4294967295:1000:1006:1013:1021:1047 +363:4294967295:1000:1006:1013:1021:1047 +364:4294967295:1000:1006:1013:1021:1047 +365:4294967295:1000:1006:1013:1021:1047 +366:4294967295:1000:1006:1013:1021:1047 +367:4294967295:1000:1006:1013:1021:1047 +368:4294967295:1000:1006:1013:1021:1047 +369:4294967295:1000:1006:1013:1021:1047 +370:4294967295:1000:1006:1013:1021:1047 +371:4294967295:1000:1006:1013:1021:1047 +372:4294967295:1000:1006:1013:1021:1047 +373:4294967295:1000:1006:1013:1021:1047 +374:4294967295:1000:1006:1013:1021:1047 +375:4294967295:1000:1006:1013:1021:1047 +376:4294967295:1000:1006:1013:1021:1047 +377:4294967295:1000:1006:1013:1021:1047 +378:4294967295:1000:1006:1013:1021:1047 +379:4294967295:1000:1006:1013:1021:1047 +380:4294967295:1000:1006:1013:1021:1047 +381:4294967295:1000:1006:1013:1021:1047 +382:4294967295:1000:1006:1013:1021:1047 +383:4294967295:1000:1006:1013:1021:1047 +384:4294967295:1000:1006:1013:1021:1047 +385:4294967295:1000:1006:1013:1021:1047 +386:4294967295:1000:1006:1013:1021:1047 +387:4294967295:1000:1006:1013:1021:1047 +388:4294967295:1000:1006:1013:1021:1047 +389:4294967295:1000:1006:1013:1021:1047 +390:4294967295:1000:1006:1013:1021:1047 +391:4294967295:1000:1006:1013:1021:1047 +392:4294967295:1000:1006:1013:1021:1047 +393:4294967295:1000:1006:1013:1021:1047 +394:4294967295:1000:1006:1013:1021:1047 +395:4294967295:1000:1006:1013:1021:1047 +396:4294967295:1000:1006:1013:1021:1047 +397:4294967295:1000:1006:1013:1021:1047 +398:4294967295:1000:1006:1013:1021:1047 +399:4294967295:1000:1006:1013:1021:1047 +400:4294967295:1000:1006:1013:1021:1047 +401:4294967295:1000:1006:1013:1021:1047 +402:4294967295:1000:1006:1013:1021:1047 +403:4294967295:1000:1006:1013:1021:1047 +404:4294967295:1000:1006:1013:1021:1047 +405:4294967295:1000:1006:1013:1021:1047 +406:4294967295:1000:1006:1013:1021:1047 +407:4294967295:1000:1006:1013:1021:1047 +408:4294967295:1000:1006:1013:1021:1047 +409:4294967295:1000:1006:1013:1021:1047 +410:4294967295:1000:1006:1013:1021:1047 +411:4294967295:1000:1006:1013:1021:1047 +412:4294967295:1000:1006:1013:1021:1047 +413:4294967295:1000:1006:1013:1021:1047 +414:4294967295:1000:1006:1013:1021:1047 +415:4294967295:1000:1006:1013:1021:1047 +416:4294967295:1000:1006:1013:1021:1047 +417:4294967295:1000:1006:1013:1021:1047 +418:4294967295:1000:1006:1013:1021:1047 +419:4294967295:1000:1006:1013:1021:1047 +420:4294967295:1000:1006:1013:1021:1047 +421:4294967295:1000:1006:1013:1021:1047 +422:4294967295:1000:1006:1013:1021:1047 +423:4294967295:1000:1006:1013:1021:1047 +424:4294967295:1000:1006:1013:1021:1047 +425:4294967295:1000:1006:1013:1021:1047 +426:4294967295:1000:1006:1013:1021:1047 +427:4294967295:1000:1006:1013:1021:1047 +428:4294967295:1000:1006:1013:1021:1047 +429:4294967295:1000:1006:1013:1021:1047 +430:4294967295:1000:1006:1013:1021:1047 +431:4294967295:1000:1006:1013:1021:1047 +432:4294967295:1000:1006:1013:1021:1047 +433:4294967295:1000:1006:1013:1021:1047 +434:4294967295:1000:1006:1013:1021:1047 +435:4294967295:1000:1006:1013:1021:1047 +436:4294967295:1000:1006:1013:1021:1047 +437:4294967295:1000:1006:1013:1021:1047 +438:4294967295:1000:1006:1013:1021:1047 +439:4294967295:1000:1006:1013:1021:1047 +440:4294967295:1000:1006:1013:1021:1047 +441:4294967295:1000:1006:1013:1021:1047 +442:4294967295:1000:1006:1013:1021:1047 +443:4294967295:1000:1006:1013:1021:1047 +444:4294967295:1000:1006:1013:1021:1047 +445:4294967295:1000:1006:1013:1021:1047 +446:4294967295:1000:1006:1013:1021:1047 +447:4294967295:1000:1006:1013:1021:1047 +448:4294967295:1000:1006:1013:1021:1047 +449:4294967295:1000:1006:1013:1021:1047 +450:4294967295:1000:1006:1013:1021:1047 +451:4294967295:1000:1006:1013:1021:1047 +452:4294967295:1000:1006:1013:1021:1047 +453:4294967295:1000:1006:1013:1021:1047 +454:4294967295:1000:1006:1013:1021:1047 +455:4294967295:1000:1006:1013:1021:1047 +456:4294967295:1000:1006:1013:1021:1047 +457:4294967295:1000:1006:1013:1021:1047 +458:4294967295:1000:1006:1013:1021:1047 +459:4294967295:1000:1006:1013:1021:1047 +460:4294967295:1000:1006:1013:1021:1047 +461:4294967295:1000:1006:1013:1021:1047 +462:4294967295:1000:1006:1013:1021:1047 +463:4294967295:1000:1006:1013:1021:1047 +464:4294967295:1000:1006:1013:1021:1047 +465:4294967295:1000:1006:1013:1021:1047 +466:4294967295:1000:1006:1013:1021:1047 +467:4294967295:1000:1006:1013:1021:1047 +468:4294967295:1000:1006:1013:1021:1047 +469:4294967295:1000:1006:1013:1021:1047 +470:4294967295:1000:1006:1013:1021:1047 +471:4294967295:1000:1006:1013:1021:1047 +472:4294967295:1000:1006:1013:1021:1047 +473:4294967295:1000:1006:1013:1021:1047 +474:4294967295:1000:1006:1013:1021:1047 +475:4294967295:1000:1006:1013:1021:1047 +476:4294967295:1000:1006:1013:1021:1047 +477:4294967295:1000:1006:1013:1021:1047 +478:4294967295:1000:1006:1013:1021:1047 +479:4294967295:1000:1006:1013:1021:1047 +480:4294967295:1000:1006:1013:1021:1047 +481:4294967295:1000:1006:1013:1021:1047 +482:4294967295:1000:1006:1013:1021:1047 +483:4294967295:1000:1006:1013:1021:1047 +484:4294967295:1000:1006:1013:1021:1047 +485:4294967295:1000:1006:1013:1021:1047 +486:4294967295:1000:1006:1013:1021:1047 +487:4294967295:1000:1006:1013:1021:1047 +488:4294967295:1000:1006:1013:1021:1047 +489:4294967295:1000:1006:1013:1021:1047 +490:4294967295:1000:1006:1013:1021:1047 +491:4294967295:1000:1006:1013:1021:1047 +492:4294967295:1000:1006:1013:1021:1047 +493:4294967295:1000:1006:1013:1021:1047 +494:4294967295:1000:1006:1013:1021:1047 +495:4294967295:1000:1006:1013:1021:1047 +496:4294967295:1000:1006:1013:1021:1047 +497:4294967295:1000:1006:1013:1021:1047 +498:4294967295:1000:1006:1013:1021:1047 +499:4294967295:1000:1006:1013:1021:1047 +500:4294967295:1000:1006:1013:1021:1047 +501:4294967295:1000:1006:1013:1021:1047 +502:4294967295:1000:1006:1013:1021:1047 +503:4294967295:1000:1006:1013:1021:1047 +504:4294967295:1000:1006:1013:1021:1047 +505:4294967295:1000:1006:1013:1021:1047 +506:4294967295:1000:1006:1013:1021:1047 +507:4294967295:1000:1006:1013:1021:1047 +508:4294967295:1000:1006:1013:1021:1047 +509:4294967295:1000:1006:1013:1021:1047 +510:4294967295:1000:1006:1013:1021:1047 +511:4294967295:1000:1006:1013:1021:1047 /* Allow RCS service to aquire net_raw permission */ 18:4294967295:1001:3004 /* Allow QMID service to aquire net_raw permission */ -3:4294967295:1001:3004 -2:4294967295:1001:3004 +3:4294967295:1001:1021:3004 +2:4294967295:1000:1001:3004 42:4294967295:1001:3004 18:4294967295:1001:3004 9:4294967295:1001:3004 @@ -300,10 +302,15 @@ 33:4294967295:1001 /* CSVT */ 29:4294967295:1001 +/* SERVREG_NOTIF */ +64:4294967295:1001 +66:4294967295:1001 +/* LTE */ +70:4294967295:1001 /* Allow Data dpmd to access QMI DFS */ 48:4294967295:1000:3004 /* DIAG */ -4097:4294967295:3009 +4097:4294967295:2002:2950:3009:2901 /* :: */ 57:4294967295:1000 /* COEX */ diff --git a/configs/sensors/sensor_def_qcomdev.conf b/configs/sensors/sensor_def_qcomdev.conf new file mode 100644 index 0000000..1c6eb92 --- /dev/null +++ b/configs/sensors/sensor_def_qcomdev.conf @@ -0,0 +1,312 @@ +# +# File: sensor_def_qcomdev.conf +# +# Tihs file contains default sensor registry values for Qualcomm development +# test platforms. +# +# Copyright (c) 2013 Qualcomm Technologies, Inc. All Rights Reserved. +# Qualcomm Technologies Proprietary and Confidential +# +# NOTE: This file has been modified by Sony Mobile Communications Inc. +# Modifications are Copyright (C) 2014 Sony Mobile Communications Inc., +# and licensed under the license of the file. + +# File format: +# +# Lines starting with "#" are comments and ignored. +# +# File metadata uses this format: +# :key value1 value2 +# +# The following keys are defined: +# - "version" : value1 is non-zero positive version number of the file. This +# number will be stored in the sensors registry. It should be equal to the +# largest version of any item. It will be saved in the sensors registry for +# later use when initializing values. See the item format below. +# This value should only be specified once in the file. +# +# - "hardware" : The value1 will be compared to the "Hardware" string from +# the property of ro.board.platform. +# Items will only be used as default values in the registry if the hardware +# string value is a substring of the ro.board.platform string. +# This metadata key can be used more than once, so that one file can support +# more than one type of hardware. +# The value may be NULL, indicating common item values for all hardware. +# +# - "platform" : Similar to the "hardware" key, but this string will need to +# match the text of either /sys/devices/soc0/hw_platform or +# /sys/devices/soc0/platform_subtype. +# +# - "soc_id" : Similar to the "hardware" key, but this string will need to +# match the text of /sys/devices/soc0/soc_id. +# +# - "property" : value1 is the Android system property key, and value2 is +# the desired property value. If the system property value matches the +# desired property value, then the following items will be applied. +# This metadata key can be used more than once, in which case the new +# property value overrides the old. +# value1 and 2 may be NULL, indicating common item values for all properties. +# +# Registry items are in lines with the following format: +# +# Where: +# itemID is the numeric item ID defined in sns_reg_api_v02.h +# +# "value" is the numeric value of the item. +# +# "version" is a non-zero version of the item value. +# The version field will be compared against the previous saved +# value in the sensors registry. If this value is greater than the +# saved value, the default will be applied. Otherwise, the default +# will be skipped. +# +# Registry item values will only be applied if the hardware, platform, and +# property values match for the current hardware configuration. +# +# The numeric fields are parsed with the strtoull function, base 0. +# + +:version 0x00010001 + +######################################################################## +### 8994 Chipsets +######################################################################## +:hardware 8994 +:platform +:property +# Orientation of sensors +# accel x/y/z +700 1 0x00010001 #accel-x-axis +701 -2 0x00010001 #accel-y-axis +702 -3 0x00010001 #accel-z-axis +# gyro x/y/z +800 1 0x00010001 #gyro-x-axis +801 -2 0x00010001 #gyro-y-axis +802 -3 0x00010001 #gyro-z-axis +# mag x/y/z +900 -2 0x00010001 #mag-x-axis +901 3 0x00010001 #mag-y-axis +902 -1 0x00010001 #mag-z-axis +# SSI SMGR Version +1900 1 0x00010001 #Maj Ver +1901 1 0x00010001 #Min Ver + +# SAM config +# +203 65536 0x10001 # AMD +225 327680 0x10001 # RMD +504 65536 0x10001 # Gyro Cal +1703 65536 0x10001 # Ped +2800 327680 0x10001 # basic ges +2900 327680 0x10001 # Facing +3400 65536 0x10001 # CMC +609 65536 0x10001 # FMV +1005 65536 0x10001 # Grav +1103 65536 0x10001 # orientation +3000 65536 0x10001 # gyro quat +3100 65536 0x10001 # rot vec +3500 65536 0x10001 # game rv +4112 65536 0x10001 # SMD + +# SSI SMGR Cfg 0 ICM-20628 Accelerometer DRI +1903 0x0b25b8431bfd46bc 0x00010001 #UUID +1902 0xc14075963795c661 0x00010001 #UUID +1904 500000 0x00010001 #off_to_idle +1905 2000 0x00010001 #idle_to_ready +1906 5 0x00010001 #i2c_bus +1907 1000 0x00010001 #reg_group_id +1908 0 0x00010001 #cal_grp_id +1909 64 0x00010001 #gpio1 +1910 0xFFFF 0x00010001 #gpio2 +1911 0 0x00010001 #sensor_id +1912 0x68 0x00010001 #i2c_address +1913 1 0x00010001 #data_type1 +1914 0 0x00010001 #data_type2 +1915 1 0x00010001 #rel_sns_idx +1916 1 0x00010001 #sens_default +1917 0xD0 0x00010001 #flags +1982 0 0x00010001 #device_select + +# SSI SMGR Cfg 1 ICM-20628 Gyroscope DRI +1919 0x0b25b8431bfd46bc 0x00010001 #UUID +1918 0xc14075963795c661 0x00010001 #UUID +1920 500000 0x00010001 #off_to_idle +1921 2000 0x00010001 #idle_to_ready +1922 5 0x00010001 #i2c_bus +1923 1010 0x00010001 #reg_group_id +1924 10 0x00010001 #cal_grp_id +1925 64 0x00010001 #gpio1 +1926 0xFFFF 0x00010001 #gpio2 +1927 10 0x00010001 #sensor_id +1928 0x68 0x00010001 #i2c_address +1929 3 0x00010001 #data_type1 +1930 0 0x00010001 #data_type2 +1931 0 0x00010001 #rel_sns_idx +1932 3 0x00010001 #sens_default +1933 0xD0 0x00010001 #flags +1983 0 0x00010001 #device_select + +# SSI SMGR Cfg 2 AK09912C DRI +1935 0x0b25b8431bfd46bc 0x00010001 #UUID +1934 0xc14075963795c661 0x00010001 #UUID +1936 500000 0x00010001 #off_to_idle +1937 2000 0x00010001 #idle_to_ready +1938 5 0x00010001 #i2c_bus +1939 1020 0x00010001 #reg_group_id +1940 0xFFFF 0x00010001 #cal_grp_id +1941 64 0x00010001 #gpio1 +1942 0xFFFF 0x00010001 #gpio2 +1943 20 0x00010001 #sensor_id +1944 0x0c 0x00010001 #i2c_address +1945 2 0x00010001 #data_type1 +1946 0 0x00010001 #data_type2 +1947 0xFF 0x00010001 #rel_sns_idx +1948 0 0x00010001 #sens_default +1949 0xD0 0x00010001 #flags +1984 0 0x00010001 #device_select + +# SSI SMGR Cfg 3: HSPPAD038A POLL +1951 0x5588c14de03f6490 0x00010001 #UUID +1950 0x69469b7038b0dde8 0x00010001 #UUID +1952 7680 0x00010001 #off_to_idle +1953 10000 0x00010001 #idle_to_ready +1954 5 0x00010001 #i2c_bus +1955 0xFFFF 0x00010001 #reg_group_id +1956 0xFFFF 0x00010001 #cal_grp_id +1957 76 0x00010001 #gpio1 +1958 0xFFFF 0x00010001 #gpio2 +1959 30 0x00010001 #sensor_id +1960 0x48 0x00010001 #i2c_address +1961 7 0x00010001 #data_type1 +1962 0 0x00010001 #data_type2 +1963 0xFF 0x00010001 #rel_sns_idx +1964 0 0x00010001 #sens_default +1965 0 0x00010001 #flags +1985 0 0x00010001 #device_select + +# SSI SMGR Cfg 4: APDS9910 DRI +1967 0x2c95aafbde68bd9d 0x00010001 #UUID +1966 0xc04992988b1365d3 0x00010001 #UUID +1968 10000 0x00010001 #off_to_idle +1969 5000 0x00010001 #idle_to_ready +1970 5 0x00010001 #i2c_bus +1971 1040 0x00010001 #reg_group_id +1972 0xFFFF 0x00010001 #cal_grp_id +1973 40 0x00010001 #gpio1 +1974 0xFFFF 0x00010001 #gpio2 +1975 40 0x00010001 #sensor_id +1976 0x39 0x00010001 #i2c_address +1977 5 0x00010001 #data_type1 +1978 6 0x00010001 #data_type2 +1979 0xFF 0x00010001 #rel_sns_idx +1980 0 0x00010001 #sens_default +1981 0x80 0x00010001 #flags +1986 0 0x00010001 #device_select +103 0x384 0x00010001 #prx_near_thresh +104 0x320 0x00010001 #prx_far_thresh +105 0 0x00010001 #prx_factor +106 100 0x00010001 #als_factor +107 1 0x00010001 #version_num +108 0x58 0x00010001 #id +109 7 0x00010001 #als_change_pcnt +110 0x04 0x00010001 #prx_pulse +111 0x00 0x00010001 #prx_drive +112 0x08 0x00010001 #prx_gain +113 1999 0x00010001 #als_coe_b +114 252 0x00010001 #als_coe_c +115 450 0x00010001 #als_coe_d +116 326 0x00010001 #als_dgf +117 12800 0x00010001 #als_ch0_default +118 3117 0x00010001 #als_ch1_default +119 0x00 0x00010001 #prx_offset + +# SSI SMGR Cfg 5 ICM-20628 Game Rotation Vector DRI +3603 0x0b25b8431bfd46bc 0x00010001 #UUID +3602 0xc14075963795c661 0x00010001 #UUID +3604 500000 0x00010001 #off_to_idle +3605 2000 0x00010001 #idle_to_ready +3606 5 0x00010001 #i2c_bus +3607 0xFFFF 0x00010001 #reg_group_id +3608 0xFFFF 0x00010001 #cal_grp_id +3609 64 0x00010001 #gpio1 +3610 0xFFFF 0x00010001 #gpio2 +3611 226 0x00010001 #sensor_id +3612 0x68 0x00010001 #i2c_address +3613 26 0x00010001 #data_type +3614 34 0x00010001 #data_type2 +3615 0xFF 0x00010001 #rel_sns_idx +3616 0 0x00010001 #sens_default +3617 0xD0 0x00010001 #flags +3682 0 0x00010001 #device_select + +# SSI SMGR Cfg 6 ICM-20628 SMD DRI +3619 0x0b25b8431bfd46bc 0x00010001 #UUID +3618 0xc14075963795c661 0x00010001 #UUID +3620 500000 0x00010001 #off_to_idle +3621 2000 0x00010001 #idle_to_ready +3622 5 0x00010001 #i2c_bus +3623 0xFFFF 0x00010001 #reg_group_id +3624 0xFFFF 0x00010001 #cal_grp_id +3625 64 0x00010001 #gpio1 +3626 0xFFFF 0x00010001 #gpio2 +3627 224 0x00010001 #sensor_id +3628 0x68 0x00010001 #i2c_address +3629 25 0x00010001 #data_type1 +3630 0 0x00010001 #data_type2 +3631 0xFF 0x00010001 #rel_sns_idx +3632 0 0x00010001 #sens_default +3633 0xC0 0x00010001 #flags +3683 0 0x00010001 #device_select + +# SSI SMGR Cfg 7 ICM-20628 Step Counter DRI +3635 0x0b25b8431bfd46bc 0x00010001 #UUID +3634 0xc14075963795c661 0x00010001 #UUID +3636 500000 0x00010001 #off_to_idle +3637 2000 0x00010001 #idle_to_ready +3638 5 0x00010001 #i2c_bus +3639 0xFFFF 0x00010001 #reg_group_id +3640 0xFFFF 0x00010001 #cal_grp_id +3641 64 0x00010001 #gpio1 +3642 0xFFFF 0x00010001 #gpio2 +3643 222 0x00010001 #sensor_id +3644 0x68 0x00010001 #i2c_address +3645 24 0x00010001 #data_type1 +3646 0 0x00010001 #data_type2 +3647 0xFF 0x00010001 #rel_sns_idx +3648 0 0x00010001 #sens_default +3649 0xC0 0x00010001 #flags +3684 0 0x00010001 #device_select + +# SSI SMGR Cfg 8 ICM-20628 Step Detector DRI +3651 0x0b25b8431bfd46bc 0x00010001 #UUID +3650 0xc14075963795c661 0x00010001 #UUID +3652 500000 0x00010001 #off_to_idle +3653 2000 0x00010001 #idle_to_ready +3654 5 0x00010001 #i2c_bus +3655 0xFFFF 0x00010001 #reg_group_id +3656 0xFFFF 0x00010001 #cal_grp_id +3657 64 0x00010001 #gpio1 +3658 0xFFFF 0x00010001 #gpio2 +3659 220 0x00010001 #sensor_id +3660 0x68 0x00010001 #i2c_address +3661 23 0x00010001 #data_type1 +3662 0 0x00010001 #data_type2 +3663 0xFF 0x00010001 #rel_sns_idx +3664 0 0x00010001 #sens_default +3665 0xD0 0x00010001 #flags +3685 0 0x00010001 #device_select + +# +# SSI GPIO configuration +#----------------------------- +2700 1 0x00010001 #maj ver +2701 0 0x00010001 #min ver +2702 23 0x00010001 #I2C SDA_1 +2703 24 0x00010001 #I2C SCL_1 +2704 0xFFFF 0x00010001 #I2C SDA_2(Reserved) +2705 0xFFFF 0x00010001 #I2C SCL_2(Reserved) + +# Mag Cal config +#----------------------------- +3801 1 0x00010001 +3804 0x000a0000 0x10001 #Sample Rate diff --git a/configs/thermal-engine.conf b/configs/thermal-engine.conf deleted file mode 100644 index 39878a7..0000000 --- a/configs/thermal-engine.conf +++ /dev/null @@ -1,94 +0,0 @@ -[msm_therm.DEFAULT] -algo_type monitor -sensor msm_therm -sampling 1000 -thresholds 43000 45000 45500 47000 49000 50500 51500 52500 53000 53300 54000 54500 55500 56000 60200 -thresholds_clr 41000 43000 43500 45000 47000 49500 50500 51500 52000 52300 53000 53500 54500 55000 56000 -actions cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam -action_info 1555200+1958400+0+0+1+1+630000000+209+2+0+100000+0 1555200+1958400+0+0+1+1+630000000+171+3+0+100000+0 1555200+1958400+0+0+1+1+630000000+171+5+0+100000+0 1555200+1248000+0+0+1+1+630000000+141+5+0+100000+0 1478400+864000+0+1+1+1+630000000+141+8+0+001800+0 1344000+384000+1+1+1+1+630000000+115+8+0+001800+0 1248000+384000+1+1+1+1+630000000+95+8+0+001800+0 1248000+384000+1+1+1+1+450000000+78+8+0+001800+0 960000+384000+1+1+1+1+450000000+78+9+1+001800+0 864000+384000+1+1+1+1+390000000+64+11+1+001800+5 768000+384000+1+1+1+1+390000000+64+12+1+001800+5 600000+384000+1+1+1+1+180000000+51+12+1+001800+5 460800+384000+1+1+1+1+180000000+44+12+1+001800+5 384000+384000+1+1+1+1+180000000+44+12+1+001800+6 384000+384000+1+1+1+1+180000000+44+13+1+001800+6 - -[msm_therm.CAMERA-Step] -algo_type monitor -sensor msm_therm -sampling 1000 -thresholds -100000 45500 47000 49000 52000 53500 56000 60200 -thresholds_clr -110000 40000 45500 47000 49000 52000 53500 56000 -actions cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam -action_info 1555200+1958400+0+0+0+0+630000000+141+8+0+100000+0 1555200+1728000+0+0+1+1+630000000+95+9+0+100000+0 1555200+1248000+0+1+1+1+305000000+78+12+0+100000+0 960000+384000+1+1+1+1+305000000+51+12+1+001800+0 960000+384000+1+1+1+1+305000000+51+12+1+001800+1 960000+384000+1+1+1+1+305000000+44+12+1+001800+5 960000+384000+1+1+1+1+305000000+44+12+1+001800+6 384000+384000+1+1+1+1+180000000+44+13+1+001800+6 -disable - -[msm_therm.CAMERA-Low] -algo_type monitor -sensor msm_therm -sampling 1000 -thresholds -100000 45500 47000 49000 53500 57000 60200 -thresholds_clr -110000 40000 45500 47000 49000 53500 57000 -actions cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam -action_info 672000+384000+1+1+1+1+180000000+141+8+0+100000+0 672000+384000+1+1+1+1+180000000+95+9+0+100000+0 672000+384000+1+1+1+1+180000000+78+12+0+100000+0 672000+384000+1+1+1+1+180000000+51+12+1+001800+0 672000+384000+1+1+1+1+180000000+44+12+1+001800+5 672000+384000+1+1+1+1+180000000+44+12+1+001800+6 384000+384000+1+1+1+1+180000000+44+13+1+001800+6 -disable - -[msm_therm.CAMERA-Mid] -algo_type monitor -sensor msm_therm -sampling 1000 -thresholds -100000 45500 47000 49000 53500 57000 60200 -thresholds_clr -110000 40000 45500 47000 49000 53500 57000 -actions cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam -action_info 960000+384000+1+1+1+1+180000000+141+8+0+100000+0 960000+384000+1+1+1+1+180000000+95+9+0+100000+0 960000+384000+1+1+1+1+180000000+78+12+0+100000+0 960000+384000+1+1+1+1+180000000+51+12+1+001800+0 960000+384000+1+1+1+1+180000000+44+12+1+001800+5 960000+384000+1+1+1+1+180000000+44+12+1+001800+6 384000+384000+1+1+1+1+180000000+44+13+1+001800+6 -disable - -[msm_therm.CAMERA-Hi] -algo_type monitor -sensor msm_therm -sampling 1000 -thresholds -100000 45500 47000 49000 53500 57000 60200 -thresholds_clr -110000 40000 45500 47000 49000 53500 57000 -actions cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem+s_cam_ltb_tim+s_cam -action_info 1344000+384000+1+1+1+1+305000000+141+8+0+100000+0 1344000+384000+1+1+1+1+305000000+95+9+0+100000+0 1344000+384000+1+1+1+1+305000000+78+12+0+100000+0 1344000+384000+1+1+1+1+305000000+51+12+1+001800+0 1344000+384000+1+1+1+1+305000000+44+12+1+001800+5 1344000+384000+1+1+1+1+305000000+44+12+1+001800+6 384000+384000+1+1+1+1+180000000+44+13+1+001800+6 -disable - -[msm_therm.CAMERA-All] -algo_type monitor -sensor msm_therm -sampling 1000 -thresholds -100000 45500 47000 49000 -thresholds_clr -110000 40000 45500 47000 -actions cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem cluster0+cluster1+hotplug_4+hotplug_5+hotplug_6+hotplug_7+gpu+s_backlight+battery+modem -action_info 1555200+1958400+0+0+0+0+630000000+141+8+0 1555200+1728000+0+0+1+1+630000000+95+9+0 1555200+1248000+0+1+1+1+305000000+78+12+0 1344000+384000+1+1+1+1+305000000+51+12+1 -disable - -[batt_therm] -algo_type monitor -sensor bms -sampling 1000 -thresholds -100000 43000 44000 67000 -thresholds_clr -110000 41000 42000 0 -actions battery battery battery battery+s_shutdown -action_info 1 2 3 13+5 - -[msm_therm] -algo_type monitor -sensor msm_therm -sampling 1000 -thresholds 54000 60200 62000 74000 -thresholds_clr 50000 59000 60200 0 -actions s_tether+s_tel+s_bg s_tether+s_tel+s_bg s_tether+s_tel+s_bg s_tether+s_tel+s_bg+s_shutdown -action_info 0+0+1 1+1+1 1+1+1 1+1+1+5 - -[bl_therm] -algo_type monitor -sensor quiet_therm -sampling 1000 -thresholds 39000 39500 40000 41000 41500 42000 -thresholds_clr 38000 38500 39000 40000 40500 41000 -actions s_backlight s_backlight s_backlight s_backlight s_backlight s_backlight -action_info 209 171 141 115 78 44 - -[sony_camera] -algo_type monitor -sensor sony_camera_0 -sampling 1000 -thresholds 55000 59000 60000 62000 67000 -thresholds_clr 49000 53000 57000 60000 61000 -actions s_cam_ltb_tim+s_cam s_cam_ltb_tim+s_cam s_cam_ltb_tim+s_cam s_cam_ltb_tim+s_cam s_cam_ltb_tim+s_cam+s_shutdown -action_info 001800+0 001800+1 001800+5 001800+6 001800+6+5 diff --git a/configs/thermanager.xml b/configs/thermanager.xml new file mode 100644 index 0000000..168de44 --- /dev/null +++ b/configs/thermanager.xml @@ -0,0 +1,361 @@ + + + + /sys/class/thermal/thermal_zone0 + /sys/class/thermal/thermal_zone1 + + /sys/class/thermal/thermal_zone2 + /sys/class/thermal/thermal_zone3 + /sys/class/thermal/thermal_zone4 + /sys/class/thermal/thermal_zone5 + /sys/class/thermal/thermal_zone6 + /sys/class/thermal/thermal_zone7 + + /sys/class/thermal/thermal_zone8 + /sys/class/thermal/thermal_zone9 + /sys/class/thermal/thermal_zone10 + /sys/class/thermal/thermal_zone11 + /sys/class/thermal/thermal_zone12 + /sys/class/thermal/thermal_zone13 + /sys/class/thermal/thermal_zone14 + /sys/class/thermal/thermal_zone15 + /sys/class/thermal/thermal_zone16 + /sys/class/thermal/thermal_zone17 + + /sys/class/thermal/thermal_zone18 + /sys/class/thermal/thermal_zone19 + /sys/class/thermal/thermal_zone20 + /sys/class/thermal/thermal_zone21 + /sys/class/thermal/thermal_zone22 + /sys/class/thermal/thermal_zone23 + /sys/class/thermal/thermal_zone24 + /sys/class/thermal/thermal_zone25 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /sys/module/msm_performance/parameters/cpu_max_freq + /sys/module/msm_performance/parameters/cpu_max_freq + + + /sys/devices/system/cpu/cpuquiet/nr_thermal_max_cpus + + + /sys/class/kgsl/kgsl-3d0/max_gpuclk + /sys/class/power_supply/usb/current_max + /sys/class/power_supply/battery/system_temp_level + /sys/class/power_supply/battery/charging_enabled + + + + + + + + + + 1500000 + 1100000 + 900000 + 700000 + 500000 + 300000 + 150000 + + + + 1 + 0 + + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + + + + 0 + 1 + + + + NORMAL + WARNING + CRITICAL + + + + + + + + + 600000000 + 510000000 + 450000000 + 390000000 + 305000000 + 180000000 + + + + + 0:4294967295 + 0:1478400 + 0:1344000 + 0:1248000 + 0:960000 + 0:864000 + 0:768000 + 0:672000 + 0:600000 + 0:460800 + 0:384000 + + + + + 4:4294967295 + 4:1824000 + 4:1728000 + 4:1632000 + 4:1536000 + 4:1440000 + 4:1344000 + 4:1248000 + 4:960000 + 4:864000 + 4:768000 + 4:633600 + 4:480000 + 4:384000 + + + + + 8 + 7 + 6 + 5 + 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/configs/wlan/bcmdhd.cal b/configs/wifi/bcmdhd.cal similarity index 100% rename from configs/wlan/bcmdhd.cal rename to configs/wifi/bcmdhd.cal diff --git a/device.mk b/device.mk index 90e82b4..2310518 100644 --- a/device.mk +++ b/device.mk @@ -21,27 +21,32 @@ $(call inherit-product, device/sony/kitakami-common/device-common.mk) # Get non-open-source specific aspects $(call inherit-product, vendor/sony/satsuki/satsuki-vendor.mk) -# Overlays -DEVICE_PACKAGE_OVERLAYS += $(LOCAL_PATH)/overlay - -# Screen density -PRODUCT_AAPT_CONFIG := normal -PRODUCT_AAPT_PREF_CONFIG := xxhdpi +DEVICE_PACKAGE_OVERLAYS += \ + $(DEVICE_PATH)/overlay # Boot animation TARGET_SCREEN_HEIGHT := 3840 TARGET_SCREEN_WIDTH := 2160 -# Dalvik/HWUI -$(call inherit-product, frameworks/native/build/phone-xxhdpi-2048-dalvik-heap.mk) +# Device uses high-density artwork where available +PRODUCT_AAPT_CONFIG := normal +PRODUCT_AAPT_PREF_CONFIG := xxhdpi -# init +# Init PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/rootdir/bin/init.qcom.power.sh:system/bin/init.qcom.power.sh -# Audio configuration +# Audio PRODUCT_COPY_FILES += \ - $(LOCAL_PATH)/audio/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml + $(LOCAL_PATH)/audio/audio_policy.conf:system/etc/audio_policy.conf \ + $(LOCAL_PATH)/audio/mixer_paths.xml:system/etc/mixer_paths.xml + +# Fingerprint +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.hardware.fingerprint.xml:system/etc/permissions/android.hardware.fingerprint.xml + +PRODUCT_PACKAGES += \ + android.hardware.biometrics.fingerprint@2.1-service # Input PRODUCT_COPY_FILES += \ @@ -49,7 +54,8 @@ PRODUCT_COPY_FILES += \ # IRSC PRODUCT_COPY_FILES += \ - $(LOCAL_PATH)/configs/sec_config:system/etc/sec_config + $(LOCAL_PATH)/configs/sec_config:system/etc/sec_config \ + $(LOCAL_PATH)/configs/sensors/sensor_def_qcomdev.conf:system/etc/sensors/sensor_def_qcomdev.conf # NFC configs PRODUCT_COPY_FILES += \ @@ -64,15 +70,9 @@ PRODUCT_COPY_FILES += \ # Thermal PRODUCT_COPY_FILES += \ - $(LOCAL_PATH)/configs/thermal-engine.conf:system/etc/thermal-engine.conf + $(LOCAL_PATH)/configs/thermanager.xml:system/etc/thermanager.xml # WLAN PRODUCT_COPY_FILES += \ - $(LOCAL_PATH)/configs/wlan/bcmdhd.cal:system/etc/firmware/wlan/bcmdhd/bcmdhd.cal - -# Fingerprint -PRODUCT_COPY_FILES += \ - frameworks/native/data/etc/android.hardware.fingerprint.xml:system/etc/permissions/android.hardware.fingerprint.xml - -PRODUCT_PACKAGES += \ - android.hardware.biometrics.fingerprint@2.1-service + $(LOCAL_PATH)/configs/BCM4356.hcd:system/etc/firmware/BCM43xx.hcd \ + $(LOCAL_PATH)/configs/wifi/bcmdhd.cal:system/etc/wifi/bcmdhd.cal diff --git a/proprietary-files.txt b/proprietary-files.txt index 7bceec0..27cfb33 100644 --- a/proprietary-files.txt +++ b/proprietary-files.txt @@ -7,9 +7,6 @@ etc/acdbdata/Sony/Sony_Hdmi_cal.acdb etc/acdbdata/Sony/Sony_Headset_cal.acdb etc/acdbdata/Sony/Sony_Speaker_cal.acdb -# Bluetooth -etc/firmware/BCM43xx.hcd - # Camera bin/mm-qcamera-daemon lib/hw/camera.qcom.so @@ -139,6 +136,7 @@ vendor/lib/liboemcamera.so vendor/lib/libqomx_jpegdec.so vendor/lib/libqomx_jpegenc.so vendor/lib/libqomx_jpegenc_pipe.so +vendor/lib/libseemore.so vendor/lib64/libmmcamera2_q3a_core.so vendor/lib64/libmmcamera2_sensor_debug.so vendor/lib64/libmmcamera2_stats_algorithm.so @@ -534,23 +532,117 @@ vendor/lib64/lib-sec-disp.so vendor/lib64/libssd.so vendor/lib64/libStDrvInt.so +# Modem +etc/customization/modem/amss_fs_empty.mbn +etc/customization/modem/amss_fsg_satsuki_a1_austria_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_att_us_tar.mbn +etc/customization/modem/amss_fsg_satsuki_beeline_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_bouygues_france_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_china_mobile_hk_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_cht_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_csl_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_ctm_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_docomo_tar.mbn +etc/customization/modem/amss_fsg_satsuki_ee_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_ee_tar.mbn +etc/customization/modem/amss_fsg_satsuki_ee_vowifi_only_tar.mbn +etc/customization/modem/amss_fsg_satsuki_emt_estonia_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_fareastone_tar.mbn +etc/customization/modem/amss_fsg_satsuki_france_tar.mbn +etc/customization/modem/amss_fsg_satsuki_gteb_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_hutch_austria_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_hutch_austria_tar.mbn +etc/customization/modem/amss_fsg_satsuki_hutch_denmark_tar.mbn +etc/customization/modem/amss_fsg_satsuki_hutch_hk_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_hutch_ireland_tar.mbn +etc/customization/modem/amss_fsg_satsuki_hutch_italy_tar.mbn +etc/customization/modem/amss_fsg_satsuki_hutch_sweden_tar.mbn +etc/customization/modem/amss_fsg_satsuki_hutch_sweden_vowifi_only_tar.mbn +etc/customization/modem/amss_fsg_satsuki_hutch_uk_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_hutch_uk_tar.mbn +etc/customization/modem/amss_fsg_satsuki_hutch_uk_volte_vowifi_tar.mbn +etc/customization/modem/amss_fsg_satsuki_india_tar.mbn +etc/customization/modem/amss_fsg_satsuki_indonesia_tar.mbn +etc/customization/modem/amss_fsg_satsuki_ir51_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_ir51_ir92_ims_gte_tar.mbn +etc/customization/modem/amss_fsg_satsuki_ir51_ir92_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_ir92_ims_gte_tar.mbn +etc/customization/modem/amss_fsg_satsuki_ir92_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_jazztel_tar.mbn +etc/customization/modem/amss_fsg_satsuki_kpn_tar.mbn +etc/customization/modem/amss_fsg_satsuki_m1_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_megafon_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_movistar_tar.mbn +etc/customization/modem/amss_fsg_satsuki_mts_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_orange_france_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_orange_france_pp_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_orange_france_tar.mbn +etc/customization/modem/amss_fsg_satsuki_orange_poland_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_orange_romania_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_orange_spain_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_orange_spain_vowifi_only_tar.mbn +etc/customization/modem/amss_fsg_satsuki_orange_tar.mbn +etc/customization/modem/amss_fsg_satsuki_pccw_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_reliance_jio_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_salt_switzerland_vowifi_only_tar.mbn +etc/customization/modem/amss_fsg_satsuki_sfr_france_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_singtel_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_smartone_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_starhub_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_swisscom_switzerland_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_taiwanmobile_tar.mbn +etc/customization/modem/amss_fsg_satsuki_tar.mbn +etc/customization/modem/amss_fsg_satsuki_telcel_tar.mbn +etc/customization/modem/amss_fsg_satsuki_tele2_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_tele2_netherlands_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_telefonica_germany_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_telefonica_germany_tar.mbn +etc/customization/modem/amss_fsg_satsuki_telefonica_spain_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_telefonica_spain_vowifi_only_tar.mbn +etc/customization/modem/amss_fsg_satsuki_telefonica_uk_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_telefonica_uk_tar.mbn +etc/customization/modem/amss_fsg_satsuki_telekom_czech_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_telekom_czech_volte_vowifi_tar.mbn +etc/customization/modem/amss_fsg_satsuki_telekom_germany_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_telekom_germany_volte_vowifi_tar.mbn +etc/customization/modem/amss_fsg_satsuki_telekom_tar.mbn +etc/customization/modem/amss_fsg_satsuki_telenor_norway_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_telenor_norway_volte_vowifi_tar.mbn +etc/customization/modem/amss_fsg_satsuki_telia_norway_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_telia_sweden_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_telstra_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_telstra_tar.mbn +etc/customization/modem/amss_fsg_satsuki_telstra_trial_tar.mbn +etc/customization/modem/amss_fsg_satsuki_tim_italy_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_tim_italy_volte_vilte_tar.mbn +etc/customization/modem/amss_fsg_satsuki_tim_tar.mbn +etc/customization/modem/amss_fsg_satsuki_tmobile_us_tar.mbn +etc/customization/modem/amss_fsg_satsuki_vivo_tar.mbn +etc/customization/modem/amss_fsg_satsuki_vodafone3_tar.mbn +etc/customization/modem/amss_fsg_satsuki_vodafone4_tar.mbn +etc/customization/modem/amss_fsg_satsuki_vodafone5_tar.mbn +etc/customization/modem/amss_fsg_satsuki_vodafone_germany_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_vodafone_nl_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_vodafone_spain_ims_tar.mbn +etc/customization/modem/amss_fsg_satsuki_vodafone_uk_ims_tar.mbn + # NFC lib64/hw/libpn547_fw.so # Sensors +bin/sensors.qcom:vendor/bin/sensors.qcom etc/sensors/hals.conf:vendor/etc/sensors/hals.conf -etc/sensors/sensor_def_qcomdev.conf -bin/sensors.qcom -vendor/lib/libdataitems.so +vendor/lib/hw/activity_recognition.msm8994.so vendor/lib/libsensor1.so vendor/lib/libsensor_reg.so vendor/lib/sensors.ssc.so -vendor/lib64/libdataitems.so +vendor/lib64/hw/activity_recognition.msm8994.so vendor/lib64/libsensor1.so vendor/lib64/libsensor_reg.so vendor/lib64/sensors.ssc.so # Thermal +etc/thermal-engine.conf vendor/bin/thermal-engine vendor/lib/libthermalclient.so vendor/lib64/libthermalclient.so