yashsingh1/xdaforums huggingface dataset:
[Nexus 5X Original Android Development] jollaman999:
[bullhead_II-v3.1]

== Kernel ==

>> Common <<

- arm64: Revert jump label patches and disable it

(USB tethering not working correctly after applied jump label patches and enabled it.)

- Revert "fpc1020_tee: Do sched boost when fingerprint sensor touched"

(Slow recognizing time is already fixed.)

- 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: Include wlan firmware files to the kernel

- qcacld-2.0: allow rps cpu map to be read from ini

- qcacld-2.0: Use CyanogenMod/android_device_nextbit_ether's config ini

- qcacld-2.0: Fix the issue of rpsRxQueueCpuMapList

- qcacld-2.0: WCNSS_qcom_cfg.ini: Correctly set rpsRxQueueCpuMapList

== Recovery ==

- jolla-kernel_bullhead_II-v3.1 applied

※ TWRP Attention ※

- Decryption failed with N (Do 'fastboot format userdata')
[Nexus 5X Original Android Development] qu4nd:
[MENTION=5996255]jollaman999[/MENTION]

Still thinking about implementing sweep2sleep? ?
[Nexus 5X Original Android Development] :
Loving this kernel! Thank you! ?
[Nexus 5X Original Android Development] dado70:
hello guys ... between the gestures we can have the power key suspends?

Inviato dalla terra della piadina..!!
[Nexus 5X Original Android Development] jollaman999:
I think we can't.

Sometimes user just want to swipe to touchscreen but screen will be turned off.
[Nexus 5X Original Android Development] qu4nd:
I've had it only on navbar and never accidentally turned the screen off. But it's your decision of course ;)
[Nexus 5X Original Android Development] jollaman999:
[bullhead_II-v4.0]

== Kernel ==

>> Common <<

- touchscreen: synaptics: Lock when resume or suspend is triggered and check suspended state

(Perfectly fixed touchscreen issue when turning on the screen with sound on.)

- lib: bitmap: Applied Linux upstream patches

- lib: string: Applied Linux upstream patches

- Replace strnicmp with strncasecmp

- lib: rbtree: Applied Linux upstream patches

- lib: sort: Applied Linux upstream patches

- lib: strncpy_from_user: Applied Linux upstream patches

- 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: Enable CONFIG_HAVE_ARCH_BITREVERSE

- ALSA: 6fire: Convert byte_rev_table uses to bitrev8

- msm: mdss: Fix unhandled unlock when failed to turn on fb

- lib: crc32: Applied Linux upstream patches

- lib: decompress_inflate: Applied Linux upstream patches

- lib: decompress_unlzma: Applied Linux upstream patches

- Revert "Revert "gpiolib: add IRQF_ONESHOT flag for shared IRQ""

(touchscreen issue has been fixed.)

>> M <<

- Revert "Revert "msm: mdss: trigger frame timeout when recovery is in progress

(touchscreen issue has been fixed.)

== Recovery ==

- jolla-kernel_bullhead_II-v4.0 applied

※ TWRP Attention ※

- Decryption not working with N (Do 'fastboot format userdata')
[Nexus 5X Original Android Development] jollaman999:
If you want to on navbar, it should be implement from rom side.

Thank you.
[Nexus 5X Original Android Development] gvsukids:
62mb kernel? Wow
[Nexus 5X Original Android Development] atefi:
I can't use NDP4 with MM can anyone help me please?
[Nexus 5X Original Android Development] Topse:
Not only Kernel...

Recovery, Multirom, apps all included in Aroma installer so you can choose what you need.

---------- Post added at 07:50 PM ---------- Previous post was at 07:50 PM ----------

No
[Nexus 5X Original Android Development] atefi:
Nobody is here to help me?
[Nexus 5X Original Android Development] jollaman999:
[bullhead_II-v4.1]

== Kernel ==

>> Common <<

- Applied android-msm-bullhead-3.10-marshmallow-dr1.6 changes

== AIO ==

- Multirom with OTG is now working!!

- multirom: Fix OTG path + Rebuilt with updated sources

- Fix installation with OTG

- ramdisk: Update sepolicy

- A2DPChecker: Exec SU when open the main activity

== Recovery ==

- jolla-kernel_bullhead_II-v4.1 applied

※ TWRP Attention ※

- Decryption failed with N (Do 'fastboot format userdata')
[Nexus 5X Original Android Development] parthabhatta:
Are you talking about using both in multi ROM? If yes, everytime you boot in a particular ROM you need to flash appropriate vendor image for that ROM.
[Nexus 5X Original Android Development] atefi:
Yes and can you explain more?
[Nexus 5X Original Android Development] jollaman999:
[bullhead_II-v5.0]

== Kernel ==

>> Common <<

/* lazytime mount option support */

(See the details: https://lwn.net/Articles/621046/)

- vfs: Add lazytime mount option support

- f2fs: lazytime mount option support

- f2fs: Applied lastest dev branch patches

- ext4: add optimization for the lazytime mount option

- ext4: set lazytime on remount if MS_LAZYTIME is set by mount

/* Revert some of android-msm-bullhead-3.10-marshmallow-dr1.6 changes */

- Revert "mdss: mdp3: Validate input from userspace" (It makes battery drain.)

- Revert "ASoC: msm: audio-effects: misc fixes in h/w effects (update)" (It makes speaker sound lower.)

- Revert "ASoC: msm: audio-effects: misc fixes in h/w accelerated effect"

/* Some of fixes for sovc and dt2w */

- touchscreen: sovc: Vibrate twice when turning off the touchscreen

- touchscreen: sovc: Check touching state before queueing the work structure

- touchscreen: sovc, synaptics: Prevent race condition of touch off work

- touchscreen: dt2w: Remove uneeded check of scr_suspended

== AIO ==

/* Enable lazytime mount option for ext4 and f2fs partitions */

- ramdisk: fstab.bullhead: Enable discard option for ext4 partitions

- ramdisk: fstab.bullhead: Change noatime,nodiratime options to lazytime

- ramdisk: fstab.bullhead: Enable lazytime option for persist partition

- ramdisk: fstab.bullhead: Enable lazytime option for system and vendor

- ramdisk: fstab.bullhead: Disable barrier for vendor

== Recovery ==

- jolla-kernel_bullhead_II-v5.0 applied

※ TWRP Attention ※

- Decryption failed with N (Do 'fastboot format userdata')
[Nexus 5X Original Android Development] willybarca:
so whats this lazytime mount option, is it already set by default, or we have to set it up in recovery.
[Nexus 5X Original Android Development] jollaman999:
Only update access time of in-memory inode then write to disk when sync operation occurred.

Set by default for ext4 and f2fs partitions.
[Nexus 5X Original Android Development] Zwulf:
Same issue here on official CM13 nightlies. Therefore latest Jolla kernel is unusable for me. Issue exists on Jolla 4.0, 4.1 and 5.0 while versions till 3.1 worked fine.
[Nexus 5X Original Android Development] jollaman999:
SupserSU option is only for cm-13.0. Other roms already have SuperSU support. Also you should use lastest cm-13.0 nightly with lastest version of jolla-kernel.
[Nexus 5X Original Android Development] Ofthecats:
I'm having issues with deep sleep.

My experience tells me it's from disabling zram as this once happened to me with the 6p and was later patched

Could anyone confirm this?
[Nexus 5X Original Android Development] Zwulf:
Latest nightly, latest kernel (5.0). Issue exists for CM superuser. Did a fresh install with latest nightly, without SuperSU, lost root with Jolla 5.0. After flashing different kernels (ElementalX, franco, Elite) root is back (as already mentioned: NOT using SuperSU, not enabling SuperSU option in Jolla aroma installer). Must be some issue with Jolla. No problem with Jolla 3.1 though, the issue might be caused by some newer changes in Jolla.
[Nexus 5X Original Android Development] jollaman999:
Confirmed. Sorry, that I missed it.

(Reason: Selinux permission is missed for su_daemon.)

It will be fixed in next version.
[Nexus 5X Original Android Development] jollaman999:
[bullhead_II-v5.1]

== Kernel ==

>> Common <<

/* Applied some patches related with lazytime */

- fs: make sure the timestamps for lazytime inodes eventually get written

- fs: add dirtytime_expire_seconds sysctl

- ext4: fix lazytime optimization

- vfs: avoid creation of inode number 0 in get_next_ino

- ext4: reject journal options for ext2 mounts

- mdss: Revert some changes that breaks to play 4K videos

- Applied some upstream patches

- cpufreq: interactive: Applied some changes from franco

== AIO ==

- ramdisk: init.superuser.rc: Fix selinux permission of su_daemon

- multirom_hack.sh: Fix otg.prop not found error

- updater-script: Ignore to install MultiROM in second roms

== Recovery ==

- jolla-kernel_bullhead_II-v5.1 applied

※ TWRP Attention ※

- Decryption failed with N (Do 'fastboot format userdata')
[Nexus 5X Original Android Development] j.llorente:
I can't change max cpu online in hotplug. Only max 4
[Nexus 5X Original Android Development] jollaman999:
That is expected max value. It handles little cores and check if big cores are needed.

So available max cpu online is 1 to 4. Kernel Adiutor shows 6 as max value.
[Nexus 5X Original Android Development] zocex:
hi guys. how can i install android N along with my already exsisted PureNexus ROM. i already installed this kernel.

thank you.
[Nexus 5X Original Android Development] atefi:
Same question
[Nexus 5X Original Android Development] Jamesnewton1406:
How to install multirom? Please help
[Nexus 5X Original Android Development] frov:
Installing

Sorry, here come the stupid questions: I know about TWRP/flashing/F2FS/... (Running nAOSP on Nexus 7 and Xperia S).

And now I am about to apply this kernel to my wife's Nexus 5X...which she reaaaaally likes. So yes, I will first make a full backup in TWRP.

The Nexus5X is now running latest Android 601 image straight from Google, but with: unlocked/TWRP/SuperSU.

Q: can I just use TWRP and install the zip?

Q: what about F2FS, because I reckon the Nexus is running ext4 still: do I need to manually change the file system type? For cache and data?

Q: will SuperSU survive?

Thanks guys, appreciated.
[Nexus 5X Original Android Development] Berlino:
[MENTION=6291257]frov[/MENTION]

- Yes, you can just flash the kernel.zip and choose you options from aroma-installer.

- You don't need to switch to f2fs file system, jolla works on ext4 as well and SuperSU will survive (I don't know exactly if stock would work with f2fs)

- If you want to switch to f2fs, you'll nee to flash/choose f2fs-modded MultiRom Recovery in aroma installer, reboot recovery and manually format/change filesystem of data und cache to f2fs separately (beware formatting data erases your internal sdcard too, so better back it up before starting)...then enter aroma again and set the option for f2fs etc.
[Nexus 5X Original Android Development] jollaman999:
[bullhead_II-v6.0]

== Kernel ==

>> Common <<

- UPSTREAM: KEYS: Fix ASN.1 indefinite length object parsing

- f2fs: Applied lastest dev branch patches

- Bye bye msm_hotplug

- zram: Use lz4 as default compressor

- ksm: prepare to new THP semantics

- qcacld-2.0: Disable trace of HIFTargetSleepStateAdjust

- radix-tree: fix radix_tree_iter_retry() for tagged iterators.

- sdcardfs: Applied Google updates

- Appiled crypto patches from CyanogenMod/android_kernel_oneplus_msm8996

>> M <<

- sdcardfs: Applied patches and fix from CyanogenMod/android_kernel_oneplus_msm8996

== AIO ==

- ramdisk: init.bullhead.rc: Now, LZ4 is the default

- ramdisk: Update sepolicy

- sdcardfs support for cm-13.0

== Recovery ==

- Re-built with new cm-13.0 sources

- jolla-kernel_bullhead_II-v6.0 applied

※ TWRP Attention ※

- Decryption failed with N (Do 'fastboot format userdata')
[Nexus 5X Original Android Development] futurebag24:
No Hotplug?

Nothing hotplug anymore? Oh no, that's horrible!
[Nexus 5X Original Android Development] jollaman999:
Please see the commit message.

https://github.com/jollaman999/jolla-kernel_bullhead/commit/affd01fa9dac4a331cfd5deb234547de4f488f28
[Nexus 5X Original Android Development] futurebag24:
O.K. Thank you for your answer, will install the kernel!
[Nexus 5X Original Android Development] mykenyc:
This might be a dumb question, I tried Googling and looking through the thread, I'm assuming sdcardfs is only if your hardware supports Sdcards right? Not anything to do with /sdcard partition itself? I see it says only CM13, so stock isn't a issue since i use stock, but curious.
[Nexus 5X Original Android Development] jollaman999:
[bullhead_II-v6.1]

== Kernel ==

>> Common <<

- Appiled Google's security updates

== AIO ==

- ramdisk: Update sepolicy

- Support sdcardfs for various roms

== Recovery ==

- Applied lastest TWRP patches from omni android-6.0

- jolla-kernel_bullhead_II-v6.1 applied

※ TWRP Attention ※

- Decryption failed with N (Do 'fastboot format userdata')
[Nexus 5X Original Android Development] Azlun:
anybody success to boot 2nd ROM while

primary: stock NPD56N

2nd:stock MDB08M added by nandroid bakup

3rd:stock MPD90G

I have tried to replace vendor partition with same version from factory images,

but none of above can make 2nd or 3rd ROM start-up,

both are block at Google LOGO...

need HELP.
[Nexus 5X Original Android Development] rachanta:
Sometimes ROM developers use an older vendor image. Please ask them which vendor image to use. Fastboot flash vendor images for all your ROMs and create backups of only vendor images to easily restore only vendor according to the ROM in use, whether primary or secondary.
[Nexus 5X Original Android Development] j.llorente:
Battery drain is more than previous version with hotplug. I use with airplane mode because in my job don't have mobile signal but battery drain is high now. Not with v5
[Nexus 5X Original Android Development] macondo62:
download link is offline please fix it

Inviato dal mio Nexus 5X utilizzando Tapatalk
[Nexus 5X Original Android Development] salim0786:
Is this kernel permissive?
[Nexus 5X Original Android Development] jollaman999:
No, sorry.
[Nexus 5X Original Android Development] jollaman999:
[bullhead_II-v6.2]

== Kernel ==

>> Common <<

- Built with Linaro gcc 6.1.1

- faster zram

- Applied Linux kexec upstream changes

- 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: latest upstream version

- ashmem: fix CVE-2016-5340

- arm64: dma-mapping: always clear allocated buffers

- arp: Fix spaces of 'for' loops

- arp: Fix wrong return in arp_find_gw

- power:qpnp-charger: extended charge time from 30s to 100s when battery status is near to full

- qcacld-2.0: Fix misleading-indentation warnings

>> N <<

- bullhead-hardboot: Fix rotation issue when booted to M from N

- bullhead-nanohub: Correctly matching table

== AIO ==

- init.bullhead.rc: Remove uneeded lines

- Fix N's performance issue

- updater: jolla-kernel Updater v1.4 (Fix force close issue in N.)

- aroma: Optimize and reduce size of PNG files

- f2fs-tools: release 1.7.0

- multirom: Rebuild binaries and update libraries (Linaro gcc 6.1.1)

== Recovery ==

- Applied lastest TWRP patches from omni android-6.0

- Revert adb backup support and Restore_Partition changes (Break multirom restoration.)

- jolla-kernel_bullhead_II-v6.2 applied

※ TWRP Attention ※

- Decryption failed with N (Do 'fastboot format userdata')
[Nexus 5X Original Android Development] Kikatdroid:
Pac rom don't work with multi?

Envoyé de mon Nexus 5X en utilisant Tapatalk
[Nexus 5X Original Android Development] grigri444:
ENDLESS BOOLOOP

I had N preview as primary rom and Pure Nexus as secondary. Everything worked great. Then i decided to swap roms as Pure Nexus is my daily driver. I hit the swap button and it told me that the space wasn't enough***. I went back, deleted some stuff from my downloads with the file explorer of multirom and went back to make the swap. In the process the [E] line was in red colour but in the end it wrote that the swap was succesfull. I flashed the MTC20F vendor (now i had 6.0.1 rom) and rebooted my device. It passed the google logo and it stuck in boot animation (the blue green red yellow circles) for 3-4 seconds and rebooted over and over again. I did the swap again to place N as primary rom again. Same thing. Endless bootloop when it reached the boot animation. I said ok. Return to stock is the only solution. I flashed the factory images through Wug's toolkit, wiped the whole device, but the result was the same. Reboot at the boot animation. I made a factory reset through stock recovery, but the same again. I flashed TWRP and flashed a different custom rom with, unfortunatelly, the same result.

Whatever i tried comes with the same result.

*** This is the part where i beleive everything went wrong. The space wasn't enough but the process begun. 5-6 lines appeared in the log window with the loading bar above them keeps loading. I let it load for 3-4 minutes thinking that it will stop and send me back to main menu. The back button didn't do anything, so i pressed the home button to go to free space for the swap.

I will send my phone to LG official service. Is there anything i can try before i sent it to the service?
[Nexus 5X Original Android Development] Topse:
Try the original way flash the factory Image with fastboot.(not the flashall.bat !)

Try N or MM.

Good Luck :fingers-crossed:
[Nexus 5X Original Android Development] Kikatdroid:
why Pac-rom and pure does not start second-rom?

Envoyé de mon Nexus 5X en utilisant Tapatalk
[Nexus 5X Original Android Development] jollaman999:
Did you flashed M's vendor.img for booting M roms?
[Nexus 5X Original Android Development] jollaman999:
[bullhead_II-v6.3]

== Kernel ==

>> Common <<

- sovc: Fix long auto off delay

- sovc: Reduce default auto off delay to 2.5sec

- tcp: make challenge acks less predictable (CVE-2016-5696)

>> N <<

- Revert "bullhead-nanohub: Correctly matching table"

- Revert "bullhead-hardboot: Fix rotation issue when booted to M from N"

(Previous method makes huge battery drain.)

- bullhead-sensorhub: Add compatibility for M when hardboot proceeded

>> M <<

- bullhead-sensorhub: Rename labels for working when hardboot proceeded

== AIO ==

- sovc: Adjust configurable auto off delay values

- multirom: Update kexec-tools to 2.0.13

== Recovery ==

- jolla-kernel_bullhead_II-v6.3 applied

※ TWRP Attention ※

- Decryption failed with N (Do 'fastboot format userdata')
[Nexus 5X Original Android Development] Kikatdroid:
or I flash this? main rom?

Envoyé de mon Nexus 5X en utilisant Tapatalk
[Nexus 5X Original Android Development] jollaman999:
Yes, main kernel should be support kexec hardboot.
[Nexus 5X Original Android Development] Kikatdroid:
still the same problem despite this ... After loading the Google logo at the display on and off continuously!

For information I use CM13 in pimary rom with jolla-kernel

Envoyé de mon Nexus 5X en utilisant Tapatalk
[Nexus 5X Original Android Development] Topse:
Maybe your second ROM's (Pac/Pure) using another Vendor as your Main ROM (CM13)?

---------- Post added at 08:53 AM ---------- Previous post was at 08:47 AM ----------

Battery looks better than older versions :good:

Good deep sleep over night.
[Nexus 5X Original Android Development] Kikatdroid:
That's what I think too!

Envoyé de mon Nexus 5X en utilisant Tapatalk
[Nexus 5X Original Android Development] jollaman999:
[bullhead_II-v7.0]

== Kernel ==

>> Common <<

- Revert "msm: mdss: support parallel execution of MDSS_EVENT handlers"

- workqueues: Introduce new flag WQ_POWER_EFFICIENT for power oriented workqueues

- Use power efficient workqueue - firmware, net/wireless, rcu, net/ipv4,

PHYLIB, ASoC, net/neighbour, timekeeping, net/rfkill, usb, regulator/core

- BACKPORT: Bluetooth: Fix potential NULL dereference in RFCOMM bind callback

- net: ipv6: Fix ping to link-local addresses

- ipv6: fix endianness error in icmpv6_err

- Revert upstream's (CVE-2016-5696)

- [PATCH v3 3.10.y] tcp: make challenge acks less predictable (CVE-2016-5696)

- arp: queue work on power efficient wq

- touchscreen: synaptics: queue work on power efficient wq

- touchscreen: sovc: Use power efficient wq and high priority wq

- touchscreen: dt2w: Use power efficient wq and high priority wq

- touchscreen: s2w: Use power efficient wq and high priority wq

- net: cnss: queue work on power efficient wq

- net: wcnss: queue work on power efficient wq

- qcacld-2.0: queue work on power efficient wq

- touchscreen: sovc: Cancel sovc_auto_off_check_work when screen turned on

- f2fs: Applied lastest dev branch patches

>> N <<

- mdss: mdp3: Validate input from userspace

== Recovery ==

- Applied lastest TWRP patches from omni android-6.0

- Fix decryption in encrypted Android N devices

- bionic: add fortified implementations of write/pwrite{,64}

(Fix multirom installation problem after fixed decryption in N)

- jolla-kernel_bullhead_II-v7.0 applied
[Nexus 5X Original Android Development] pepa 77:
Hi , sweep sleep not working for me kernel Auditor.

s2w and dt2w is OK :D
[Nexus 5X Original Android Development] jollaman999:
Only wake function is implemented.
[Nexus 5X Original Android Development] RusherDude:
Awesome!

One question, jolla kernel/recovery/multirom v7.0 got updated to support nougat 7.0, or work only on nougat 7.0 and we need to get older versions for 6.0.1?

Thanks!!
[Nexus 5X Original Android Development] jollaman999:
Both are working! :)
[Nexus 5X Original Android Development] RusherDude:
Awesome, thanks!!

PS: Damn limit of 8 thanks per day -.-
[Nexus 5X Original Android Development] pepa 77:
​

Ok thanks.
[Nexus 5X Original Android Development] yusukesan:
Apps (especially heavy app...like game apps) frequently freeze with jolla kernel.

Not freeze with others. why?
[Nexus 5X Original Android Development] RusherDude:
[MENTION=5996255]jollaman999[/MENTION] I have another question about the last patch of recovery: (I mean multirom recovery, jolla-recovery_bullhead_II-v7.0_160824.img) It is really 3.0.2-0 as the recovery says or it's 3.0.2-1? Because 3.0.2-1 includes a fix for N5x between others for N, and you say that it should be ready for Nougat.

I got another question also: How adding roms works with the "Sideload" option? I see it's the "adb sideload" command, like installing an OTA, but would a full OTA work? (for example installing the full nougat 7.0 OTA with adb sideload)., or its mean to sideload another thing? never saw that option and I don't remember it from Multirom recovery for TWRP 2.8.*.*.

I want to put the stock nougat rom as a secondary rom and I'm trying to find a way :P

Thanks a very lot mate :), keep the excellent job!!
[Nexus 5X Original Android Development] jollaman999:
Just diffferent number. It has most of patches with Nougat support.

Use full zip for adding rom(cm, pure nexus, du, chroma, etc..) but not recommend to flash ota zip for secondary rom. Because it will also flash bootloader and vendor.
[Nexus 5X Original Android Development] jollaman999:
Which rom are you using?
[Nexus 5X Original Android Development] RusherDude:
Could you update the number so it reclects that? it may fix a lot of confusion :P

oh ****, forgot about radio and bootloader on the OTA -.-, big fail.

But anyway, now that I think, without vendor no secondary nougat rom is going to work right? I remember some conflicting vendor stuff with multirom when Marshmallow came out on N5.

Multirom should duplicate vendor partitions too :(, if it cant be used to test new android releases with different vendors, it losts a lot of its purpose

Thanks a ton!
[Nexus 5X Original Android Development] jollaman999:
Then I'll fix it in next version.

Right, I agree with you.
[Nexus 5X Original Android Development] nokiagye:
Hi gamma control included? Thanks
[Nexus 5X Original Android Development] nokiagye:
No it don't have I try two apps

With witch app working?
[Nexus 5X Original Android Development] jollaman999:
Kernel Adiutor or you can use kcal control app.

http://tp.jollaman999.com/jolla-kernel_AIO-bullhead/KCAL/