<@center><b><#selectbg_g>jolla-kernel 체인지로그</#></b>

<b><#selectbg_g>jollaman999 @xda 개발자</#></b>
<b><#selectbg_g>https://github.com/jollaman999</#></b>

<b><#selectbg_g>[bullhead_II-v11.0]</#></b></@>
== 커널 ==
>> 공통 <<
- leds-qpnp, mdss: mdss 백라이트 값에 기반하여 충전 LED 밝기 조정
(백라이트 밝기를 조정하였을 경우, 케이블을 재연결한 후 LED 밝기가 바뀝니다.)
- cpufreq: ironactive 거버너 제거
(현재 interactive 거버너와 99% 일치함.)
- sched/loadavg: Fix loadavg artifacts on fully idle and on fully loaded systems
- sg: Fix double-free when drives detach during SG_IO
- af_unix: 일부 업스트림 패치들 적용
- msm_thermal: system_power_efficient_wq 에 큐 할당

== AIO ==
- f2fs-tools: cm-14.1 소스로 리베이스
- multirom: 빌드 플랫폼을 cm-14.1 로 변경
- multirom: Password UI 에서 메인롬 자동 부팅
- multirom: 테마들 순서를 거꾸로 하고 블랙 테마를 기본 값으로 설정
- multirom: 패턴의 점들과 라인들의 색상 변경
- multirom: Password UI 애서 자동 부팅 스킵시 메세지 표시
- multirom: 가능성 있는 boot.img truncation 수정
- multirom: 잠재적인 세그멘테이션 오류 수정
- multirom: 'force autoboot' 에 대하여 파티션 정보 수정
- multirom: file_contexts[.bin] 바이너리 파일 지원
- multirom: multirom: core: Android 7.1 /cache symlink 지원
- multirom: Fix: Android 7.x 에서 fstab 에 /data 요소가 필요 (개발자 옵션 충돌 문제 해결!)
- multirom: 세컨 롬들 부팅시 pw_ui 에서 자동 부팅 하지 않음
- multirom: multirom: 기본 밝기를 149 로 설정

== 리커버리 ==
- 최신 cm-14.1 소스들과 새로운 f2fs-tools 로 재빌드함
- jolla-kernel_bullhead_II-v11.0 적용

<b><#selectbg_g>[bullhead_II-v10.3]</#></b>
== 커널 ==
>> Android 6.0.1 <<
- sdcardfs: 외부 저장소가 잘못된 uid 를 내보내는 것을 수정  (포토 앱과 같은 권한 거부 문제 수정.)
(Android 6.0.1 에서 빠뜨렸습니다..)
- power: qpnp-smbcharger: 누가로 부터 패치들 적용

>> 공통 <<
- selinux: 중복된 코드들 제거
- cpufreq: ironactive 거버너 추가
- workqueues: Power efficient workqueue 지원
- power: smbcharger: system_power_efficient_wq 에 큐 할당
- power: bcl: system_power_efficient_wq 에 큐 할당
- power: qpnp-fg: system_power_efficient_wq 에 큐 할당
- f2fs: dev 브랜치 패치들 커널 소스에 맞게 적용 함

== AIO ==
- updater-script: Android 7.1.1 에서 빠진 sdcardfs 활성화 추가
- f2fs-tools: dev 브랜치 패치들 기존 소스에 맞게 적용 함

== 리커버리 ==
- 최신 cm-14.1 소스들과 새로운 f2fs-tools 로 재빌드함
- jolla-kernel_bullhead_II-v10.3 적용

<b><#selectbg_g>[bullhead_II-v10.2]</#></b></@>
== 커널 ==
>> Android 7.0.0 & Android 7.1.1 <<
- sdcardfs: CyanogenMod/android_kernel_oneplus_msm8996 로 부터 패치들 적용
- sdcardfs: 외부 저장소가 잘못된 uid 를 내보내는 것을 수정  (포토 앱과 같은 권한 거부 문제 수정.)

>> 공통 <<
- Linaro gcc 6.2.1-2016.11-rc2 로 빌드
- mdss: 화면이 꺼진 상태에서 마이크 이용중 mdss 를 끔
- kexec: hardboot 영역 분리 및 일부 매크로들 수정

== AIO ==
- sdcardfs: 비활성화 되었을때만 클린업
- sdcardfs: 불필요한 라인들 제거 및 sdcardfs 가 이미 활성화 되어있을때 빈 라인들이 추가되는 현상 수정
- sdcardfs: sdcardfs 를 기본으로 활성화
- lang: sdcardfs 에 대해 일부 스트링들 수정
- lang: SOVC 에 대해 일부 스트링들 수정
- 맞지 않는 서명들 제거
- 저의 self signature 로 사인함

== 리커버리 ==
- Linaro gcc 6.2.1-2016.11-rc2 로 빌드
- 빌드 플랫폼을 cm-14.1 로 변경
- recovery: Add support to brick a device.
- recovery: Track the name change for wipe_ab.
- Verify wipe package when wiping A/B device in recovery.
- bootloader_message 정적 라이브러리 생성. (Squashed)
- cm-14.1 에서의 빌드 에러들 수정
- multirom: ext4 이미지 생성시 'file_contexts.bin' 사용
- file_contexts.bin 를 먼저 사용하고 이가 존재하지 않을 경우 file_contexts 사용
- jolla-kernel_bullhead_II-v10.2 적용

<b><#selectbg_g>[bullhead_II-v10.1]</#></b>
== 커널 ==
>> Android 6.0.1 <<
- 10.0 에서 빠진 2 커밋들 적용 (온도 수정, NULL 포인터 dereference 수정)

>> 공통 <<
- sdcardfs: 파일들을 non-mappable 로 표시함
- touchscreen, mdss: Sweep2Sleep 구현
- power: wakeup: wakeup 소스가 활성화 상태일때만 비활성화 하도록 시도
- power: wakeup: ipa_ws 옵션 추가

== AIO ==
- Android 버젼 스트링들 수정
- ramdisk: ramdump 와 bugreport 복원

== 리커버리 ==
- jolla-kernel_bullhead_II-v10.1 적용

<b><#selectbg_g>[bullhead_II-v10.0]</#></b>
== 커널 ==
>> 공통 <<
- Android 7.1.x 지원
- Google 11월 패치들 적용
- sovc: dt2w 나 s2w 가 활성화 되었을 때 sovc 강제 끄기가 작동하지 않는 문제 수정
- sovc: 가끔 A2DP 가 정지되었거나 블루투스가 꺼졌을 때 SOVC 가 비활성화 되지 않는 문제 수정
- sovc: 통화 종료후 SOVC 가 비활성화 되지 않는 문제 수정
- sovc: s2w 가 활성화 되어있고 'sovc_force_off=true' 상태일 때 DT2W 가 작동하는 문제 수정
- sovc: S2W 가 활성화 되었을 때 트랙 변경 무시
- sovc: 사용자 공간의 값이 이전값과 일치할 때 스킵
- sovc: 블루투스 기기 사용중에 트랙 전환시 터치스크린이 켜져 있도록 함
- sovc: sovc 가 필요할 때 등록함
- s2w: 화면이 일시정지 상태일때만 등록
- msm_thermal: poll_ms 파라미터 추가
- msm_thermal: msm8992.dtsi: poll-ms 증가
- msm_thermal: msm8992.dtsi: 온도 제한 감소
- msm_thermal: 빅 클러스터의 작동 분리
(장치를 시원하고 부드럽게 함. 낮은 온도에서 부드러운 성능을 얻을 수 있음.)
- i2c: core: 레이스 컨디션에 의한 NULL 포인터 dereference 수정

== AIO ==
- Android 7.1.x 지원 추가

== 리커버리 ==
- MultiROM: Fix installation of zip files missing updater-script
- multiromedify: check for run_program umount command
- MultiROM: 컴파일 경고들 수정
- 버젼 스트링을 3.0.2-3 으로 변경
- jolla-kernel_bullhead_II-v10.0 적용

<b><#selectbg_g>[bullhead_II-v9.1]</#></b>
== 커널 ==
>> 공통 <<
- Linaro gcc 6.2.1-2016.11-rc1 로 빌드
- Linux 3.10.104
- ksm: 업스트림 변경 사항들 적용
- f2fs: f2fs-stable 브랜치 패치들 적용
- nanohub: marlin 으로 부터 Android 7.1 변경사항 적용
- lowmemorykiller: marlin 으로 부터 Android 7.1 변경사항 적용
- arm, kbuild: "make install" 이 vmlinux 에 의존하지 않도록 함
- arm64: kbuild: "make install" 이 vmlinux 에 의존하지 않도록 함
- arm64: libgcc 의존성 없앰
- kbuild: arm: "comma" 를 두번 정의 하지 않음
- kgsl: 일부 workqueue 들이 kthread 를 사용하도록 함 (from marlin)
- mdss: vsync_retire_work_handler 에 대해 kthread 를 사용하도록 함 (from marlin)
- proc: 더 빠른 /proc/vmstat
- 변경 사항 취소 "sched/fair: Fix fairness issue on migration"
- proc: verifiedbootstate 플래그를 /proc/cmdline 로 부터 제거함

** Dirtycow patch 는 이미 이전에 Linux 3.10.x 변경 사항들에서 적용되었습니다. **

== AIO ==
- ramdisk: fstab.bullhead: /data 에 대해 readahead 감소
- N 에서의 sdcardfs 지원 수정
- langs: 7.0.x 를 7.x.x 로 변경

== 리커버리 ==
- jolla-kernel_bullhead_II-v9.1 적용

<b><#selectbg_g>[bullhead_II-v9.0]</#></b>
== 커널 ==
>> 공통 <<
- 변경사항 취소 "sched: Force sleep on consecutive sched_yields"
- net: sch_generic: Allow devices to opt-out net watchdog
- [backport] sched, nohz: Change rq->nr_running to always use wrappers
- 변경사항 취소 "lib: do_strncpy_from_user: Fix return error code for get_user failures"
- 변경사항 취소 "lib: align source before using optimized implementation"

== AIO ==
- fstab.bullhead: 누가 변경 사항들 적용

== 리커버리 ==
- AROMA 인스톨러로 설치중에 화면 잠금 해제가 안되는 문제 수정
- Android 7.0 업데이트 스크립트 실패 문제 해결
- Support symlinked init in ramdisk
- Fix missing variables
- omnirom/android_bootable_recovery 로 부터 android-7.0 변경 사항들 적용
- jolla-kernel_bullhead_II-v9.0 적용

<b><#selectbg_g>[bullhead_II-v8.2]</#></b>
== 커널 ==
>> 공통 <<
- msm_thermal: big 의 주파수에 좀 더 제한을 줌
- msm_thermal: 수정가능한 옵션들에 코멘트 추가
- msm_thermal: 잘못된 타겟 index 수정
- sovc: 변경된 값 체크하지 않음
- sovc: 몇몇 불필요한 'sovc_force_off' 체크들 제거
- sovc: 가끔 블루투스 연결이 끊어진 후에도 sovc 가 비활성화 되지 않는 문제 수정
- sovc: A2DP 상태를 변경하는 동안 'sovc_scroff_volctr_temp_dump' 에 Lock 을 검
- f2fs: f2fs-stable 브랜치 패치들 적용

== AIO ==
- 'cleaner.sh' 제거
- A2DPChecker: 라이브러리 업데이트 및 일부 접근제어자들 클린업

== 리커버리 ==
- jolla-kernel_bullhead_II-v8.2 적용

<b><#selectbg_g>[bullhead_II-v8.1]</#></b>
== 커널 ==
>> 공통 <<
- 누가의 10월 패치들 적용 (Wi-Fi 패치들은 M에서 제외.)
- sovc: 블루투스의 A2DP 재생 상태 저장
- cpufreq: cpu-boost: boost the input boost notifier to max prio
- cpufreq: cpu-boost: 터치시에 바보 같은 빅 클러스터가 부스트 되로록 함
- cpufreq: interactive: hispeed_freq init 제한 제거
- UPSTREAM: 일부 잠재적인 문제들 수정
- UPSTREAM: net diag 업스트림 패치들 적용

== AIO ==
- init.bullhead.rc: 리틀의 부스트 증가 및 빅의 부스트 활성화
- init.bullhead.rc: 리틀의 target_loads 조절

== 리커버리 ==
- jolla-kernel_bullhead_II-v8.1 적용

<b><#selectbg_g>[bullhead_II-v8.0]</#></b>
== 커널 ==
>> 공통 <<
- 더 나아진 성능과 더 좋아진 배터리
- 소스 클린업
- Linux 3.10.103
- 9월 패치들 적용
- Linaro gcc 6.1.1-2016.08-rc2 로 빌드
- mmc: crc 체크 비활성화
- block: add_random 비활성화
- block: scheduler: ZEN v2 추가
- block: zen: eMMC 와 CPU 의 부하를 줄이기 위해 fifo batch 를 16으로 설정
- arp: arp_project의 sysfs 노드들과 arp_print_info export
- arp: 이미 include 된 라인 제거
- arp, net/core: Export 들 수정
- 변경 사항 취소 "arp: Request 가 수행되지 않았거나 소스 IP가 Request 했던 타겟 IP 와 다를때 Reply 무시"
- arp: 시간 정보 제거
- arp: 'print_arp_info' 를 더 일찍 체크
- arp: 게이트웨이 탐지 수정
- arp: ignore_gw_update_by_reply 옵션 추가
- arp: memcpy 클린업, 'arp_print_info' 에 있는 필요없는 않는 변수들 제거
- Power efficient workqueue 제거
- f2fs: stable branch 로 되돌아가고 lazytime 패치 적용
- sovc: 재생중 상태 notifier 추가와 *~tmp 포인터들 클린업 + 몇몇 버그들 수정
- tcp_cubic: Hystart 가 얼마나 효과적인지 추적하기 위해 SNMP 카운터들 추가
- tcp_cubic: Hystart delay threshold 수정
- inet_diag: tcp cc 정보 액세스 수정
- tcp: CDG 혼잡 제어 추가
- tcp: cdg: div_u64() 사용
- tcp: tcp_in_slow_start helper 추가
- tcp: cwnd 가 ssthresh 와 같을 때 천천히 시작하지 않음
- tcp: tcp_enter_cwr 와 tcp_init_cwnd_reduction 의 불필요한 인수들 제거
- proc: jolla-kernel 의 버젼 정보 추가
- msm_thermal: 일부 잘못된 로직들 수정
- msm_thermal: 발열 감소와 기기 성능 증가
- msm_thermal: 'freq_step' 파라미터 추가
- msm_thermal: core_control 와 freq_control 디버그 옵션 추가

== AIO ==
- init.d: 오래된 라인들 제거 및 seclabel 추가
- aroma: N의 이름을 Nougat 로 수정 후 기본값으로 설정
- kcal 과 sovc 비활성화가 작동하지 않는 문제 수정.
- updater-script: 'jolla-kernel.prop' 설치 라인들 제거
- sepolicy 패치 제거
- aroma: MultiROM 라이센스 추가
- aroma: license: ko: '<U+FEFF>' 제거.
- multirom: Linaro gcc 6.1.1-2016.08-rc2 로 빌드

== jolla-kernel Updater ==
- 라이브러리들 업데이트
- 강제 종료 문제들 수정
- v1.5 로 버젼업

== 리커버리 ==
- Linaro gcc 6.1.1-2016.08-rc2 로 빌드
- 3.0.2-2
- init.recovery.bullhead.rc: 파워 설정들 추가
(리커버리를 사용할 때 기본 거버너가 'performance' 로 되어있어서 기기가 매우 뜨거워 집니다.
또한 리커버리 모드에서 장시간 켜놓았을때 제 보드가 나갔습니다.
따라서 안전을 위해 거버너를 'interactive' 로 바꾸고 파워 설정들을 추가했습니다.)
- jolla-kernel_bullhead_II-v8.0 적용

<b><#selectbg_g>[bullhead_II-v7.0]</#></b>
== 커널 ==
>> 공통 <<
- 변경 사항 취소 "msm: mdss: support parallel execution of MDSS_EVENT handlers"
- workqueues: 파워 지향 WQ_POWER_EFFICIENT 새 플래그 소개
- power efficient workqueue 사용 - firmware, net/wireless, rcu, net/ipv4,
      PHYLIB, ASoC, net/neighbour, timekeeping, net/rfkill, usb, regulator/core
- BACKPORT: Bluetooth: RFCOMM bind callback 의 잠재적인 NULL dereference 수정
- net: ipv6: 링크 로컬 주소로의 핑 수정
- ipv6: icmpv6_err 의 endianness 에러 수정
- 업스트림의 (CVE-2016-5696) 변경 사항 취소
- [PATCH v3 3.10.y] tcp: make challenge acks less predictable (CVE-2016-5696)
- arp: 작업을 power efficient workqueue 에 할당
- touchscreen: synaptics: 작업을 power efficient workqueue 에 할당
- touchscreen: sovc: 작업을 power efficient workqueue 에 할당
- touchscreen: dt2w: 작업을 power efficient workqueue 에 할당
- touchscreen: s2w: 작업을 power efficient workqueue 에 할당
- net: cnss: 작업을 power efficient workqueue 에 할당
- net: wcnss: 작업을 power efficient workqueue 에 할당
- qcacld-2.0: 작업을 power efficient workqueue 에 할당
- touchscreen: sovc: 화면이 켜졌을때 sovc_auto_off_check_work 취소
- f2fs: 최신 dev 브랜치 패치들 적용

>> N <<
- mdss: mdp3: 유저 스페이스 입력 검증

== 리커버리 ==
- omni android-6.0 최신 TWRP 패치들 적용
- 암호화된 Android N 기기에서의 복호화 수정
- bionic: add fortified implementations of write/pwrite{,64}
  (N 에서의 복호화 수정후 멀티롬 설치 문제 수정)
- jolla-kernel_bullhead_II-v7.0 적용

<b><#selectbg_g>[bullhead_II-v6.3]</#></b>
== 커널 ==
>> 공통 <<
- sovc: 자동 끄기 지연시간이 길어지는 문제 수정
- sovc: 자동 끄기 지연시간의 기본값을 2.5초로 줄임
- tcp: make challenge acks less predictable (CVE-2016-5696)

>> N <<
- Revert "bullhead-nanohub: 올바르게 테이블 매칭"
- Revert "bullhead-hardboot: N 에서 M 으로 부팅했을시 회전 문제 수정"
(기존 방법이 큰 배터리 드레인을 발생시킴.)
- bullhead-sensorhub: M 으로 hardboot 이 수행될때의 호환성 추가

>> M <<
- bullhead-sensorhub: hardboot 이 수행되었을때 작동하기 위해 라벨들 이름 변경

== AIO ==
- sovc: 설정할 수 있는 자동 끄기 지연시간 값들 조정
- multirom: kexec-tools 를 2.0.13 으로 업데이트

== 리커버리 ==
- jolla-kernel_bullhead_II-v6.3 적용

<b><#selectbg_g>[bullhead_II-v6.2]</#></b>
== 커널 ==
>> 공통 <<
- Linaro gcc 6.1.1 로 빌드
- 빠른 zram
- Linux kexec 업스트림 변경사항들 적용
- netfilter: x_tables: make sure e->next_offset covers remaining blob size
- CHROMIUM: android: binder: Fix potential scheduling-while-atomic
- UPSTREAM: netfilter: x_tables: validate e->target_offset early
- qseecom: added small sleep between busy-wait calls to TZ
- cpufreq: interactive: Honor changed minimum frequency
- cpufreq: interactive: Consider changed min limit a frequency boost
- msm: mdss: revert to stock wait_event behaviour on display threads. Was causing some weird lockups in some games
- xpad: 최신 업스트림 버젼
- ashmem: fix CVE-2016-5340
- arm64: dma-mapping: always clear allocated buffers
- arp: 'for' 구문들의 스페이스들 수정
- arp: arp_find_gw 에서 잘못된 return 수정
- power:qpnp-charger: extended charge time from 30s to 100s when battery status is near to full
- qcacld-2.0: misleading-indentation 경고들 수정

>> N <<
- bullhead-hardboot: N 에서 M 으로 부팅했을시 회전 문제 수정
- bullhead-nanohub: 올바르게 테이블 매칭

== AIO ==
- init.bullhead.rc: 불필요한 라인들 제거
- N 의 퍼포먼스 문제 수정
- updater: jolla-kernel Updater v1.4 (N 에서의 강제 종료 문제 수정.)
- aroma: PNG 파일들 최척화 및 사이즈 줄임
- f2fs-tools: 릴리즈 1.7.0
- multirom: 바이너리들 재빌드 및 라이브러리들 업데이트 (Linaro gcc 6.1.1)

== 리커버리 ==
- omni android-6.0 최신 TWRP 패치들 적용
- adb backup 지원 및 Restore_Partition 변경사항들의 변경사항들 취소 (multirom 복원 망가뜨림.)
- jolla-kernel_bullhead_II-v6.2 적용

<b><#selectbg_g>[bullhead_II-v6.1]</#></b>
== 커널 ==
>> 공통 <<
- Google 의 보안 업데이트들 적용

== AIO ==
- ramdisk: sepolicy 업데이트
- 다양한 롬들에 대해 sdcardfs 지원

== 리커버리 ==
- omni android-6.0 최신 TWRP 패치들 적용
- jolla-kernel_bullhead_II-v6.1 적용

<b><#selectbg_g>[bullhead_II-v6.0]</#></b>
== 커널 ==
>> 공통 <<
- UPSTREAM: KEYS: Fix ASN.1 indefinite length object parsing
- f2fs: dev 브랜치 최신 패치들 적용
- 잘가요 msm_hotplug
- zram: lz4 를 기본 compressor 로 사용
- ksm: prepare to new THP semantics
- qcacld-2.0: HIFTargetSleepStateAdjust 의 trace 비활성화
- radix-tree: fix radix_tree_iter_retry() for tagged iterators.
- sdcardfs: 구글 업데이트 적용
- Appiled CyanogenMod/android_kernel_oneplus_msm8996 로 부터 crypto 패치들 적용

>> M <<
- sdcardfs: CyanogenMod/android_kernel_oneplus_msm8996 로 부터 패치와 수정 사항들 적용

== AIO ==
- ramdisk: init.bullhead.rc: LZ4 가 이제 기본이다.
- ramdisk: sepolicy 업데이트
- cm-13.0 를 위한 sdcardfs 지원

== 리커버리 ==
- 새 cm-13.0 소스들로 재빌드
- jolla-kernel_bullhead_II-v6.0 적용

<b><#selectbg_g>[bullhead_II-v5.1]</#></b>
== 커널 ==
>> 공통 <<
/* lazytime 관련 하여 몇몇 패치들 적용 */
- fs: lazytime inode 들의 타임스태프가 제대로 쓰여지게 함
- fs: dirtytime_expire_seconds sysctl 추가
- ext4: lazytime 최적화 수정

- vfs: get_next_ino 에서 0 인 inode 를 생성하지 못하게 함
- ext4: ext2 마운트 들에 대헤 저널 옵션 무시
- mdss: 4K 비디오들의 플레이 문제를 방생하는 일부 변경사항들 취소
- 몇몇 업스트림 패치들 적용
- cpufreq: interactive: franco 로 부터 일부 변경 사항들 적용

== AIO ==
- ramdisk: init.superuser.rc: su_daemon 의 selinux 권한 수정
- multirom_hack.sh: otg.prop not found 에러 수정
- updater-script: 세컨롬들에서 MultiROM 설치시 무시하도록 함

== 리커버리 ==
- jolla-kernel_bullhead_II-v5.1 적용

<b><#selectbg_g>[bullhead_II-v5.0]</#></b>
== 커널 ==
>> 공통 <<
/* lazytime 마운트 옵션 지원 */
- vfs: lazytime 마운트 옵션 지원 추가
- f2fs: lazytime 마운트 옵션 지원
- f2fs: dev 브랜치 최신 패치들 적용
- ext4: lazytime 마운트 옵션을 위한 최적화 추가
- ext4: mount 에 의해 MS_LAZYTIME 이 설정 되었을때 리마운트시 lazytime 설정

/* 일부 android-msm-bullhead-3.10-marshmallow-dr1.6 변경 사항들 취소 */
- 변경사항 취소 "mdss: mdp3: Validate input from userspace" (배터리 드레인 발생.)
- 변경사항 취소 "ASoC: msm: audio-effects: misc fixes in h/w effects (update)" (스피커 사운드를 작게함.)
- 변경사항 취소 "ASoC: msm: audio-effects: misc fixes in h/w accelerated effect"

/* sovc 와 dt2w 를 위한 일부 수정 사항들 */
- touchscreen: sovc: 터치스크린을 끌때 진동을 두번 울림
- touchscreen: sovc: work 구조체를 큐에 넣기 전에 터치 상태를 확인
- touchscreen: sovc, synaptics: touch off 작업의 레이스 컨디션 방지
- touchscreen: dt2w: 불필요한 scr_suspended 체크 제거

== AIO ==
/* ext4 와 f2fs 파티션들에 대해 lazytime 마운트 옵션 활성화 */
- ramdisk: fstab.bullhead: ext4 파티션들에 대해 discard 옵션 활성화
- ramdisk: fstab.bullhead: noatime,nodiratime 옵션들을 lazytime 으로 변경
- ramdisk: fstab.bullhead: persist 파티션에 대해 lazytime 옵션 활성화
- ramdisk: fstab.bullhead: system 과 vendor 에 대해 lazytime 옵션 활성화
- ramdisk: fstab.bullhead: vendor 에 대해 barrier 비활성화

== 리커버리 ==
- jolla-kernel_bullhead_II-v5.0 적용

<b><#selectbg_g>[bullhead_II-v4.1]</#></b>
== 커널 ==
>> 공통 <<
- android-msm-bullhead-3.10-marshmallow-dr1.6 변경 사항들 적용

== AIO ==
- OTG 에서의 멀티롬이 이제 작동합니다!!
- multirom: OTG 경로 수정 + 업데이트된 소스들과 함께 재빌드
- OTG 에서의 설치 수정
- ramdisk: sepolicy 업데이트
- A2DPChecker: 메인 액티비티를 열때 SU 실행

== 리커버리 ==
- 업데이트된 소스들과 함께 재빌드
- jolla-kernel_bullhead_II-v4.1 적용

<b><#selectbg_g>[bullhead_II-v4.0]</#></b>
== 커널 ==
>> 공통 <<
- touchscreen: synaptics: resume 이나 suspend 시 lock 수행 및 suspend 된 상태 체크
  (사운드가 켜진 상태에서 화면을 킬때 발생하는 터치스크린 문제 완벽하게 수정.)
- lib: bitmap: Linux 업스트림 패치들 적용
- lib: string: Linux 업스트림 패치들 적용
- strnicmp 를 strncasecmp 로 교체
- lib: rbtree: Linux 업스트림 패치들 적용
- lib: sort: Linux 업스트림 패치들 적용
- lib: strncpy_from_user: Linux 업스트림 패치들 적용
- ARM: 8187/1: add CONFIG_HAVE_ARCH_BITREVERSE to support rbit instruction
- ARM: 8189/1: arm64:add bitrev.h file to support rbit instruction
- bullhead_defconfig: CONFIG_HAVE_ARCH_BITREVERSE 활성화
- ALSA: 6fire: Convert byte_rev_table uses to bitrev8
- msm: mdss: fb 켜기에 실패했을때 수행되지 않는 unlock 수정
- lib: crc32: Linux 업스트림 패치들 적용
- lib: decompress_inflate: Linux 업스트림 패치들 적용
- lib: decompress_unlzma: Linux 업스트림 패치들 적용
- 변경사항 취소의 취소 "gpiolib: add IRQF_ONESHOT flag for shared IRQ"
  (터치스크린 문제가 수정됨.)

>> M <<
- 변경사항 취소의 취소 "msm: mdss: trigger frame timeout when recovery is in progress"
  (터치스크린 문제가 수정됨.)

== 리커버리 ==
- jolla-kernel_bullhead_II-v4.0 적용

<b><#selectbg_g>[bullhead_II-v3.1]</#></b>
== 커널 ==
>> 공통 <<
- arm64: Revert jump label patches and disable it
  (jump label 패치들을 적용및 활성화 하고 난 후 USB 테더링이 정상적으로 동작하지 않음.)
- 변경 사항 취소 "fpc1020_tee: 지문 센서가 터치되었을 때 sched 부스트 수행"
  (느린 인식 속도가 이미 수정됨.)
- net: core: Send ARP probe and trigger RTM_NEWNEIGH
- net: core: To send ARP probe when neighbor state is NUD_STALE
- net: core: Release neigh lock when neigh_probe is enabled
- net: add a per-cpu counter for the number of frames coalesced in GRO

>> M <<
- bullhead: wlan 펌웨어 파일들을 커널에 포함시킴
- qcacld-2.0: rps cpu map 을 ini 설정 파일로 부터 읽어 들이도록 함
- qcacld-2.0: CyanogenMod/android_device_nextbit_ether 의 ini 설정 파일 사용
- qcacld-2.0: rpsRxQueueCpuMapList 문제점 수정
- qcacld-2.0: WCNSS_qcom_cfg.ini: rpsRxQueueCpuMapList 올바르게 설정

== 리커버리 ==
- jolla-kernel_bullhead_II-v3.1 적용

<b><#selectbg_g>[bullhead_II-v3.0]</#></b>
== 커널 ==
>> 공통 <<
- cpuidle: 본래 드라이버로 되돌림 (배터리 드레인 현상 발생.)
- 변경사항 취소 "gpiolib: add IRQF_ONESHOT flag for shared IRQ"
  (sovc 가 활성화 되어있을때 가끔 터치스크린 드라이버가 정상적으로 작동하지 않는 현상 발생.)
- arm64: 불필요한 일부 변경 사항들 취소
- arm64: jump label 변경 사항들 적용
- wlan: CyanogenMod/android_kernel_nextbit_msm8992 로 부터 일부 변경 사항들 적용
- cpufreq: impulse: Use wake_up_process_no_notif to wake up tasks
- sync: Permit out-of order sync users
- qos: Register irq notify after adding the qos request
- qos: wake up cores based on the qos updated cpu mask

>> M <<
- wlan: qcacld-2.0: CyanogenMod/android_kernel_nextbit_msm8992 로 부터 일부 변경 사항들 적용

>> N <<
- N Preview 4 변경 사항들 적용

== AIO ==
- init.bullhead.rc: zram 의 max_comp_streams 항목 올바르게 설정
- 변경 사항 취소 "ramdisk: init.bullhead.rc: Enable retention idle state"

== 리커버리 ==
- omni android-6.0 최신 TWRP 패치들 적용
- jolla-kernel_bullhead_II-v3.0 적용

<b><#selectbg_g>[bullhead_II-v2.3]</#></b>
== 커널 ==
>> 공통 <<
- Linaro GCC 5.3.1 로 빌드
- Linux 3.10.102
- touchscreen: dt2w: dt2w_doubletap2wake_tmp_dump 에서 잘못된 unregister 수정
  (블루투스를 사용하면서 dt2w 와 sovc 가 활성화된 사용자에게 발생하는 문제점 수정.)
- touchscreen, wcd9330: dt2w 와 s2w 에 대해서도 마이크 상태 확인
  (dtw 나 s2w 가 활성화 되었을 때 전화를 하는 도중 예상치 못한 터치 작업이 발생하는 문제점 수정.)
- touchscreen: synaptics: 화면이 켜졌을때 지연된 touch off 작업 취소
  (화면이 켜진 후 가끔 터치스크린이 작동하지 않는 문제점 수정.)
- arp: 다른 하드웨어 주소로 부터 게이트웨이 업데이트를 시도하려는 요청 무시
  (변조된 ARP 요청 패킷으로 부터 ARP Spoofing 막음.)
- sched: sched_upmigrate_min_nice 를 9로 설정
- sched: avoid unnecessary HMP scheduler stat re-accounting
- sched: fix incorrect wait time and wait count statistics
- sched: Provide a wake up API without sending freq notifications
- cpufreq: interactive: Use wake_up_process_no_notif to wake up tasks
- memset 경고들 수정
- compiler.h: add support for malloc attribute
- soc: qcom: rpm: Change driver memory allocation to use GFP_NOFS
- ARM: dts: msm: Enable POPP for MSM8992
- arm/dts: Fix GPU bwmon on msm8992
- msm: kgsl: CyanogenMod/android_kernel_nextbit_msm8992 로 부터 일부 패치들 적용
- arm64: CyanogenMod/android_kernel_nextbit_msm8992 로 부터 일부 패치들 적용
- lpm, cpuidle, spm: CyanogenMod/android_kernel_nextbit_msm8992 로 부터 일부 패치들 적용
- qos: Disable irq notifier when qos request is removed
- net: Send only BIND and LISTEN events
- 변경사항 취소 "timer: Queue timers on least power cpu"
- CPU hotplug, smp: flush any pending IPI callbacks before CPU offline
- irq_work: Remove BUG_ON in irq_work_run()

>> N <<
- wlan: qcacld-2.0: N 의 기본 드라이버로 되돌림

== AIO ==
- multirom: Linaro GCC 5.3.1  로 재빌드
- f2fs-tools: 최신 dev 브랜치 패치들을 적용하고 Linaro GCC 5.3.1  로 빌드
- ramdisk: init.bullhead.rc: Enable retention idle state

== 리커버리 ==
- Linaro GCC 5.3.1 와 cm-13.0 최신 소스들로 재빌드
- jolla-kernel_bullhead_II-v2.3 적용

<b><#selectbg_g>[bullhead_II-v2.2]</#></b>
== 커널 ==
>> 공통 <<
- wlan: qcacld-2.0: caf 드라이버 (LA.BF64.1.2.2-05240-8x94.0) 를 사용하고
  CyanogenMod/android_kernel_nextbit_msm8992 로 부터 패치들 적용
  (끊김 현상 없어짐.)
- bullhead_defconfig: SCHED_FREQ_INPUT 비활성화
  (이 옵션이 지문 인식 시간을 엄청 느리게 하는 것으로 보임. 따라서 비활성화.)
- 변경 사항 취소 "bullhead_defconfig: NF_TARGET_REJECT_SKERR 비활성화"

>> M <<
- netfilter: IDLETIMER: lockdep 경고 수정 (N 에서 가져옴)

== 리커버리 ==
- jolla-kernel_bullhead_II-v2.2 적용

<b><#selectbg_g>[bullhead_II-v2.1]</#></b>
== 커널 ==
>> 공통 <<
- mdss: 잘못된 EXPORT_SYMBOL 수정

>> M <<
- 변경 사항 취소 "msm: mdss: trigger frame timeout when recovery is in progress"
(화면을 키는 중에 가끔 타임아웃 에러가 발생함.)

== 리커버리 ==
- jolla-kernel_bullhead_II-v2.1 적용

<b><#selectbg_g>[bullhead_II-v2.0]</#></b>
== 커널 ==
- 빠릿하고 부드러운 성능, 배터리 사용시간 향상

>> 공통 <<
- Linux 3.10.101
- msm_hotplug: 몇몇 버그들을 수정하고 기본으로 비활성화
(여러번의 테스트를 통해, 저희 기기인 bullhead 와 최신 기기들에게 핫플러깅이 필요 없습니다.
핫플러깅 없이 더 빠르고 부드러우며 긴 배터리 시간을 보여줍니다.)
- arp:Linux Kernel master 브랜치의 최신 변경 사항들 적용
- arp_project applied (ARP 스푸핑 공격 방어 프로젝트. 지속적으로 업데이트 될 예정입니다.)
- arp_project: Request 가 수행되지 않았거나 소스 IP가 Request 했던 타겟 IP 와 다를때 Reply 무시
- kcal: 노란 액정 수정 옵션 추가
- f2fs: stable 브랜치의 최신 변경 사항들 적용
- sched: 기본 값들을 커널 단에서 적용
- bullhead_defconfig: 빠뜨린 conservative 거버너 추가
- sound: franco 의 사운드 제어 드라이버 사용
- mdss: fb: backlight dimmer(백라이트 단계를 부드럽게 하는 옵션) 옵션 활성화
- fingerprint: 지문 센서가 터치되었을 때 sched 부스트 수행
- PM / devfreq: 일부 msm-3.10 변경 사항들 적용
- others: 일부 msm-3.10 변경 사항들 적용
- CyanogenMod/android_kernel_nextbit_msm8992 로 부터 몇몇 수정 사항들 적용

>> M <<
- marshmallow-dr1.6 변경사항들 적용
- wlan: N Preview 3 wlan 드라이버 적용
- sdcardfs 지원
- N Preview 3 로 부터 몇몇 변경 사항들 적용

>> N <<
- Applied N Preview 3 변경 사항들 적용

== AIO ==
- updater-script: sovc_auto_off_delay 값이 변경 되었을 때 빠진 init.d 지원 추가
- bullhead: max_comp_streams 가 적용되지 않는 문제 수정
- ramdisk: init.bullhead.rc: msm_hotplug 를 끄고/켜지 않음 (기본으로 비활성화 됨)
- kcal_fix_yellow on/off 옵션 추가
- f2fs: f2fs-tools 업데이트
- ramdisk: franco 로 부터 devfreq 트윅들 적용

== 리커버리 ==
- jolla-kernel_bullhead_II-v2.0 적용

<b><#selectbg_g>[bullhead_II-v1.0]</#></b>
== 커널 ==
>> 공통 <<
~~~~~ 새 jolla-kernel_bullhead_II 를 소개 합니다 !! ~~~~~
- 최신 Google msm 소스들로 다시 제작.
- 소스 클린업.
- 매우 개선된 배터리 시간, 배터리 드레인 현상들 수정.
- Linux 3.10.y 업스트림 패치들 적용하지 않음.
  (우리에게 필요한 패치들만 적용하는 것이 좋아보임.)
- UKSM 에서 KSM 으로 변경.
- 몇몇 KSM 업스트림 패치들 적용.
- 배터리 시간을 위해 KSM 기본 값들을 조정
- 올바르게 재가동/일시정지 되는 KSM
  (KSM 은 기본으로 활성화 되어있습니다. 화면이 꺼졌을때 멈추고 화면이 켜지면 다시 작동합니다.
   이것은 장치가 suspend 되었을시 배터리를 절약합니다.)
- EAS 패치들을 적용하지 않고 일부 패치들이 적용된 기본 sched 사용.
  (이 패치 없이 장치가 더 부드럽고 더 좋은 성능을 보여줍니다.
   대신에 프랑코 커널로 부터 sched 와 mm 패치들을 적용하였습니다.)
- f2fs의 소스를 stable 브랜치로 변경.
  (제가 이전에 dev-test 브랜치를 사용하였는데 에러들과 베터리 드레인 현상을 보여주었습니다.
   stable 로 변경 후 아무런 문제들이 없었습니다.)
- SOVC 를 사용중일때 음악이 정지된 후 터치스크린과 디스플레이 패널이 올바르게 꺼집니다.
  (Before: 디스플레이 패널이 resume 상태로 남아있고, 터치스크린이 몇몇 상황에서 제대로 꺼지지 않았습니다.
   After: 이제 제가 이러한 문제들을 해결했고 더이상 배터리 드레인 현상이 없습니다!!)
- SOVC 를 위한 터치스크린 자동 끄기 구현.
  (터치스크린을 오랜 시간 동안 누르고 있으면 터치스크린이 꺼집니다.
   잘못된 터치스크린 작동으로 부터 보호하고 걷는 동안 장치를 쥐고 있을 수 있게 합니다.
   기본값은 4초 이고 아로마 인스톨러에서 이 값을 변경 할 수 있습니다.)
- 이제, msm_hotplug 가 작동중일 때 빅코어들의 거버너 설정을 변경 할 수 있습니다!!
  (마침내, 제가 이 짜증나는 문제를 해결했습니다! Kernel Adiutor 에서 잘 작동합니다.
   Kernel Adiutor 의 CPU/거버너 설정에 들어가면 첫번째 빅코어를 켭니다.
   CPU/거버너 설정을 나가고 5초가 지나면 다시 정상적으로 작동합니다.)
- 터치스크린 드라이버에 있는 suspend/resume 작업들을 제거하고 각각의 드라이버마다 FB notifier 사용.
  (터치스크린 드라이버에 엄청난 suspend/resume 작업들이 있었습니다.
   이제 suspend/resume 작업들의 각각의 드라이버 마다 개별적으로 작동합니다.)
- Screen Off Volume Control, DoubleTap2Wake, Sweep2Wake suspend/resume 작업들 개선.
- cpu_up 작업의 race condition 수정.

== AIO ==
- ramdisk: sepolicy 바이너리 업데이트
- sovc_auto_off_delay 설정 옵션 추가
- A2DPChecker: SOVC 를 올바르게 비활성화 하기 위해 연결 끊김 상태 체크
- ramdisk: init.bullhead.rc: big 코어들에 대해 최소 클럭값 사용
- ramdisk: init.bullhead.rc: 거버너 설정을 변경하는 동안 msm_thermal 끄기

== 리커버리 ==
- omni android-6.0 최신 TWRP 패치들 적용
- jolla-kernel_bullhead_II-v1.0 적용

<b><#selectbg_g>[bullhead-v9.1]</#></b>
== 커널 ==
>> 공통 <<
- UBERTC gcc 7.0.0 20160416 으로 빌드
- msm_hotplug: up/down work 구조체를 지우고 big core up/down 향상
- msm_hotplug: DEFAULT_BIG_CORE_UP_DELAY 감소
- msm_hotplug: 중복된 target_big 계산 병합
- msm_hotplug: 저작권 업데이트
- 변경사항 취소 "msm_hotplug: HZ 를 본래 값으로 변경"
- lowmemorykiller: vmpressure 에 적합하게 함
- lowmemorykiller: false adaptive LMK triggers 회피
- lowmemorykiller: adaptive lmk 기본으로 활성화
- lowmemorykiller: 튜닝
- block: Zen I/O 스케쥴러 추가
- block: V(R) I/O 스케쥴러 추가
- block: bfq: IOPS 모드를 기본값으로 설정 하고 slice_idle 을 0 으로 설정
- bullhead_defconfig: 기본 I/O 스케쥴러를 bfq 로 변경
- mm: ksm, uksm: 기본으로 비활성화
- f2fs: page 를 얻은 후 매핑 확인 (수정됨) (커널 패닉 올바르게 수정됨.)
- f2fs: 최신 dev-test 브랜치 패치들 적용
- touchscreen: s2w, dt2w, sovc: 등록/해제 정보를 디버그 코드로 변경
- touchscreen: s2w, dt2w, sovc: 저작권, URL, 버젼 업데이트
- power_efficient workqueue 변경사항들 취소
- lib: lz4: 빅엔디안 장치들에서 lz4 와의 zram 수정
- lib: lz4: unaligned access efficiency 탐지 클린업
- lib/xz: add comments for the intentionally missing break statements
- lib/xz: enable all filters by default in Kconfig
- 변경사항 취소 "net: sched: watchdog 시간을 HZ 에서 1000 으로 변경"
- net: sched: watchdog_timeo 에 대해 "* 1000 / HZ" 수행
- bullhead_defconfig: 기본 TCP Congestion 제어를 CUBIC 으로 변경
- bullhead_defconfig: Google 과 wlan 설정 맞춤
- qcacld-2.0: caf wlan 드라이버 변경사항 취소
- qcacld-2.0: N Preview 2 의 wlan 드라이버 적용
- qcacld-2.0: __queue_delayed_work 경고 메세지 수정
- qcacld-2.0: 디버그 버젼 빌드 비활성화
- qcacld-2.0: 조용히 해라 'first packet after WOW wakeup'
- qcacld-2.0: 조용히 해라 PM runtime 메세지들아
- qcacld-2.0: 조용히 해라 resume 메세지들아
- power: quickwakeup: 드라이버 도입
- msm: lpm-levels: suspend_again 핸들러 추가
- power: catch wake-up requests in suspend_again
- security: selinux: 중복된 코드들 제거
- 변경사항 취소 "sched, smp: Correctly deal with nested sleeps"
- 변경사항 취소 "smpboot: use kmemleak_not_leak for smpboot_thread_data"

== AIO ==
- UBERTC gcc 7.0.0 20160416 으로 빌드
- f2fs: f2fs-tools 업데이트 (최신 dev 브랜치 패치들 적용)
  (여러 툴들 사용가능: mkfs.f2fs, fsck.f2fs, dump.f2fs, defrag.f2fs, resize.f2fs, sload.f2fs)
- ramdisk: sepolicy 바이너리 업데이트
- multirom: 새 cm-13.0 소스들과 빌드

== 리커버리 ==
- UBERTC gcc 7.0.0 20160416 으로 빌드
- 새 cm-13.0 소스들과 빌드
- omni android-6.0 최신 TWRP 패치들 적용
- jolla-kernel_bullhead-v9.1 적용

<b><#selectbg_g>[bullhead-v9.0]</#></b>
== 커널 ==
>> 공통 <<
- smpboot: use kmemleak_not_leak for smpboot_thread_data
- sched, smp: Correctly deal with nested sleeps
- touchscreen: dt2w, s2w, sovc: queue_work_on 를 queue_work 로 변경
- touchscreen: s2w, dt2w, sovc: input 핸들러가 필요치 않을때 등록 해제
- touchscreen: s2w, dt2w, sovc: 매번 터치 인터럽트 발생할 때마다 is_touch_on() 호출하지 않음
- touchscreen: synaptics: 빠른 화면 on/off 를 위해 suspend/resume 에 대해 작업 구조체 만듬
- synaptics, wcd9330: 음악이 정지된 후 일부 항목이 등록해제가 안되는 점 수정
- synaptics, sovc, dt2w: 빠진 dt2w 등록 추가
- f2fs: dev-test 브랜치 패치들 적용
- f2fs: f2fs: 맵핑 확인에 빠진 put_page() 추가 (커널 패닉 수정)
- ext4 crypto: tytso 로 부터 crypto-3.14 브랜치 최신 패치들 적용
- ext4 crypto: Google n-preview-2 최신 패치들 적용
- net: sched: watchdog 시간을 HZ 에서 1000 으로 변경
- wlan: qcacld-2.0: LA.BF64.1.2.2_rb4.33 from caf
- qcacld-2.0 와 cnss 를 제외하고 Google n-preview-2 변경 사항들 적용
- vmpressure: change vmpressure::sr_lock to spinlock
- vmpressure: do not check for pending work to prevent from new work
- vmpressure: make sure there are no events queued after memcg is offlined
- mm/vmpressure.c: fix race in vmpressure_work_fn()
- msm_hotplug: HZ 를 본래 값으로 변경
- compiler.h: add support for function attribute assume_aligned
- include/linux/compiler-gcc.h: hide assume_aligned attribute from sparse
- include/linux/compiler-gcc.h: improve __visible documentation
- compiler-gcc: disable -ftracer for __noclone functions

>> N <<
- nanohub: Google n-preview-2 변경 사항들 적용

== AIO ==
- sepolicy: 바이너리 업데이트
- F2FS 바이너리 패치 추가
- 진행바 수정

== 리커버리 ==
- jolla-kernel_bullhead-v9.0 적용

<b><#selectbg_g>[bullhead-v8.4]</#></b>
== 커널 ==
>> 공통 <<
- wlan: qcacld-2.0: 스캔이 완료된 후 Runtime PM 허용
- ARM64 CRC32 하드웨어 가속 모듈을 제외하고 crypto 변경사항들 취소
  (배터리 드레인 현상 수정.)
- sdcardfs 파일시스템 추가
- PM 업스트림 변경사항들 취소
- msm: camera: actuator 메모리 누수 수정
- bullhead_defconfig: 기본 io 스케줄러 CFQ 로 변경
- msm8992.dtsi: 온도 제한 조절
- pipe: Fix buffer offset after partially failed read
- cpufreq: use memcpy() to copy policy
- cpufreq: update user_policy.* on success
- cpufreq: Clean up after a failing light-weight initialization
- cpufreq: preserve user_policy across suspend/resume
- Revert "cpufreq: Don't create empty /sys/devices/system/cpu/cpufreq directory"
- cpufreq: fix uevent broken issue
- cpufreq: don't send frozen uevent
- cpufreq: Fix up sysfs api usage
- cpufreq: impulse: Remove global object usage

== AIO ==
- multirom: 바이너리들 업데이트
- sepolicy: 바이너리 업데이트

== 리커버리 ==
- TWRP v3.0.2-0 로 버젼업
- jolla-kernel_bullhead-v8.4 적용

<b><#selectbg_g>[bullhead-v8.2]</#></b>
== 커널 ==
>> 공통 <<
- UBERTC gcc 6.0.0 20160401 로 빌드
- 변경 사항 취소 "cpu 와 관련된 모든 코드들 제거 (cpufreq, cpumask)"
- 변경 사항 취소 "power: bcl: 핫플러그와 freq-control 제거"
- power: bcl: Re-evaluate hotplug for unexpected cpu online

== AIO ==
- UBERTC gcc 6.0.0 20160401 로 빌드
- multirom: 이제 2nd 롬들에서 잠금화면 설정이 가능합니다
- sepolicy: 바이너리 업데이트

== 리커버리 ==
- UBERTC gcc 6.0.0 20160401 로 빌드
- 복호화 후 메인화면이 중복되는 문제 해결
- themes_multirom: 재부팅 옵션 추가
- omni android-6.0 최신 TWRP 패치들 적용
- jolla-kernel_bullhead-v8.2 적용

<b><#selectbg_g>[bullhead-v8.1]</#></b>
== 커널 ==
>> 공통 <<
- wlan: qcacld-2.0: CAF 로 부터 LA.BF64.1.2.2_rb4.30 가져옴
- msm_hotplug: big core down delay 파라미터 제거
- msm_hotplug: big core 들에 대해 apply_down_lock 수행
- msm_hotplug: big core 들의 cpu down 수정
- msm_hotplug: input handler 제거
- msm_hotplug: 2 개의 little core 들이 항상 켜져 있도록 함
- msm_hotplug: max_cpus_online_susp 가 1 보다 클 경우에 대해 msm_hotplug_suspend() 수정
- msm_thermal: 디바이스가 일시정지 상태일 때 비활성화
- msm8992.dtsi: 온도 제한 조절
- f2fs: 최신 f2fs-stable 과 dev-test 패치들 적용
- 변경 사항 취소 "sovc, synaptics, mdss: suspend 상태에서 음악이 정지된 후 패널 끄기"
  (효과가 없을 뿐더러 리커버리나 충전 모드로 부팅 불가.)
- spi_qsd: Vote for PNOC clock before spi clock
- spi_qsd: Exit gracefully if the system is suspended
- spi: spi_qsd: Fix unmasked write to IO control register

== AIO ==
- sepolicy: 바이너리 업데이트

== 리커버리 ==
- TWRP v3.0.1-0 로 버젼업
- f2fs-tools: dev 브랜치 패치들 적용
- jolla-kernel_bullhead-v8.1 적용

<b><#selectbg_g>[bullhead-v8.0]</#></b>
== 커널 ==
>> 공통 <<
- bcl, msm8992.dtsi: cpu 와 관련된 모든 코드들 제거 (cpufreq, cpumask)
- sovc, synaptics, mdss: suspend 상태에서 음악이 정지된 후 패널 끄기
- msm_thermal: 모든 기능들이 올바르게 작동하도록 수정
- wlan: qcacld-2.0: 일부 코드 n-preview 와 맞춤
- crypto: crc32 - ARM64 CRC32 하드웨어 가속화 모듈 추가
- crypto: arm64: Linux 4.5 일부 패치들 적용
- f2fs: 최신 f2fs-stable linux-4.1.y 브랜치 패치들 적용
- 닥X cpu cacpcity!! (다량의 kernel 로그들)

>> M <<
- camera: 비디오 레코딩 문제 수정

== AIO ==
- SOVC off 시 설치 문제 수정
- Multi ROM Manager 추가
- sepolicy: 바이너리 업데이트
- sepolicy: NFC selinux 거부 문제 수정
- multirom: 최신 cm-13.0 소스들과 재빌드

== 리커버리 ==
- 최신 cm-13.0 소스들과 재빌드

<b><#selectbg_g>[bullhead-v7.4]</#></b>
== 커널 ==
- msm_thermal, msm8992.dts: 온도 제어 개선

== AIO ==
- updater-script: 빠진 'init.superuser.rc' 파일 압축풀도록 함
- mkbootimg: 일부 롬에서의 init.d 와 SOVC off 문제 수정

== 리커버리 ==
- jolla-kernel_bullhead-v7.4 적용

<b><#selectbg_g>[bullhead-v7.3]</#></b>
== 커널 ==
- cpufreq: despair 거버너 추가
- cpufreq: bioshock 거버너 추가
- cpufreq: despair: 사용되지 않는 cpufreq_notify_utilization 제거

== AIO ==
- multirom_hack.sh 추가 (2nd 롬들에서 설치가 되지 않는 현상 수정)

== 리커버리 ==
- omni android-6.0 최신 TWRP 패치들 적용
- jolla-kernel_bullhead-v7.3 적용

<b><#selectbg_g>[bullhead-v7.2]</#></b>
== 커널 ==
- Linux 3.10.101

== AIO ==
- SOVC On/Off 지원

== 리커버리 ==
- jolla-kernel_bullhead-v7.2 적용

<b><#selectbg_g>[bullhead-v7.1]</#></b>
== 커널 ==
- ASoC: Dirty Unicorns 같은 일부 롬에서 mp3 파일들이 재생되지 않는 현상 수정
- camera: MHC19J 와 N 에서 손전등 타일이 작동하지 않는 문제 수정

- ASoC: wcd9330: Update speaker driver OCP current register
- drivers: mfd: Add support to configure OCP current limit
- ASoC: msm: qdsp6v2: Fix invalid num_codecs
- ASoC: pcm: Use the power efficient workqueue for delayed powerdown
- ASoC: jack: Use power efficient workqueue
- ASoC: compress: Use power efficient workqueue
- workqueues: Introduce new flag WQ_POWER_EFFICIENT for power oriented workqueues
- workqueue: Add system wide power_efficient workqueues
- workqueue: Fix permission for power_efficient workqueue
- PHYLIB: queue work on system_power_efficient_wq
- block: queue work on power efficient wq
- fbcon: queue work on power efficient wq
- regulator: core: Use the power efficient workqueue for delayed powerdown

== 리커버리 ==
- omni android-6.0 최신 TWRP 패치들 적용
- jolla-kernel_bullhead-v7.1 적용

<b><#selectbg_g>[bullhead-v7.0]</#></b>
== 커널 ==
- Linux 3.10.100
- 구글로 부터 Android M, Android N 최신 패치들 적용
- msm_hotplug, fingerprint: 지문 인식 관련 수정
- block: SIOPLUS I/O 스케줄러 추가
- sovc, wcd9330: 터치 끄기 지연시간 증가
- sovc: 볼륨 컨트롤 터치 거리 감소
- sovc: 트랙 컨트롤 재실행 지연 시간 증가

== AIO ==
- Android N 지원 (jolla-kernel_bullhead-v7.0N)
- multirom: MHC19J 지원
- A2DPChecker: 재생중 체크 지연시간 증가

== 리커버리 ==
- MHC19J 지원
- jolla-kernel_bullhead-v7.0 적용

<b><#selectbg_g>[bullhead-v6.2]</#></b>
== 커널 ==
- Linux 3.10.99
- 변경사항 취소 "msm8992 initial overclocking" (클럭 테이블을 위한 추가적인 수정이 필요하고 가끔 커널 패닉을 일으킴.)
- f2fs: 최신 f2fs-stable 패치들 적용
- f2fs: recovery missing dot dentries in root directory
- kexec: 업스트림 패치들 적용
- msm: ipa, sps, camera 를 위한 몇몇 패치들 적용
- dm-crypt: run in a WQ_HIGHPRI workqueue
- dm-verity: run in a WQ_HIGHPRI workqueue
- mmc: move to a SCHED_FIFO thread
- net: tcp: fix rtable leak in tcp_is_local[6]
- dm: Add android verity target
- dm: boot time specification of dm=

== AIO ==
- MultiROM: 세컨롬들로 부팅 후 지문인식 문제 수정

== 리커버리 ==
- z31s1g 의 Play 테마에서 이미지들 가져옴
- jolla-kernel_bullhead-v6.1 적용

<b><#selectbg_g>[bullhead-v6.0]</#></b>
== 커널 ==
- Linux 3.10.98
- 변경사항 취소 "bullhead_defconfig: FB_MSM_MDSS_HDMI_PANEL 활성화"
- 변경사항 취소 "bullhead_defconfig: 모듈 지원 활성화"
- msm_hotplug, cpu, fingerprint: 지문인식이 작동하는 중에 모든 cpu 켜도록 함
  (가끔 지문인식이 작동하지 않는 문제 수정.)
- msm8992 오버클럭 지원

== AIO ==
- MultiROM: kexec 의 잘못된 주소들 수정 (이제 세컨 롬들이 각 롬들의 커널과 정삭적으로 부팅됩니다.)
- MultiROM: adbd closed 문제 수정
- MultiROM: 최신 cm-13.0 소스들로 재빌드

== 리커버리 ==
- adbd closed 문제 수정
- jolla-kernel_bullhead-v6.0 적용

<b><#selectbg_g>[bullhead-v6.0_beta]</#></b>
== 커널 ==
- kexec hardboot 지원

== AIO ==
- MultiROM 지원!! (Experimental)

== 리커버리 ==
- MultiROM TWRP v3.0.0-0
- jolla-kernel_bullhead-v6.0_beta 적용

<b><#selectbg_g>[bullhead-v5.2]</#></b>
== 커널 ==
- fs: fsync on/off 를 다이나믹 fsync 로 변경
- msm8992.dtsi: cpubw 기본 거버너를 bw_hwmon 으로 설정
- power: IPA_WS 웨이크락 방지 on/off 지원
- cpufreq_elementalx: lower sampling_down_factor for big cluster
- sound_control: 코드 수정 및 클린업
- GCC 6 misleading-indentation 경고들 수정

== 리커버리 ==
- TWRP v3.0.0 으로 버젼업
- jolla-kernel_bullhead-v5.2 적용

== AIO ==
- ramdisk: init.bullhead.rc 추가
- ramdisk: 수정된 init.bullhead.power.sh 스크립트를 init.bullhead.rc 에 포함시킴
- 부팅 중에 빅 클러스터의 거버너가 performance 로 설정 되는 현상 수정

<b><#selectbg_g>[bullhead-v5.1]</#></b>
== 커널 ==
- Google 로 부터 EAS 패치들 적용
  (EAS 정보: http://www.linaro.org/blog/core-dump/energy-aware-scheduling-eas-project/)
- sovc: 화면을 키지 않고 터치스크린을 직접 끄도록 함.
- usb: gadget: mass_storage: added sysfs entry for cdrom to LUNs (Android 기기를 USB 저장소나 CD-Rom 으로 사용/DriveDroid 지원)
  (DriveDroid 정보: https://play.google.com/store/apps/details?id=com.softwarebakery.drivedroid)

== 리커버리 ==
- jolla-kernel_bullhead-v5.1 적용

== AIO ==
- AIO: 램디스크 압축 타입 선택과 init.d 패치 옵션들 추가 (재 업로드된 v5.0 에서 이미 구현됨)

<b><#selectbg_g>[bullhead-v5.0]</#></b>
== 커널 ==
- Linux 3.10.96
- mm: UKSM 지원
- devfreq: Adreno idler 지원
- wlan: qcacld-2.0: caf 로 부터 LA.BF64.1.2.9 가져옴 (Wi-Fi 문제 없음/느린 Wi-Fi 현상 없음/끊김 현상 없음)
- sovc: 스크린에서 손가락을 떼어낸 후 진동이 다시 울리는 현상 수정
- msm_hotplug: big_core_down_delay 새 파라미터 추가
- msm_hotplug: 비활성화 되었거나 suspend 상태일때 핫플러깅 하지 않음
- msm_hotplug, cpu: suspend 상태일때 빅코어들에 대해서만 핫플러깅 방지
- msm_hotplug, fingerprint: 비활성화 되었을때 핫플러깅 하지 않음
- msm_hotplug: 빅코어들이 좀 더 어렵게 켜지도록 함
- msm_hotplug: 빅코어의 'apply_down_lock(cpu)' 제거
- msm_hotplug: DEFAULT_BIG_CORE_UP_DELAY 증가
- msm_hotplug: 'online_little' 변수들 제거
- msm_hotplug: 모든 빅코어들이 켜져있거나 꺼져있으면 스킵
- wakeup: try to deactivate a wakeup source when the user explicitly disables it from userspace
- wakeup: Add the guard condition for len in pm_get_active_wakeup_sources
- qcom: rpm-smd: workqueue 경고 수정을 포함해 몇몇 패치들 적용
- soc: qcom: common_log: common_log driver 의 메모리 누수 수정
- ASoC: Cyanogenmod 로 부터 업스트림 패치들 적용
- hid: FiiO USB DAC 드라이버 추가
- cpuidle: 몇몇 패치들 적용
- msm: spm: 몇몇 패치들 적용
- msm: lpm-levels: 몇몇 패치들 적용
- lib: LZ4 로 압축된 커널 지원
- lib/lz4: 업스트림 패치들 적용
- lib/decompressors: 업스트림 패치들 적용
- bullhead_defconfig: LZ4 램디스크/압축풀기 지원
- bullhead_defconfig: : 모듈 지원 활성화
- bullhead_defconfig: FB_MSM_MDSS_HDMI_PANEL 활성화
- PM / sleep: 몇몇 패치들 적용
- cpufreq: interactive: 몇몇 패치들 적용
- cpufreq: 몇몇 패치들 적용
- cpufreq: ZZMoove big.LITTLE Edition (bLE) 2016.01.09 일자 개발 버젼 추가
- cpufreq: 실패시 interactive 거버너 사용
- haptic: 커널 컨트롤 어플을 통한 진동 조절 지원

== 리커버리 ==
- cm-13.0 을 베이스로 하여 최신 omni android-6.0 TWRP 소스로 빌드
- jolla-kernel_bullhead-v5.0 적용
- f2fs-tools: 최신 dev 브랜치 패치들 적용
- f2fs-tools: Cyanogenmod 로 부터 Android 패치들 적용
- LZ4 로 압축된 램디스크 이미지 사용

== AIO ==
- AIO: mkbootimg 를 위해 수정된 AIK 스크립트 사용 및 기본으로 LZ4 로 압축된 램디스크 제작

<b><#selectbg_g>[bullhead-v4.3]</#></b>
== 커널 ==
- UBERTC gcc-6.0.0 으로 빌드
- GCC 6.0.0 을 위해 수정
- 변경사항 취소 "msm_thermal: core control 비활성화"
- thermal: thermal-engine 핫플러깅 비활성화
- power: bcl: 핫플러그와 freq-control 제거
- 변경사항 취소 "ksm: check and skip page, if it is already scanned"
  (랜덤 리붓을 발생하는 요인으로 추정. KSM 에서 NULL pointer dereference 로 인하여 커널 패닉이 발생하였음.)
- ksm: hlist_empty helper 메소드 사용
- mm: ksm: 기본값 최적화
- msm: thermal: 조용한 threshold 로그
- sovc: 'mic detected' 로그 제거
- proc: 몇몇 패치들 적용
- seccomp: cap SECCOMP_RET_ERRNO data to MAX_ERRNO
- proc: add a reschedule point in proc_readfd_common()
- lowmemorykiller: 레드 블랙 트리 최적화와 함께 몇몇 패치들 적용
- ion: 몇몇 패치들 적용
- fs: 몇몇 패치들 적용
- msm: camera: 8992: 8994: delete session if post event failed
- msm: camera: Handling openCamera timeout
- selinux: avc 로깅 개선
- KEYS: 몇몇 패치들 적용
- include/linux/poison.h: fix LIST_POISON{1,2} offset
- qcacld-2.0: 에러 체크 빠진 부분 수정
- qcacld-2.0: 항상 실패를 반환하는 현상 수정
- cpufreq: impulse: @neobuddy89 님의 최신 소스로 업데이트

== 리커버리 ==
- UBERTC gcc-6.0.0 으로 빌드
- cm-13.0 을 베이스로 하여 최신 omni android-6.0 TWRP 소스로 빌드
- jolla-kernel_bullhead-v4.3 적용
- f2fs-tools: dev 브랜치 패치들 적용

== AIO ==
- sepolicy 바이너리 업데이트

<b><#selectbg_g>[bullhead-v4.2]</#></b>
== 커널 ==
- msm_hotplug: target_big 계산 수정 (효율적인 핫플러깅 및 느린 Wi-Fi 개선)
- sovc: 마이크가 감지 되었을때 터치스크린 Off (전화 중에 터치스크린이 작동되는 현상 수정)

== 리커버리 ==
- jolla-kernel_bullhead-v4.2 적용

<b><#selectbg_g>[bullhead-v4.1]</#></b>
== 커널 ==
- UBERTC gcc-5.3.1 로 빌드
- dt2w: sovc 가 비활성화 되어있을 때 'dt2w_switch_tmp' 비활성화
- f2fs: 최신 업데이트들 적용 (for-f2fs-4.5)

== 리커버리 ==
- UBERTC gcc-5.3.1 로 빌드
- cm-13.0 을 베이스로 하여 최신 omni android-6.0 TWRP 소스로 빌드
- jolla-kernel_bullhead-v4.1 적용

== AIO ==
- AROMA Installer 업데이트
- LED 패치를 옵션으로 함.
- 사용자가 애플리케이션을 선택할 수 있도록 함.
- 애플리케이션이 data 파티션에 복사되도록 함.

== jolla-kernel Updater ==
- minSdk 버젼을 23 으로 변경.
- 외부 저장소 쓰기 권한 요청.
- 다운로드 바가 항상 "다운로드 중" 이라 표시되는 버그 수정
- Deprecated 코드들 제거. (네비게이션 뷰를 위해 메인 액티비티는 제외.)
- Lint 경고들 수정.
- 불필요한 라이브러리들 제거.
- cz.msebera.android httpclient v4.4.1.1 라이브러리 사용.

<b><#selectbg_g>[bullhead-v4.0]</#></b>
== 커널 ==
- gcc-5.3.0 으로 빌드
- lowmemorykiller: 죽어가거나 종료중인 작업 스킵
- f2fs: 최신 dev 브랜치 패치들 적용
- ext4 crypto: 최신 패치들 적용
- soc: qcom: msm_perf: perfd 가 최대 클럭을 변경 하는것 방지
- wakeup: bluedroid_timer 웨이크락을 위한 토글 추가
- wakeup: bluesleep 웨이크락을 위한 토글 추가
- msm: qpnp-haptic: vmax_mv_strong 이 최소로 설정되었을때 진동 비활성화
- msm: camera: 몇몇 패치들 적용
- mmc: sd: bus speed switch 실패시 에러 리턴
- arm64: relaxed 파워 소모량 최적화 패치 적용
- arm64: lib: memory utilities 최적화
- workqueue: 몇몇 패치들 적용
- sched: 몇몇 패치들 적용
- mm: 몇몇 패치들 적용
- qcacld: 초기화 되지 않은 변수 수정
- staging: qcacld-2.0: 기본값으로 빌드
- 변경사항 취소 "qcacld: Tlshim Rx shutdown 이 non-interruptable wait 을 하도록 함"
- cpufreq: cpu-boost: 어떤 코어든 적어도 1개의 작업이 있어도 파워 절약을 위해 빅코어를 부스트 하지 않음
- cpufreq: cpu-boost: input_boost_enable 파라미터 추가
- cpufreq: cpu-boost: 사용자가 설정한 최대 클럭값 이상으로 부스트 하지 않음
- cpufreq: governor_enabled 가 읽히는 것을 방지하여 timer/workqueue 충돌 수정
- cpufreq: user_policy 데이터로 policy 설정
- tick: cpu 가 오프라인 상태일때 idle time 업데이트 하지 않음
- proc: stat: idle time 점프 현상 수정
- usb: gadget: storage: MacOS READ_TOC 지원
- USB: android: mass_storage_function_init() 메모리 누수 수정
- USB: f_fs: wait 을 freezable 로 변경
- dts: mmc: idle flag 의 wakeup 제거
- mmc: core: mmc 가 suspend 상태일 동안 mmc_flush_cache() 사용
- tcp_cubic: 몇몇 패치들 적용
- fs: 몇몇 패치들 적용
- vfs: 몇몇 패치들 적용
- writeback: 몇몇 패치들 적용
- fs/proc: 몇몇 패치들 적용
- block: 몇몇 패치들 적용
- block: CFQ 가 SSD 에서 기본으로 IOPS 모드가 되도록 함
- cfq-iosched: SSD 에서 IOPS 모드가 되는 설정 수정
- sched: LOAD_FREQ (4*HZ+61) loadavg 물결 현상 방지
- msm: uninterruptible wait 으로 부터의 high load average 수정
- soc: qcom: 몇몇 패치들 적용
- mpm: clk_get API 문제 수정
- rpm-smd: 몇몇 패치들 적용
- Makefile: Cortex A57 용으로 빌드
- Makefile: big.Little a53/a57 플래그 사용
- mdss: load_average 감소를 위해 edp 에 interruptible thread 사용
- msm: load average 에 영향을 주지 않기 위해 interruptible wait 사용
- qcom: msm-core: uninterruptible wait
- msm: load average 에 영향을 주지 않기 위해 interruptible wait 사용
- msm: mdss: event 가 interrupt 되었을 때 더 일찍 'continue' 함
- bullhead: Kconfig 경고들 수정

== 리커버리 ==
- jolla-kernel_bullhead-v4.0 적용

== AIO ==
- 충전 LED 패치 추가

<b><#selectbg_g>[bullhead-v3.2]</#></b>
== 커널 ==
- touchscreen: dt2w 나 sw2w 가 sovc 활성화 없이 작동되지 않는 현상 수정 (노크온 작동 불가현상 수정)
- fs: xattr 단순화
- f2fs: f2fs dev 브랜치 업데이트들 적용
- md: 몇몇 패치들 적용
- fs/buffer.c: CPU LRU 사이즈당 버퍼 헤드 증가
- soc: qcom: smd: 몇몇 패치들 적용

== 리커버리 ==
- jolla-kernel_bullhead-v3.2 적용

<b><#selectbg_g>[bullhead-v3.1]</#></b>
== 커널 ==
>> 배터리 시간 증가 <<
- soc: qcom: msm_perf: perfd 가 최대 cpu 와 최대 클럭을 변경하는 것 방지
- soc: qcom: msm_perf: perfd 가 작업량을 변경하는 것 방지
- bullhead: msm_performance 의 핫플러깅 비활성화

- leds-qpnp: 더 부드러운 충전 LED

== 리커버리 ==
- jolla-kernel_bullhead-v3.1 적용

<b><#selectbg_g>[bullhead-v3.0]</#></b>
== 커널 ==
- hotplug: msm_hotplug 드라이버 추가 및 big, little 에 맞게 수정
- touchscreen: doubletap2wake, sweep2wake 추가
- touchscreen: 음악이 재생되는 동안 dt2w 임시로 활성화
- leds-qpnp: 부드럽게 깜박이는 충전 LED & 부드러운 알림 LED
- power:qpnp-charger: 배터리가 완충에 가까워 졌을때 충전시간을 30초에서 100초로 늘림
- hwrng: 직접적인 device_create_file() 호출들 회피
- cpufreq: impulse elementalx, wheatley, impulse, conservative 거버너들 추가
- cpufreq: interactive: 몇몇 패치들 적용
- tcp: 소켓들이 MSG_FASTOPEN 을 기본으로 사용하도록 활성화
- mdss_fb: backlight dimmer 옵션
- power: lge crash handler 비활성화
- f2fs: f2fs_follow_link 로 인한 시스템 패닉 수정
- f2fs: 불필요한 new_valid_dev() 체크 제거
- f2fs: f2fs-stable repository 로 부터 f2fs_kvfree 추가
- random: /dev/frandom 지원 추가
- random, random32: Linux upstream 패치들 적용
- zram, zsmalloc, zpool: Upstream 패치들 적용
- crypto: msm: 몇몇 패치들 적용
- md: 몇몇 패치들 적용
- dm verity: 몇몇 패치들 적용

== 리커버리 ==
- 최신 omni android-6.0 브랜치 TWRP 소스들로 빌드
- 최신 cm-13.0 소스들을 베이스로 사용
- f2fs-tools: v1.6.0 적용
- jolla-kernel_bullhead-v3.0 적용

== AIO ==
- fstab.bullhead: f2fs 부팅 문제 수정
- A2DPChecker: 음악이 재생되는 동안 dt2w 임시로 활성화

<b><#selectbg_g>[bullhead-v2.0]</#></b>
== 커널 ==
- UBERTC gcc 5.2.1 로 빌드
- Screen Off Volume Controller 추가
- Linux 3.10.94
- Marshmallow 6.0.1 업데이트들 적용
- Faux Sound control v3.6 추가
- fsync on/off 지원
- exFAT 지원
- 성능을 위해 mmc crc 체크 비활성화
- SIO, FIOPS i/o 스케쥴러 추가
- 기본 i/o 스케쥴러를 FIOPS 로 변경
- 알림 진동 감소

== 리커버리 ==
- jolla-kernel_bullhead-v2.0 적용

<b><#selectbg_g>[bullhead-v1.0]</#></b>
== 커널 ==
- 첫 릴리즈!
- bullhead 노란색 스크린 수정!
- Linux 3.10.93
- TCP_CONG_ADVANCED 활성화 및 'westwood' 기본값으로 설정
- NTFS 지원
- f2fs 지원
- 최신 f2fs-3.10 패치들 적용
- 안드로이드 기기를 USB 키보드/마우스로 사용
- BFQ IO 스케줄러 추가 및 기본값으로 설정
- mdss KCAL control 지원

== 리커버리 ==
- jolla-kernel_bullhead-v1.0 적용


<b><#selectbg_g>[Thanks to..]</#></b>
The Linux Kernel Archives : https://www.kernel.org/
cm-13.0 : https://github.com/CyanogenMod
Developers : jaegeuk, Tasssadar, savoca and all of commited in their sources & all of xda developers

<#selectbg_g>->></#> 제 jolla-kernel 을 선택해 주셔서 감사합니다!! :)
