You can adjust the muscle range of motion within the rig settings. So it’s built into Unity here: https://docs.unity3d.com/Manual/MuscleDefinitions.html. As far as repositioning the fingers, it’s not an easy process. The simplest solution is to create animations specifically for the object they’re holding and mask out everything else with an avatar mask. The more complex solution is using a custom IK setup to control the individual fingers or use something like Final IK.