If is your case, you can restrict acess to procedures/functions in the spec like this:
CREATE OR REPLACE PACKAGE MY_PACKAGE IS PROCEDURE set_id(p_id IN NUMBER) ACCESSIBLE BY(PACKAGE PKG_LOGIN, PKG_USER.INIT); END MY_PACKAGE;