Друзья, в общем, поигрался я с разными способами.
Умножать составляющие RGB на коэфициент - визуально более менее рабочий способ.
Но когда одна из составляющих в результате такого умножения дает результат более 255 - меняется весь цвет.
Как-то ограничивать я не пробовал, можно было попробовать ограничивать максимум 255, но я не стал.
Следующий способ : HSV / HLS с помощью вот этой либы
https://github.com/tobiasschuerg/android-color-lib
Если изначальный цвет - более менее темный - то дает неплохой результат (я эксперементировал с primaryColor)
Но если светлый (тот же primaryColor но в темной теме) - то труба - результурующая платра будет очень не очень.
В итоге - самый рабочий способ, который мне понравился более всего - это уже имеющийся в Material класс TonalPalette из пакета com.google.android.material.color.utilities. Выдает отличную палитру, не надо писать что-то самому, и не надо сторонних либ.